module Gittr::HashConstructor
Public Class Methods
new(args={})
click to toggle source
# File lib/gittr/hash_constructor.rb, line 3 def initialize(args={}) args.each do |key, value| add_instance_variable(key) unless respond_to? to_snake_case(key) public_send "#{to_snake_case(key)}=", value end end
Public Instance Methods
to_snake_case(str)
click to toggle source
# File lib/gittr/hash_constructor.rb, line 10 def to_snake_case(str) str.to_s.gsub(/(.)([A-Z])/, '\1_\2').downcase end
Protected Instance Methods
add_instance_variable(key)
click to toggle source
# File lib/gittr/hash_constructor.rb, line 16 def add_instance_variable(key) self.class.class_eval{ attr_accessor key.to_sym } end