Module: NCore::Attributes::ClassMethods

Defined in:
lib/ncore/attributes.rb

Instance Method Summary collapse

Instance Method Details

#attr(*attrs) ⇒ Object



11
12
13
14
15
16
17
18
19
# File 'lib/ncore/attributes.rb', line 11

def attr(*attrs)
  attrs.each do |attr|
    class_eval "      def \#{attr}\n        self[:\#{attr}]\n      end\n    AR\n  end\nend\n", __FILE__, __LINE__+1

#attr_datetime(*attrs) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/ncore/attributes.rb', line 21

def attr_datetime(*attrs)
  attrs.each do |attr|
    class_eval "      def \#{attr}\n        case self[:\#{attr}]\n        when String\n          Time.parse(self[:\#{attr}]).utc\n        when Numeric\n          Time.at(self[:\#{attr}]).utc\n        else\n          self[:\#{attr}]\n        end\n      rescue ArgumentError, TypeError\n        self[:\#{attr}]\n      end\n    AD\n  end\nend\n", __FILE__, __LINE__+1

#attr_decimal(*attrs) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/ncore/attributes.rb', line 40

def attr_decimal(*attrs)
  attrs.each do |attr|
    class_eval "      def \#{attr}\n        case self[:\#{attr}]\n        when String\n          BigMoney.new(self[:\#{attr}])\n        else\n          self[:\#{attr}]\n        end\n      end\n    AD\n  end\nend\n", __FILE__, __LINE__+1

#parse_request_params(params = {}, opts = {}) ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/ncore/attributes.rb', line 55

def parse_request_params(params={}, opts={})
  params = params.with_indifferent_access
  req = params.delete(:request)
  creds = params.delete(:credentials)
  if opts[:json_root]
    if params.key?(opts[:json_root])
      o = params
    else
      o = {opts[:json_root] => params}.with_indifferent_access
    end
  else
    o = params
  end
  o[:request] = req if req
  o[:credentials] = creds if creds
  o
end