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