| Class | Hash |
| In: |
lib/ultrasphinx/core_extensions.rb
|
| Parent: | Object |
class HashWithIndifferentAccess
# Returns a regular Hash with all string keys. Much faster
# than HWIA#merge.
def _fast_merge(right)
left = Hash[self]
left.merge!(self.class.new(right))
end
end
# File lib/ultrasphinx/core_extensions.rb, line 40
40: def _coerce_basic_types
41: # XXX To remove
42: Hash[*self.map do |key, value|
43: [key.to_s,
44: if value.respond_to?(:to_i) && value.to_i.to_s == value
45: value.to_i
46: elsif value == ""
47: nil
48: else
49: value
50: end]
51: end._flatten_once]
52: end
Delete by multiple keys
# File lib/ultrasphinx/core_extensions.rb, line 64
64: def _delete(*args)
65: args.map do |key|
66: self.delete key
67: end
68: end
# File lib/ultrasphinx/core_extensions.rb, line 54
54: def _stringify_all!(*skip)
55: # Stringifies all keys, and stringifies all values except those slotted for keys in 'skip'
56: stringify_keys!
57: self.except(*skip).each do |key, value|
58: self[key] = value.to_s
59: end
60: self
61: end
Convert a hash to a Sphinx-style conf string
# File lib/ultrasphinx/core_extensions.rb, line 71
71: def _to_conf_string(section = nil)
72: inner = self.map do |key, value|
73: " #{key} = #{value}"
74: end.join("\n")
75: section ? "#{section} {\n#{inner}\n}\n" : inner
76: end