diff --git a/.rvmrc b/.rvmrc new file mode 100644 index 0000000..7f84720 --- /dev/null +++ b/.rvmrc @@ -0,0 +1,55 @@ +#!/usr/bin/env bash + +# This is an RVM Project .rvmrc file, used to automatically load the ruby +# development environment upon cd'ing into the directory + +# First we specify our desired [@], the @gemset name is optional. +environment_id="ruby-1.9.3-p125@mongoid_search" + +# +# Uncomment following line if you want options to be set only for given project. +# +# PROJECT_JRUBY_OPTS=( --1.9 ) + +# +# First we attempt to load the desired environment directly from the environment +# file. This is very fast and efficient compared to running through the entire +# CLI and selector. If you want feedback on which environment was used then +# insert the word 'use' after --create as this triggers verbose mode. +# +if [[ -d "${rvm_path:-$HOME/.rvm}/environments" \ + && -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]] +then + \. "${rvm_path:-$HOME/.rvm}/environments/$environment_id" + + if [[ -s "${rvm_path:-$HOME/.rvm}/hooks/after_use" ]] + then + . "${rvm_path:-$HOME/.rvm}/hooks/after_use" + fi +else + # If the environment file has not yet been created, use the RVM CLI to select. + if ! rvm --create "$environment_id" + then + echo "Failed to create RVM environment '${environment_id}'." + exit 1 + fi +fi + +# +# If you use an RVM gemset file to install a list of gems (*.gems), you can have +# it be automatically loaded. Uncomment the following and adjust the filename if +# necessary. +# +# filename=".gems" +# if [[ -s "$filename" ]] +# then +# rvm gemset import "$filename" | grep -v already | grep -v listed | grep -v complete | sed '/^$/d' +# fi + +# If you use bundler, this might be useful to you: +# if command -v bundle && [[ -s Gemfile ]] +# then +# bundle install +# fi + + diff --git a/.rvmrc.06.02.2012-09:48:26 b/.rvmrc.06.02.2012-09:48:26 new file mode 100644 index 0000000..7f84720 --- /dev/null +++ b/.rvmrc.06.02.2012-09:48:26 @@ -0,0 +1,55 @@ +#!/usr/bin/env bash + +# This is an RVM Project .rvmrc file, used to automatically load the ruby +# development environment upon cd'ing into the directory + +# First we specify our desired [@], the @gemset name is optional. +environment_id="ruby-1.9.3-p125@mongoid_search" + +# +# Uncomment following line if you want options to be set only for given project. +# +# PROJECT_JRUBY_OPTS=( --1.9 ) + +# +# First we attempt to load the desired environment directly from the environment +# file. This is very fast and efficient compared to running through the entire +# CLI and selector. If you want feedback on which environment was used then +# insert the word 'use' after --create as this triggers verbose mode. +# +if [[ -d "${rvm_path:-$HOME/.rvm}/environments" \ + && -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]] +then + \. "${rvm_path:-$HOME/.rvm}/environments/$environment_id" + + if [[ -s "${rvm_path:-$HOME/.rvm}/hooks/after_use" ]] + then + . "${rvm_path:-$HOME/.rvm}/hooks/after_use" + fi +else + # If the environment file has not yet been created, use the RVM CLI to select. + if ! rvm --create "$environment_id" + then + echo "Failed to create RVM environment '${environment_id}'." + exit 1 + fi +fi + +# +# If you use an RVM gemset file to install a list of gems (*.gems), you can have +# it be automatically loaded. Uncomment the following and adjust the filename if +# necessary. +# +# filename=".gems" +# if [[ -s "$filename" ]] +# then +# rvm gemset import "$filename" | grep -v already | grep -v listed | grep -v complete | sed '/^$/d' +# fi + +# If you use bundler, this might be useful to you: +# if command -v bundle && [[ -s Gemfile ]] +# then +# bundle install +# fi + + diff --git a/lib/mongoid_search/util.rb b/lib/mongoid_search/util.rb index aaa5257..b76c400 100644 --- a/lib/mongoid_search/util.rb +++ b/lib/mongoid_search/util.rb @@ -12,12 +12,14 @@ def self.keywords(klass, field, stem_keywords, ignore_list) else attribute.map(&method).map { |t| Util.normalize_keywords t, stem_keywords, ignore_list } end - else - if attribute.respond_to?(method) - Util.normalize_keywords(attribute.send(method), stem_keywords, ignore_list) - else # If the field is a serialized hash - Util.normalize_keywords(klass.send(key)[method.to_sym], stem_keywords, ignore_list) + elsif attribute.is_a?(Hash) + if method.is_a?(Array) + method.map {|m| Util.normalize_keywords attribute[m.to_sym], stem_keywords, ignore_list } + else + Util.normalize_keywords(attribute[method.to_sym], stem_keywords, ignore_list) end + else + Util.normalize_keywords(attribute.send(method), stem_keywords, ignore_list) end end end