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.53 lib/attributes_hashable.rb
tbpgr_utils-0.0.52 lib/attributes_hashable.rb
tbpgr_utils-0.0.51 lib/attributes_hashable.rb
tbpgr_utils-0.0.50 lib/attributes_hashable.rb
tbpgr_utils-0.0.49 lib/attributes_hashable.rb
tbpgr_utils-0.0.48 lib/attributes_hashable.rb
tbpgr_utils-0.0.47 lib/attributes_hashable.rb
tbpgr_utils-0.0.46 lib/attributes_hashable.rb
tbpgr_utils-0.0.45 lib/attributes_hashable.rb
tbpgr_utils-0.0.44 lib/attributes_hashable.rb
tbpgr_utils-0.0.43 lib/attributes_hashable.rb
tbpgr_utils-0.0.42 lib/attributes_hashable.rb
tbpgr_utils-0.0.41 lib/attributes_hashable.rb
tbpgr_utils-0.0.40 lib/attributes_hashable.rb
tbpgr_utils-0.0.39 lib/attributes_hashable.rb
tbpgr_utils-0.0.38 lib/attributes_hashable.rb
tbpgr_utils-0.0.37 lib/attributes_hashable.rb
tbpgr_utils-0.0.36 lib/attributes_hashable.rb
tbpgr_utils-0.0.35 lib/attributes_hashable.rb
tbpgr_utils-0.0.34 lib/attributes_hashable.rb