bronto-gem 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8412e8773f46277ad4204ba37271faf18a75b339
4
- data.tar.gz: 9b52d82aa6874b3b45c7654a946911dac2ad8bed
3
+ metadata.gz: aba4131be2d46e7c94146e2514fb0faec50a7aa3
4
+ data.tar.gz: ba91b9f62b56a7849c0816571eb8bedbcfd2ab81
5
5
  SHA512:
6
- metadata.gz: 10e8151308ed6c4b447968d4cfb10d8efeb8388f5544563e79490eddd0a52a24315d940e6ce26694275374f412a90809d841971586d38a041c0ff37be7aee9ef
7
- data.tar.gz: 61382a253bc8ce3e257ee454979d3428da4b227ad78eca73372d053becbaf4419350d2f4b36b74973c0944dd75c9baee08aab8bba4282e2241bc1934f950b5e1
6
+ metadata.gz: 0e895246561af2e585572c2a1e6ce23324197f0b0d3861abb02b1efc84eb82c99449f4257a33462eca65f3ae300b88d06a96aefd58df7bf8005d6f3c6fdd059a
7
+ data.tar.gz: 6487718b300416b84c99ea1e416f8409b47093f52f80bdd43d2c433f2a75f5d1d8a8e4a02d883fbac29762190fe63aa534298bbee3e27c692ff5af4ddc437dbc
@@ -0,0 +1,3 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.1.1
data/README.md CHANGED
@@ -7,7 +7,7 @@ A thesaurus gem.
7
7
  Add this line to your application's Gemfile:
8
8
 
9
9
  ```ruby
10
- gem 'bronto-gem'
10
+ gem 'bronto-gem', '0.1.0'
11
11
  ````
12
12
 
13
13
  And then execute:
@@ -26,9 +26,9 @@ $ gem install bronto-gem
26
26
  ## Usage
27
27
 
28
28
  ```ruby
29
- require 'bronto-gem'
29
+ require 'bronto'
30
30
 
31
- synonyms = BrontoGem.lookup("fish") #=>
31
+ synonyms = Bronto::Thesaurus.new.lookup("fish") #=>
32
32
 
33
33
  {
34
34
  verb: {
@@ -36,7 +36,7 @@ synonyms = BrontoGem.lookup("fish") #=>
36
36
  },
37
37
  noun: {
38
38
  syn: [
39
- "aquatic vertebrate",
39
+ "aquatic vertebrate",
40
40
  "food",
41
41
  "individual",
42
42
  "mortal",
@@ -46,14 +46,15 @@ synonyms = BrontoGem.lookup("fish") #=>
46
46
  "solid food",
47
47
  "somebody",
48
48
  "someone",
49
- "soul"]
49
+ "soul"
50
+ ]
50
51
  }
51
52
  }
