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 +4 -4
- data/README.md +2 -2
- data/lib/snuffle/latent_object.rb +6 -1
- data/lib/snuffle/version.rb +1 -1
- data/snuffle.gemspec +1 -0
- data/spec/fixtures/program_1.rb +16 -0
- data/spec/snuffle/latent_object_spec.rb +10 -4
- data/spec/snuffle/source_file_spec.rb +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1a1b604dec6afc7cf79045077c72b20027e6671b
|
4
|
+
data.tar.gz: 435b312222a5e25db5a34bb9d07e008b31c806f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c41a7dc5273f10e51e33da5ad1fc56e8004cb480e38dca2d2fbc0af0fd3b0513ed8d1a0e6520674969c525b28a8d4e1360954aba66e09cc9b135142ed11e3a60
|
7
|
+
data.tar.gz: c71957bf19e0c78af28d374b4f46253594ef3782fdc67f8910965fdaaf2d4dad739ea1945952fc40c843fb2bed6a82fefe55efaec25f37efe057da922f3b7c51
|
data/README.md
CHANGED
@@ -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
|
data/lib/snuffle/version.rb
CHANGED
data/snuffle.gemspec
CHANGED
@@ -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"
|
data/spec/fixtures/program_1.rb
CHANGED
@@ -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(:
|
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
|
30
|
-
expect(
|
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(
|
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.
|
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-
|
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
|