Sha256: 6148b217efdc552a1410fa46eb232da7bfbd44772a81043ea1dfa8da1e3191c2

Contents?: true

Size: 390 Bytes

Versions: 22

Compression:

Stored size: 390 Bytes

Contents

# frozen_string_literal: true

module DecoLite
  # Provides methods to convert the object to a Hash.
  module Hashable
    def to_h
      field_names.each_with_object({}) do |field_name, hash|
        field_value = public_send(field_name)

        field_name, field_value = yield [field_name, field_value] if block_given?

        hash[field_name] = field_value
      end
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
deco_lite-1.5.14 lib/deco_lite/hashable.rb
deco_lite-1.5.13 lib/deco_lite/hashable.rb
deco_lite-1.5.12 lib/deco_lite/hashable.rb
deco_lite-1.5.11 lib/deco_lite/hashable.rb
deco_lite-1.5.10 lib/deco_lite/hashable.rb
deco_lite-1.5.9 lib/deco_lite/hashable.rb
deco_lite-1.5.8 lib/deco_lite/hashable.rb
deco_lite-1.5.7 lib/deco_lite/hashable.rb
deco_lite-1.5.5 lib/deco_lite/hashable.rb
deco_lite-1.5.4 lib/deco_lite/hashable.rb
deco_lite-1.5.3 lib/deco_lite/hashable.rb
deco_lite-1.5.2 lib/deco_lite/hashable.rb
deco_lite-1.5.1 lib/deco_lite/hashable.rb
deco_lite-1.5.0 lib/deco_lite/hashable.rb
deco_lite-1.4.0 lib/deco_lite/hashable.rb
deco_lite-1.3.0 lib/deco_lite/hashable.rb
deco_lite-1.2.1 lib/deco_lite/hashable.rb
deco_lite-1.2.0 lib/deco_lite/hashable.rb
deco_lite-1.1.0 lib/deco_lite/hashable.rb
deco_lite-1.0.0 lib/deco_lite/hashable.rb