Sha256: cc3419b6ff0516863620495f0bfd6b7783ac2805b56d04169fc8e4003f5d8d5d

Contents?: true

Size: 882 Bytes

Versions: 75

Compression:

Stored size: 882 Bytes

Contents

# encoding: utf-8

# implement to_hash(instance_variable_name => key, instance_variable_value => value)
module AttributesHashable
  # create hash(instance_variable_name => key, instance_variable_value => value)
  #
  # class Hoge have two_attributes(:hoge, :hige)
  #   class Hoge
  #     include AttributesInitializable
  #     attr_accessor_init :hoge, :hige
  #     include AttributesHashable
  #   end
  #
  #   hoge = Hoge.new do |h|
  #     h.hoge = 'hoge'
  #     h.hige = 'hige'
  #   end
  #
  #   hoge.to_hash # => {:hoge=>"hoge", :hige=>"hige"}
  #
  # After include AttributesHashable, you can use Hash.try_convert.
  #   Hash.try_convert hoge # => {:hoge=>"hoge", :hige=>"hige"}
  def to_hash
    instance_variables.reduce({}) do |hash, var|
      hash[var.to_s.delete('@').to_sym] = instance_variable_get(var)
      hash
    end
  end
end

Version data entries

75 entries across 75 versions & 1 rubygems

Version Path
tbpgr_utils-0.0.73 lib/attributes_hashable.rb
tbpgr_utils-0.0.72 lib/attributes_hashable.rb
tbpgr_utils-0.0.71 lib/attributes_hashable.rb
tbpgr_utils-0.0.70 lib/attributes_hashable.rb
tbpgr_utils-0.0.69 lib/attributes_hashable.rb
tbpgr_utils-0.0.68 lib/attributes_hashable.rb
tbpgr_utils-0.0.67 lib/attributes_hashable.rb
tbpgr_utils-0.0.66 lib/attributes_hashable.rb
tbpgr_utils-0.0.65 lib/attributes_hashable.rb
tbpgr_utils-0.0.64 lib/attributes_hashable.rb
tbpgr_utils-0.0.63 lib/attributes_hashable.rb
tbpgr_utils-0.0.62 lib/attributes_hashable.rb
tbpgr_utils-0.0.61 lib/attributes_hashable.rb
tbpgr_utils-0.0.60 lib/attributes_hashable.rb
tbpgr_utils-0.0.59 lib/attributes_hashable.rb
tbpgr_utils-0.0.58 lib/attributes_hashable.rb
tbpgr_utils-0.0.57 lib/attributes_hashable.rb
tbpgr_utils-0.0.56 lib/attributes_hashable.rb
tbpgr_utils-0.0.55 lib/attributes_hashable.rb
tbpgr_utils-0.0.54 lib/attributes_hashable.rb