Class: OOP::BasicRules

Inherits:
Object
  • Object
show all
Defined in:
lib/oop/basic_rules.rb

Instance Method Summary collapse

Instance Method Details

#cast_to_value(arg) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/oop/basic_rules.rb', line 10

def cast_to_value(arg)
  case arg
  when Value, TrueClass, FalseClass, NilClass, Proc then
    arg
  when *trusted_values
    arg
  when Hash then
    Hash[arg.map{|k,v| [cast_to_value(k), cast_to_value(v)] }.to_h].freeze
  when Array then
    arg.map{|v| cast_to_value(v) }.freeze
  when Symbol, Fixnum, String, Float, Time then
    if arg.frozen?
      arg
    else
      arg.freeze
    end
  else
    raise NonValueArg.new(arg.class)
  end
end

#trusted_valuesObject



6
7
8
# File 'lib/oop/basic_rules.rb', line 6

def trusted_values
  []
end