Module: Spinel::Helper
- Included in:
- Client
- Defined in:
- lib/spinel/helper.rb
Instance Method Summary collapse
- #document_body(doc) ⇒ Object
- #document_id(doc) ⇒ Object
- #document_score(doc) ⇒ Object
- #get_valid_document(doc) ⇒ Object
- #prefixes(str) ⇒ Object
- #squish(str) ⇒ Object
Instance Method Details
#document_body(doc) ⇒ Object
30 31 32 |
# File 'lib/spinel/helper.rb', line 30 def document_body doc doc[Spinel.document_key.to_sym] || doc[Spinel.document_key] end |
#document_id(doc) ⇒ Object
22 23 24 |
# File 'lib/spinel/helper.rb', line 22 def document_id doc doc[:id] || doc["id"] end |
#document_score(doc) ⇒ Object
26 27 28 |
# File 'lib/spinel/helper.rb', line 26 def document_score doc (doc[:score] || doc["score"]).to_f end |
#get_valid_document(doc) ⇒ Object
14 15 16 17 18 19 20 |
# File 'lib/spinel/helper.rb', line 14 def get_valid_document doc id = document_id doc body = document_body doc score = document_score doc raise ArgumentError, "documents must specify both an id and a body" unless id && body [id, body, score] end |
#prefixes(str) ⇒ Object
4 5 6 7 8 |
# File 'lib/spinel/helper.rb', line 4 def prefixes str squish(str).split.flat_map do |w| (Spinel.minimal_word-1..(w.length-1)).map{ |l| w[0..l] } end.uniq end |
#squish(str) ⇒ Object
10 11 12 |
# File 'lib/spinel/helper.rb', line 10 def squish str str.to_s.gsub(/[[:space:]]+/, ' ').strip end |