snuffle 0.12.2 → 0.13.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: bfb944b3dbe7e7a75db303add144963dd330253c
4
- data.tar.gz: a90c08c9f0fad68fd0163d94aa161d0533cdc45a
3
+ metadata.gz: 1a1b604dec6afc7cf79045077c72b20027e6671b
4
+ data.tar.gz: 435b312222a5e25db5a34bb9d07e008b31c806f7
5
5
  SHA512:
6
- metadata.gz: 466fdec3cb56f99598973f66c86b69bad2b0590feabff9522b461cbb8217c0576c99e6943e4bec5941be8df4307641c2708d7f6e94c4eea2db769c9473284d03
7
- data.tar.gz: 18c3e37695dee843820a17cb7e41094f8a9361510ac4d11b224a041e35202c07529ca9c20460ffd958e13a105ab13df2fc3a902a112eeab4dd9f094c79d6564b
6
+ metadata.gz: c41a7dc5273f10e51e33da5ad1fc56e8004cb480e38dca2d2fbc0af0fd3b0513ed8d1a0e6520674969c525b28a8d4e1360954aba66e09cc9b135142ed11e3a60
7
+ data.tar.gz: c71957bf19e0c78af28d374b4f46253594ef3782fdc67f8910965fdaaf2d4dad739ea1945952fc40c843fb2bed6a82fefe55efaec25f37efe057da922f3b7c51
data/README.md CHANGED
@@ -35,9 +35,9 @@ Or install it yourself as:
35
35
 
36
36
  ## Sample Output
37
37
 
38
- [!Overview](images/overview.png)
38
+ ![Overview](images/overview.png)
39
39
 
40
- [!Detail](images/detail.png)
40
+ ![Detail](images/detail.png)
41
41
 
42
42
  ## Contributing
43
43
 
@@ -1,3 +1,5 @@
1
+ require 'uea-stemmer'
2
+
1
3
  class Snuffle::LatentObject
2
4
 
3
5
  include PoroPlus
@@ -15,7 +17,8 @@ class Snuffle::LatentObject
15
17
  "your", "good", "some", "could", "them", "see", "other", "than", "then",
16
18
  "now", "look", "only", "come", "its", "over", "think", "also", "back", "else",
17
19
  "after", "use", "two", "how", "our", "work", "first", "well", "way", "even",
18
- "new", "want", "because", "any", "these", "give", "day", "most", "us", "call"
20
+ "new", "want", "because", "any", "these", "give", "day", "most", "us", "call",
21
+ "create", "edit", "new", "delete", "destroy", "update"
19
22
  ]
20
23
 
21
24
  def self.from(nodes)
@@ -30,8 +33,10 @@ class Snuffle::LatentObject
30
33
  end
31
34
 
32
35
  def self.extract_candidates(methods)
36
+ stemmer = UEAStemmer.new
33
37
  methods.map(&:method_name).inject({}) do |words, method_name|
34
38
  atoms = method_name.split('_') - STOPWORDS
39
+ atoms = atoms.map{|atom| stemmer.stem(atom.to_s)}
35
40
  atoms.each{ |word| words[word] ||= []; words[word] << method_name }
36
41
  words
37
42
  end
@@ -1,3 +1,3 @@
1
1
  module Snuffle
2
- VERSION = "0.12.2"
2
+ VERSION = "0.13.0"
3
3
  end
@@ -25,6 +25,7 @@ Gem::Specification.new do |spec|
25
25
  spec.add_dependency "rouge"
26
26
  spec.add_dependency "text-table"
27
27
  spec.add_dependency "haml"
28
+ spec.add_dependency "uea-stemmer"
28
29
 
29
30
  spec.add_development_dependency "bundler", "~> 1.6"
30
31
  spec.add_development_dependency "rake"
@@ -13,6 +13,22 @@ class Song
13
13
  metadata[:playlist]
14
14
  end
15
15
 
16
+ def artist_name?
17
+ self.artist && self.artist.name
18
+ end
19
+
20
+ def helpers
21
+ [helper]
22
+ end
23
+
24
+ def helper
25
+ Helper.new
26
+ end
27
+
28
+ def artist_name
29
+ artis_name? || "Unknown"
30
+ end
31
+
16
32
  def can_be_downloaded?
17
33
  metadata[:download]
18
34
  end
@@ -2,6 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe Snuffle::LatentObject do
4
4
 
5
+ let(:program_1) { Snuffle::SourceFile.new(path_to_file: "spec/fixtures/program_1.rb") }
5
6
  let(:program_2) { Snuffle::SourceFile.new(path_to_file: "spec/fixtures/latent_object_fixture.rb") }
6
7
 
7
8
  describe ".from" do
@@ -24,14 +25,19 @@ describe Snuffle::LatentObject do
24
25
 
25
26
  describe ".potential_objects_with_methods" do
26
27
 
27
- let(:results) { Snuffle::LatentObject.potential_objects_with_methods(program_2.nodes) }
28
+ let(:results_set_1) { Snuffle::LatentObject.potential_objects_with_methods(program_1.nodes) }
29
+ let(:results_set_2) { Snuffle::LatentObject.potential_objects_with_methods(program_2.nodes) }
28
30
 
29
- it "finds repeated words " do
30
- expect(results.keys).to eq(["user"])
31
+ it "finds repeated words" do
32
+ expect(results_set_2.keys).to eq(["user"])
33
+ end
34
+
35
+ it "finds words by stem" do
36
+ expect(results_set_1['helper']).to eq(["helpers", "helper"])
31
37
  end
32
38
 
33
39
  it "finds methods that repeated words appear in" do
34
- expect(results['user']).to eq(["user_name", "user_address", "user_email"])
40
+ expect(results_set_2['user']).to eq(["user_name", "user_address", "user_email"])
35
41
  end
36
42
 
37
43
  end
@@ -3,6 +3,7 @@ require 'pry'
3
3
 
4
4
  describe Snuffle::SourceFile do
5
5
 
6
+ let(:program_1) { Snuffle::SourceFile.new(path_to_file: "spec/fixtures/program_1.rb") }
6
7
  let(:program_2) { Snuffle::SourceFile.new(path_to_file: "spec/fixtures/program_2.rb") }
7
8
  let(:program_3) { Snuffle::SourceFile.new(path_to_file: "spec/fixtures/program_3.rb") }
8
9
  let(:program_4) { Snuffle::SourceFile.new(path_to_file: "spec/fixtures/program_4.rb") }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: snuffle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.2
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Coraline Ada Ehmke
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-07-19 00:00:00.000000000 Z
12
+ date: 2014-07-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: parser
@@ -109,6 +109,20 @@ dependencies:
109
109
  - - ">="
110
110
  - !ruby/object:Gem::Version
111
111
  version: '0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: uea-stemmer
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :runtime
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
112
126
  - !ruby/object:Gem::Dependency
113
127
  name: bundler
114
128
  requirement: !ruby/object:Gem::Requirement