← back to Flytedesk__pack_api

Function bodies 314 total

All specs Real LLM only Function bodies
recordset_cursor_params method · ruby · L98-L100 (3 LOC)
lib/pack_api/pagination/paginator.rb
    def recordset_cursor_params
      cursor_params.deep_merge(offset: 0, per_page: :all, metadata: { kind: :recordset })
    end
current_page_cursor_params method · ruby · L102-L106 (5 LOC)
lib/pack_api/pagination/paginator.rb
    def current_page_cursor_params
      return nil if per_page != :all && per_page.zero?

      cursor_params.deep_merge(offset: offset, metadata: { kind: :current_page })
    end
next_page_params method · ruby · L108-L112 (5 LOC)
lib/pack_api/pagination/paginator.rb
    def next_page_params
      return nil unless more_pages?

      cursor_params.deep_merge(offset: offset + per_page, metadata: { kind: :next_page })
    end
previous_page_params method · ruby · L114-L118 (5 LOC)
lib/pack_api/pagination/paginator.rb
    def previous_page_params
      return nil if offset.zero?

      cursor_params.deep_merge(offset: offset - per_page, metadata: { kind: :previous_page })
    end
first_page_params method · ruby · L120-L124 (5 LOC)
lib/pack_api/pagination/paginator.rb
    def first_page_params
      return nil if offset.zero?

      cursor_params.deep_merge(offset: 0, metadata: { kind: :first_page })
    end
last_page_params method · ruby · L126-L131 (6 LOC)
lib/pack_api/pagination/paginator.rb
    def last_page_params
      return nil unless more_pages?

      last_page_offset = (last_item_offset / per_page).floor * per_page
      cursor_params.deep_merge(offset: last_page_offset, metadata: { kind: :last_page })
    end
last_item_offset method · ruby · L133-L135 (3 LOC)
lib/pack_api/pagination/paginator.rb
    def last_item_offset
      total_items - 1
    end
Want fix-PRs on findings? Install Repobility's GitHub App · github.com/apps/repobility-bot
make_cursor method · ruby · L137-L141 (5 LOC)
lib/pack_api/pagination/paginator.rb
    def make_cursor(params)
      return nil if params.nil?

      PaginatorCursor.create(**params)
    end
cursor_params method · ruby · L143-L152 (10 LOC)
lib/pack_api/pagination/paginator.rb
    def cursor_params
      {
        offset:,
        sort:,
        total_items:,
        per_page:,
        query:,
        metadata:
      }
    end
