Module: Silueta

Defined in:
lib/silueta.rb,
lib/silueta/types.rb,
lib/silueta/version.rb

Defined Under Namespace

Modules: ClassMethods, Types

Constant Summary collapse

VERSION =
"0.0.4"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



4
5
6
# File 'lib/silueta.rb', line 4

def self.included(base)
  base.extend(ClassMethods)
end

Instance Method Details

#attributesObject



48
49
50
# File 'lib/silueta.rb', line 48

def attributes
  return slice(*self.class.attributes)
end

#initialize(attrs = {}) ⇒ Object



36
37
38
39
40
# File 'lib/silueta.rb', line 36

def initialize(attrs = {})
  @attributes = {}

  update(attrs)
end

#slice(*attrs) ⇒ Object



52
53
54
55
56
# File 'lib/silueta.rb', line 52

def slice(*attrs)
  return attrs.each_with_object({}) do |att, hash|
    hash[att] = send(att)
  end
end

#update(attrs) ⇒ Object



42
43
44
45
46
# File 'lib/silueta.rb', line 42

def update(attrs)
  attrs.each do |attr, value|
    public_send(:"#{ attr }=", value) if respond_to?(:"#{ attr }=")
  end
end