Class: Hash

Inherits:
Object
  • Object
show all
Defined in:
lib/sushi_fabric/sushiApp.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#defaultsObject (readonly)

Returns the value of attribute defaults.



89
90
91
# File 'lib/sushi_fabric/sushiApp.rb', line 89

def defaults
  @defaults
end

Instance Method Details

#[](k1, k2 = nil) ⇒ Object



136
137
138
139
140
141
142
143
144
145
146
# File 'lib/sushi_fabric/sushiApp.rb', line 136

def [](k1, k2=nil)
  if k2
    if @desc
      @desc.get([k1,k2].join('_'))
    else
      nil
    end
  else
    get(k1)
  end
end

#[]=(k1, k2, v = nil) ⇒ Object



92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# File 'lib/sushi_fabric/sushiApp.rb', line 92

def []=(k1,k2,v=nil)
  if v
    @desc ||= {}
    @desc.set([k1,k2].join('_'),v)
  else
    @defaults ||= {}
    if !@defaults[k1] and k2
      if k2.instance_of?(Array)
        @defaults.set(k1,k2.first)
      elsif k2.instance_of?(Hash) and k2.first
        @defaults.set(k1,k2.first.last)
      else
        @defaults.set(k1,k2)
      end
    end
    set(k1,k2)
  end
end

#data_type(k) ⇒ Object



119
120
121
122
123
124
125
126
127
128
129
130
131
132
# File 'lib/sushi_fabric/sushiApp.rb', line 119

def data_type(k)
  if @defaults
    @defaults[k].class
  else
    v = get(k)
    if v.instance_of?(Array)
      v.first.class
    elsif v.instance_of?(Hash)
      v.values.first.class
    else
      v.class
    end
  end
end

#data_typesObject



133
134
135
# File 'lib/sushi_fabric/sushiApp.rb', line 133

def data_types
  Hash[@defaults.map{|k,v| [k, v.class]}]
end

#default_value(k, v = nil) ⇒ Object



110
111
112
113
114
115
116
117
118
# File 'lib/sushi_fabric/sushiApp.rb', line 110

def default_value(k,v=nil)
  if v
    @defaults[k] = v
  else
    if @defaults
      @defaults[k]
    end
  end
end

#getObject



91
# File 'lib/sushi_fabric/sushiApp.rb', line 91

alias :get :[]

#setObject



90
# File 'lib/sushi_fabric/sushiApp.rb', line 90

alias :set :[]=