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

Methods

Public Instance methods

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

Rails 1.2.6 compatibility

[Source]

    # File lib/ultrasphinx/core_extensions.rb, line 80
80:     def except(*keys)
81:       rejected = Set.new(respond_to?(:convert_key) ? keys.map { |key| convert_key(key) } : keys)
82:       reject { |key,| rejected.include?(key) }
83:     end

[Source]

    # File lib/ultrasphinx/core_extensions.rb, line 84
84:     def except!(*keys)
85:       replace(except(*keys))
86:     end

[Validate]