SnapshotPaginator class · ruby · L11-L34 (24 LOC)
lib/pack_api/pagination/snapshot_paginator.rb
  class SnapshotPaginator
    METADATA_KEY = :snapshot

    attr_accessor :paginator, :results, :cursor

    ###
    # Create a snapshot from the current page results of a record set.
    def self.cursor_for_results(results, table_name:, collection_key:)
      offsets = {}
      case_statement = results.map.with_index do |record, index|
        record_id = record.send(collection_key)
        offsets[record_id.to_s] = index.to_s
        # Use SQL standard CAST to convert both sides to strings for comparison
        "WHEN CAST(\"#{table_name}\".\"#{collection_key}\" AS VARCHAR) = '#{record_id}' THEN #{index}"
      end
      sort_sql = "CASE #{case_statement.join("\n")} END"
      filters = { collection_key => results.pluck(collection_key) }
      paginator = PaginatorBuilder.build do |builder|
        builder.set_params(query: { filters: },
                           metadata: { METADATA_KEY => true, offsets:, collection_key: },
                           sort: Arel.sql(sort_sql),
     
cursor_for_results method · ruby · L18-L25 (8 LOC)
lib/pack_api/pagination/snapshot_paginator.rb
    def self.cursor_for_results(results, table_name:, collection_key:)
      offsets = {}
      case_statement = results.map.with_index do |record, index|
        record_id = record.send(collection_key)
        offsets[record_id.to_s] = index.to_s
        # Use SQL standard CAST to convert both sides to strings for comparison
        "WHEN CAST(\"#{table_name}\".\"#{collection_key}\" AS VARCHAR) = '#{record_id}' THEN #{index}"
      end
initialize function · ruby · L38-L42 (5 LOC)
lib/pack_api/pagination/snapshot_paginator.rb
    def initialize(paginator)
      raise PackAPI::InternalError, 'Paginator does not represent CachedResultsQuery' if paginator.metadata.nil?

      @paginator = paginator
    end
apply_to function · ruby · L48-L79 (32 LOC)
lib/pack_api/pagination/snapshot_paginator.rb
    def apply_to(query, record_id: nil)
      if has_valid_offsets?
        # if no record_id is provided, no customization is needed
        return query unless record_id.present?

        self.target_record_id = record_id
        updated_query = query.offset(paginator.offset).limit(paginator.limit)
        @results = updated_query.to_a
        @cursor = paginator.current_page_cursor
        updated_query
      else
        # unless we have either a record_id or an offset, there is no customization needed
        return query unless paginator.offset.present? || record_id.present?

        # Step 1: If we don't have a record_id, try to guess what record_id the user was trying to access
        record_id ||= target_record_id

        # Step 2: Fetch all the records in the snapshot -- remove the offset and limits on the current query
        snapshot_results = query.unscope(:offset, :limit).to_a

        # Step 3: Update the offsets based on the current query results
        update_offse
generated? function · ruby · L84-L86 (3 LOC)
lib/pack_api/pagination/snapshot_paginator.rb
    def self.generated?(paginator)
      paginator.metadata&.fetch(METADATA_KEY, nil).presence
    end
has_valid_offsets? function · ruby · L90-L92 (3 LOC)
lib/pack_api/pagination/snapshot_paginator.rb
    def has_valid_offsets?
      paginator.metadata[:offsets].size == paginator.total_items
    end
About: code-quality intelligence by Repobility · https://repobility.com
update_offsets function · ruby · L96-L98 (3 LOC)
lib/pack_api/pagination/snapshot_paginator.rb
    def update_offsets(results)
      paginator.metadata.merge!(offsets: results_offsets(results))
    end
target_record_id function · ruby · L100-L104 (5 LOC)
lib/pack_api/pagination/snapshot_paginator.rb
    def target_record_id
      return unless paginator.offset

      paginator.metadata[:offsets].key(paginator.offset.to_s).to_s
    end
target_record_id= function · ruby · L106-L109 (4 LOC)
lib/pack_api/pagination/snapshot_paginator.rb
    def target_record_id=(record_id)
      paginator.offset = lookup_offset(record_id)
      paginator.per_page = 1
    end
results_offsets function · ruby · L111-L116 (6 LOC)
lib/pack_api/pagination/snapshot_paginator.rb
    def results_offsets(results)
      collection_key = paginator.metadata[:collection_key]
      results.map.with_index do |record, index|
        record_id = record.send(collection_key)
        [record_id.to_s, index.to_s]
      end.to_h
lookup_offset function · ruby · L121-L131 (11 LOC)
lib/pack_api/pagination/snapshot_paginator.rb
    def lookup_offset(record_id)
      metadata = paginator.metadata[:offsets]
      return 0 unless metadata

      stringified_record_id = record_id.to_s
      # metadata can have symbol keys or string keys, depending on how the cursor was created.
      offset =  metadata.include?(stringified_record_id) ?
                  metadata[stringified_record_id] :
                  metadata[stringified_record_id.to_sym]
      offset.to_i
    end
AbstractBooleanFilter class · ruby · L4-L37 (34 LOC)
lib/pack_api/querying/abstract_boolean_filter.rb
  class AbstractBooleanFilter < DiscoverableFilter
    attr_accessor :value

    YES_VALUE = 'Yes'
    NO_VALUE = 'No'
    NOT_APPLICABLE_VALUE = ''

    def self.type
      :tri_state_boolean
    end

    def self.definition(**)
      options = [
        PackAPI::Types::FilterOption.new(label: 'N/A', value: NOT_APPLICABLE_VALUE),
        PackAPI::Types::FilterOption.new(label: 'Yes', value: YES_VALUE),
        PackAPI::Types::FilterOption.new(label: 'No', value: NO_VALUE)
      ]

      PackAPI::Types::BooleanFilterDefinition.new(name: filter_name, type:, options:)
    end

    def initialize(value:)
      super()
      @value = value
    end

    delegate :present?, to: :value

    def to_h
      raise NotImplementedError unless self.class.filter_name

      { self.class.filter_name => { value: } }
    end
  end
type method · ruby · L11-L13 (3 LOC)
lib/pack_api/querying/abstract_boolean_filter.rb
    def self.type
      :tri_state_boolean
    end
definition method · ruby · L15-L23 (9 LOC)
lib/pack_api/querying/abstract_boolean_filter.rb
    def self.definition(**)
      options = [
        PackAPI::Types::FilterOption.new(label: 'N/A', value: NOT_APPLICABLE_VALUE),
        PackAPI::Types::FilterOption.new(label: 'Yes', value: YES_VALUE),
        PackAPI::Types::FilterOption.new(label: 'No', value: NO_VALUE)
      ]

      PackAPI::Types::BooleanFilterDefinition.new(name: filter_name, type:, options:)
    end
Citation: Repobility (2026). State of AI-Generated Code. https://repobility.com/research/
initialize method · ruby · L25-L28 (4 LOC)
lib/pack_api/querying/abstract_boolean_filter.rb
    def initialize(value:)
      super()
      @value = value
    end
to_h method · ruby · L32-L36 (5 LOC)
lib/pack_api/querying/abstract_boolean_filter.rb
    def to_h
      raise NotImplementedError unless self.class.filter_name

      { self.class.filter_name => { value: } }
    end
AbstractEnumFilter class · ruby · L4-L53 (50 LOC)
lib/pack_api/querying/abstract_enum_filter.rb
  class AbstractEnumFilter < DiscoverableFilter
    attr_accessor :value, :exclude_param
    validates :exclude_param, inclusion: { in: %w[true false], allow_nil: true, message: 'must be either true or false' }

    def self.type
      :enum
    end

    def self.definition(**)
      PackAPI::Types::EnumFilterDefinition.new(name: filter_name,
                                      type:,
                                      options: filter_options(**),
                                      can_exclude: can_exclude?)
    end

    def self.filter_options(**)
      raise NotImplementedError
    end

    private_class_method :filter_options

    def initialize(value: nil, exclude: nil)
      super()
      @present = !value.nil?
      @value = Array.wrap(value.presence)
      @exclude_param = exclude
    end

    def present?
      @present
    end

    def exclude?
      exclude_param.to_s.downcase == 'true'
    end

    def to_h
      raise NotImplementedError unless self.class.filter_nam
type method · ruby · L8-L10 (3 LOC)
lib/pack_api/querying/abstract_enum_filter.rb
    def self.type
      :enum
    end
definition method · ruby · L12-L17 (6 LOC)
lib/pack_api/querying/abstract_enum_filter.rb
    def self.definition(**)
      PackAPI::Types::EnumFilterDefinition.new(name: filter_name,
                                      type:,
                                      options: filter_options(**),
                                      can_exclude: can_exclude?)
    end
filter_options method · ruby · L19-L21 (3 LOC)
lib/pack_api/querying/abstract_enum_filter.rb
    def self.filter_options(**)
      raise NotImplementedError
    end
initialize method · ruby · L25-L30 (6 LOC)
lib/pack_api/querying/abstract_enum_filter.rb
    def initialize(value: nil, exclude: nil)
      super()
      @present = !value.nil?
      @value = Array.wrap(value.presence)
      @exclude_param = exclude
    end
present? method · ruby · L32-L34 (3 LOC)
lib/pack_api/querying/abstract_enum_filter.rb
    def present?
      @present
    end
Repobility · MCP-ready · https://repobility.com
exclude? method · ruby · L36-L38 (3 LOC)
lib/pack_api/querying/abstract_enum_filter.rb
    def exclude?
      exclude_param.to_s.downcase == 'true'
    end
to_h method · ruby · L40-L48 (9 LOC)
lib/pack_api/querying/abstract_enum_filter.rb
    def to_h
      raise NotImplementedError unless self.class.filter_name

      payload = present? ?
                  { value: } :
                  { value: nil }
      payload[:exclude] = exclude?.to_s if self.class.can_exclude?
      { self.class.filter_name => payload }
    end
can_exclude? method · ruby · L50-L52 (3 LOC)
lib/pack_api/querying/abstract_enum_filter.rb
    def self.can_exclude?
      true
    end
AbstractFilter class · ruby · L4-L14 (11 LOC)
lib/pack_api/querying/abstract_filter.rb
  class AbstractFilter
    def present?
      false
    end

    ###
    # Applies the filter to the given query.
    # @param [ComposableQuery] query the active record relation to apply the filter to
    def apply_to(query)
    end
  end
present? method · ruby · L5-L7 (3 LOC)
lib/pack_api/querying/abstract_filter.rb
    def present?
      false
    end
AbstractNumericFilter class · ruby · L4-L36 (33 LOC)
lib/pack_api/querying/abstract_numeric_filter.rb
  class AbstractNumericFilter < DiscoverableFilter
    attr_accessor :operator, :value

    def self.type
      :numeric
    end

    def self.definition(**)
      operators = [
        PackAPI::Types::FilterOption.new(label: 'Greater than', value: '>'),
        PackAPI::Types::FilterOption.new(label: 'Greater than or equal to', value: '>='),
        PackAPI::Types::FilterOption.new(label: 'Equal to', value: '='),
        PackAPI::Types::FilterOption.new(label: 'Less than or equal to', value: '<='),
        PackAPI::Types::FilterOption.new(label: 'Less than', value: '<')
      ]

      PackAPI::Types::NumericFilterDefinition.new(name: filter_name, operators:)
    end

    def initialize(operator:, value:)
      super()
      @operator = operator
      @value = value
    end

    delegate :present?, to: :value

    def to_h
      raise NotImplementedError unless self.class.filter_name

      { self.class.filter_name => { operator:, value: } }
    end
  end
type method · ruby · L7-L9 (3 LOC)
lib/pack_api/querying/abstract_numeric_filter.rb
    def self.type
      :numeric
    end
definition method · ruby · L11-L21 (11 LOC)
lib/pack_api/querying/abstract_numeric_filter.rb
    def self.definition(**)
      operators = [
        PackAPI::Types::FilterOption.new(label: 'Greater than', value: '>'),
        PackAPI::Types::FilterOption.new(label: 'Greater than or equal to', value: '>='),
        PackAPI::Types::FilterOption.new(label: 'Equal to', value: '='),
        PackAPI::Types::FilterOption.new(label: 'Less than or equal to', value: '<='),
        PackAPI::Types::FilterOption.new(label: 'Less than', value: '<')
      ]

      PackAPI::Types::NumericFilterDefinition.new(name: filter_name, operators:)
    end
Want fix-PRs on findings? Install Repobility's GitHub App · github.com/apps/repobility-bot
initialize method · ruby · L23-L27 (5 LOC)
lib/pack_api/querying/abstract_numeric_filter.rb
    def initialize(operator:, value:)
      super()
      @operator = operator
      @value = value
    end
to_h method · ruby · L31-L35 (5 LOC)
lib/pack_api/querying/abstract_numeric_filter.rb
    def to_h
      raise NotImplementedError unless self.class.filter_name

      { self.class.filter_name => { operator:, value: } }
    end
AbstractRangeFilter class · ruby · L4-L30 (27 LOC)
lib/pack_api/querying/abstract_range_filter.rb
  class AbstractRangeFilter < DiscoverableFilter
    attr_accessor :min_value, :max_value

    def self.type
      :range
    end

    def self.definition(**)
      PackAPI::Types::RangeFilterDefinition.new(name: filter_name)
    end

    def initialize(min_value:, max_value:)
      super()
      @min_value = min_value
      @max_value = max_value
    end

    def present?
      min_value.present? || max_value.present?
    end

    def to_h
      raise NotImplementedError unless self.class.filter_name

      { self.class.filter_name => { min_value:, max_value: } }
    end
  end
type method · ruby · L7-L9 (3 LOC)
lib/pack_api/querying/abstract_range_filter.rb
    def self.type
      :range
    end
definition method · ruby · L11-L13 (3 LOC)
lib/pack_api/querying/abstract_range_filter.rb
    def self.definition(**)
      PackAPI::Types::RangeFilterDefinition.new(name: filter_name)
    end
initialize method · ruby · L15-L19 (5 LOC)
lib/pack_api/querying/abstract_range_filter.rb
    def initialize(min_value:, max_value:)
      super()
      @min_value = min_value
      @max_value = max_value
    end
present? method · ruby · L21-L23 (3 LOC)
lib/pack_api/querying/abstract_range_filter.rb
    def present?
      min_value.present? || max_value.present?
    end
to_h method · ruby · L25-L29 (5 LOC)
lib/pack_api/querying/abstract_range_filter.rb
    def to_h
      raise NotImplementedError unless self.class.filter_name

      { self.class.filter_name => { min_value:, max_value: } }
    end
About: code-quality intelligence by Repobility · https://repobility.com
AttributeFilterFactory class · ruby · L4-L24 (21 LOC)
lib/pack_api/querying/attribute_filter_factory.rb
  class AttributeFilterFactory
    include Enumerable

    DATA_TYPE_REGEXP = /\S+$/
    private_constant :DATA_TYPE_REGEXP

    def self.attribute_filter_cache
      @attribute_filter_cache ||= Concurrent::Map.new
    end

    attr_reader :attribute_map_class

    def initialize(attribute_map_class)
      @attribute_map_class = attribute_map_class
    end

    def from_api_type
      filterable_attributes.each do |attribute_name, attribute_type|
        yield define_filter(attribute_name, attribute_type)
      end
    end
attribute_filter_cache method · ruby · L10-L12 (3 LOC)
lib/pack_api/querying/attribute_filter_factory.rb
    def self.attribute_filter_cache
      @attribute_filter_cache ||= Concurrent::Map.new
    end
initialize method · ruby · L16-L18 (3 LOC)
lib/pack_api/querying/attribute_filter_factory.rb
    def initialize(attribute_map_class)
      @attribute_map_class = attribute_map_class
    end
‹ prevpage 4 / 7next ›