Class: Hash

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

Overview

Hash Extensions ================================================================================

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.from_array(array = []) ⇒ Object



227
228
229
230
231
# File 'lib/core_ext/core_ext.rb', line 227

def self.from_array(array = [])
  h = Hash.new
  array.size.times{ |t| h[t] = array[t] }
  h
end

Instance Method Details

#to_paramsObject



191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
# File 'lib/core_ext/core_ext.rb', line 191

def to_params
  params = ''
  stack = []

  each do |k, v|
    if v.is_a?(Hash)
      stack << [k,v]
    elsif v.is_a?(Array)
      stack << [k,Hash.from_array(v)]
    else
      params << "#{k}=#{v}&"
    end
  end

  stack.each do |parent, hash|
    hash.each do |k, v|
      if v.is_a?(Hash)
        stack << ["#{parent}[#{k}]", v]
      else
        params << "#{parent}[#{k}]=#{v}&"
      end
    end
  end

  params.chop!
  params
end

#to_sql(operator = 'AND') ⇒ Object



219
220
221
222
223
224
225
# File 'lib/core_ext/core_ext.rb', line 219

def to_sql( operator = 'AND' )
  _sql = self.keys.map do |_key|
    _value = self[_key].is_a?(Fixnum) ? self[_key] : "'#{self[_key]}'"
    self[_key].nil? ? '1 = 1' : "#{_key} = #{_value}"
  end
  _sql * " #{operator} "
end