52
53
  ```
53
54
 
54
55
  ## Contributing
55
56
 
56
- 1. Fork it ( https://github.com/adelevie/bronto-gem/fork )
57
+ 1. Fork it ( https://github.com/18F/bronto/fork )
57
58
  2. Create your feature branch (`git checkout -b my-new-feature`)
58
59
  3. Commit your changes (`git commit -am 'Add some feature'`)
59
60
  4. Push to the branch (`git push origin my-new-feature`)
@@ -61,4 +62,4 @@ synonyms = BrontoGem.lookup("fish") #=>
61
62
 
62
63
  ## License
63
64
 
64
- See `LICENSE.txt`
65
+ Public Domain. See `LICENSE.txt`
@@ -1,12 +1,11 @@
1
1
  # coding: utf-8
2
2
  lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'bronto-gem/version'
5
- #require 'bronto/bronto-gem/lookup'
4
+ require 'bronto/version'
6
5
 
7
6
  Gem::Specification.new do |spec|
8
7
  spec.name = "bronto-gem"
9
- spec.version = BrontoGem::VERSION
8
+ spec.version = Bronto::VERSION
10
9
  spec.authors = ["Alan deLevie"]
11
10
  spec.email = ["alan.delevie@gsa.gov"]
12
11
  spec.summary = %q{Thesaurus gem}
@@ -4,5 +4,5 @@ require "bundler/setup"
4
4
  cwd = Pathname(__FILE__).dirname
5
5
  $:.unshift(cwd.to_s) unless $:.include?(cwd.to_s) || $:.include?(cwd.expand_path.to_s)
6
6
 
7
- require 'bronto-gem/version'
8
- require 'bronto-gem/lookup'
7
+ require 'bronto/version'
8
+ require 'bronto/thesaurus'
@@ -0,0 +1,55 @@
1
+ require 'wordnet'
2
+ require 'wordnet-defaultdb'
3
+
4
+ $lex = WordNet::Lexicon.new
5
+
6
+ module Bronto
7
+ class Thesaurus
8
+ def lookup(word)
9
+ query = word.downcase
10
+ synonyms = get_synonyms query
11
+ return nil if synonyms.nil? # check out early if nothing is found
12
+
13
+ hash = {}
14
+
15
+ if synonyms
16
+ synonyms.each do |synonym|
17
+ hash[synonym.last] = {syn: [] } unless hash.member?(synonym.last)
18
+ hash[synonym.last][:syn] << synonym.first
19
+ end
20
+ end
21
+
22
+ hash.keys.each do |key1|
23
+ val1 = hash[key1]
24
+ val1.sort! if val1.respond_to? :sort!
25
+
26
+ val1.keys.each do |key2|
27
+ val2 = hash[key1][key2]
28
+ val2.sort! if val2.respond_to? :sort!
29
+ end
30
+ end
31
+
32
+ hash
33
+ end
34
+
35
+ private
36
+
37
+ def get_synonyms(query)
38
+ synsets = $lex.lookup_synsets(query)
39
+
40
+ words = []
41
+
42
+ synsets.each do |synset|
43
+ synset.words.map {|word| words << [word.lemma, synset.part_of_speech.to_sym] unless word.lemma == query}
44
+
45
+ synset.hypernyms.each do |hypernym|
46
+ hypernym.words.map {|word| words << [word.lemma, synset.part_of_speech.to_sym] unless word.lemma == query}
47
+ end
48
+ end
49
+
50
+ synonyms = words.sort_by {|word| word.first }.uniq!
51
+ synonyms
52
+ end
53
+ end
54
+
55
+ end
@@ -0,0 +1,3 @@
1
+ module Bronto
2
+ VERSION = "0.1.0"
3
+ end
@@ -1,2 +1,5 @@
1
+ require 'pry'
2
+ require 'bronto'
3
+
1
4
  RSpec.configure do |c|
2
5
  end
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+
3
+ describe Bronto::Thesaurus do
4
+
5
+ context "when a word is entered" do
6
+ before do
7
+ @thesaurus = Bronto::Thesaurus.new
8
+ @response = @thesaurus.lookup("fish")
9
+ end
10
+
11
+ context "when it returns a hash of synonym strings grouped by part of speech" do
12
+ it "has verb and noun keys" do
13
+ expect(@response).to have_key :verb
14
+ expect(@response).to have_key :noun
15
+ end
16
+
17
+ it "has hashes whose keys are :syn" do
18
+ expect(@response[:verb]).to have_key :syn
19
+ expect(@response[:noun]).to have_key :syn
20
+ end
21
+
22
+ it "contains arrays of strings" do
23
+ expect(
24
+ @response[:verb][:syn].map {|s| s.class}.uniq.first
25
+ ).to(eq(String))
26
+ expect(
27
+ @response[:noun][:syn].map {|s| s.class}.uniq.first
28
+ ).to(eq(String))
29
+ end
30
+ end
31
+ end
32
+
33
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bronto-gem
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alan deLevie
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-28 00:00:00.000000000 Z
11
+ date: 2014-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: wordnet
@@ -117,16 +117,17 @@ extra_rdoc_files: []
117
117
  files:
118
118
  - ".gitignore"
119
119
  - ".ruby-version"
120
+ - ".travis.yml"
120
121
  - Gemfile
121
122
  - LICENSE.txt
122
123
  - README.md
123
124
  - Rakefile
124
- - bronto-gem.gemspec
125
- - lib/bronto-gem.rb
126
- - lib/bronto-gem/lookup.rb
127
- - lib/bronto-gem/version.rb
128
- - spec/lookup_spec.rb
125
+ - bronto.gemspec
126
+ - lib/bronto.rb
127
+ - lib/bronto/thesaurus.rb
128
+ - lib/bronto/version.rb
129
129
  - spec/spec_helper.rb
130
+ - spec/thesaurus_spec.rb
130
131
  homepage: ''
131
132
  licenses:
132
133
  - Public Domain. See LICENSE.txt
@@ -152,5 +153,5 @@ signing_key:
152
153
  specification_version: 4
153
154
  summary: Thesaurus gem
154
155
  test_files:
155
- - spec/lookup_spec.rb
156
156
  - spec/spec_helper.rb
157
+ - spec/thesaurus_spec.rb
@@ -1,36 +0,0 @@
1
- require 'wordnet'
2
- require 'wordnet-defaultdb'
3
-
4
- $lex = WordNet::Lexicon.new
5
-
6
- module BrontoGem
7
- def self.lookup(word)
8
- query = word.downcase
9
- synsets = $lex.lookup_synsets(query)
10
-
11
- words = []
12
-
13
- synsets.each do |synset|
14
- synset.words.map {|word| words << [word.lemma, synset.part_of_speech.to_sym] unless word.lemma == query}
15
-
16
- synset.hypernyms.each do |hypernym|
17
- hypernym.words.map {|word| words << [word.lemma, synset.part_of_speech.to_sym] unless word.lemma == query}
18
- end
19
- end
20
-
21
- synonyms = words.sort_by {|word| word.first }.uniq!
22
-
23
- return nil if synonyms.nil? # check out early if nothing is found
24
-
25
- hash = {}
26
-
27
- if synonyms
28
- synonyms.each do |synonym|
29
- hash[synonym.last] = {syn: [] } unless hash.member?(synonym.last)
30
- hash[synonym.last][:syn] << synonym.first
31
- end
32
- end
33
-
34
- hash
35
- end
36
- end
@@ -1,3 +0,0 @@
1
- module BrontoGem
2
- VERSION = "0.0.2"
3
- end
@@ -1,36 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe BrontoGem do
4
-
5
- context 'when a word is entered' do
6
- before do
7
- @response = BrontoGem.lookup("fish")
8
- end
9
-
10
- it 'returns a hash of synoyms grouped by part of speech' do
11
- fish_response = {
12
- verb: {
13
- syn: ["angle", "catch", "grab", "look for", "search", "seek", "take hold of"]
14
- },
15
- noun: {
16
- syn: [
17
- "aquatic vertebrate",
18
- "food",
19
- "individual",
20
- "mortal",
21
- "person",
22
- "pisces",
23
- "pisces the fishes",
24
- "solid food",
25
- "somebody",
26
- "someone",
27
- "soul"]
28
- }
29
- }
30
-
31
- expect(@response).to eq fish_response
32
- end
33
-
34
- end
35
-
36
- end