Sha256: 478312bd020ed767c17c41fde6d2bd5dbdf45855019ede2dd1e1c35eaa1a124e

Contents?: true

Size: 713 Bytes

Versions: 48

Compression:

Stored size: 713 Bytes

Contents

module ScoutApm
  module AttributeArranger
    # pass in an array of symbols to return as hash keys
    # if the symbol doesn't match the name of the method, pass an array: [:key, :method_name]
    def self.call(subject, attributes_list)
      attributes_list.inject({}) do |attribute_hash, attribute|
        case attribute
        when Array
          attribute_hash[attribute[0]] = subject.send(attribute[1])
        when :bucket
          attribute_hash[attribute] = subject.bucket_type
        when :name
          attribute_hash[attribute] = subject.bucket_name
        when Symbol
          attribute_hash[attribute] = subject.send(attribute)
        end
        attribute_hash
      end
    end
  end
end

Version data entries

48 entries across 48 versions & 1 rubygems

Version Path
scout_apm-2.1.32 lib/scout_apm/attribute_arranger.rb
scout_apm-2.1.31 lib/scout_apm/attribute_arranger.rb
scout_apm-2.1.30 lib/scout_apm/attribute_arranger.rb
scout_apm-2.1.29 lib/scout_apm/attribute_arranger.rb
scout_apm-2.1.28 lib/scout_apm/attribute_arranger.rb
scout_apm-2.1.27 lib/scout_apm/attribute_arranger.rb
scout_apm-2.1.26 lib/scout_apm/attribute_arranger.rb
scout_apm-2.1.24 lib/scout_apm/attribute_arranger.rb
scout_apm-2.1.23 lib/scout_apm/attribute_arranger.rb
scout_apm-2.1.22 lib/scout_apm/attribute_arranger.rb
scout_apm-2.1.21 lib/scout_apm/attribute_arranger.rb
scout_apm-2.1.20 lib/scout_apm/attribute_arranger.rb
scout_apm-2.1.19 lib/scout_apm/attribute_arranger.rb
scout_apm-2.1.18 lib/scout_apm/attribute_arranger.rb
scout_apm-2.1.17 lib/scout_apm/attribute_arranger.rb
scout_apm-2.1.16 lib/scout_apm/attribute_arranger.rb
scout_apm-2.1.15 lib/scout_apm/attribute_arranger.rb
scout_apm-2.1.14 lib/scout_apm/attribute_arranger.rb
scout_apm-2.1.13 lib/scout_apm/attribute_arranger.rb
scout_apm-2.1.12 lib/scout_apm/attribute_arranger.rb