license_finder 0.6.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. data/.gitignore +4 -0
  2. data/Gemfile +0 -1
  3. data/bin/license_finder +21 -1
  4. data/features/approve_dependencies.feature +10 -0
  5. data/features/license_finder.feature +13 -3
  6. data/features/license_finder_rake_task.feature +3 -3
  7. data/features/set_license.feature +14 -0
  8. data/features/step_definitions/steps.rb +5 -0
  9. data/lib/license_finder.rb +13 -2
  10. data/lib/license_finder/bundle.rb +25 -3
  11. data/lib/license_finder/bundle_syncer.rb +12 -0
  12. data/lib/license_finder/bundled_gem.rb +12 -1
  13. data/lib/license_finder/cli.rb +42 -3
  14. data/lib/license_finder/configuration.rb +1 -31
  15. data/lib/license_finder/dependency.rb +30 -94
  16. data/lib/license_finder/dependency_report.rb +30 -0
  17. data/lib/license_finder/html_report.rb +14 -0
  18. data/lib/license_finder/persistence.rb +1 -0
  19. data/lib/license_finder/persistence/yaml.rb +7 -0
  20. data/lib/license_finder/persistence/yaml/configuration.rb +34 -0
  21. data/lib/license_finder/persistence/yaml/dependency.rb +127 -0
  22. data/lib/license_finder/reporter.rb +7 -38
  23. data/lib/license_finder/source_syncer.rb +40 -0
  24. data/lib/license_finder/text_report.rb +9 -0
  25. data/lib/templates/dependency.html.erb +2 -2
  26. data/lib/templates/html_report.erb +93 -0
  27. data/lib/templates/text_report.erb +2 -0
  28. data/license_finder.gemspec +2 -2
  29. data/{README.markdown → readme.md} +22 -11
  30. data/spec/lib/license_finder/bundle_spec.rb +58 -0
  31. data/spec/lib/license_finder/bundle_syncer_spec.rb +22 -0
  32. data/spec/lib/license_finder/bundled_gem_spec.rb +17 -14
  33. data/spec/lib/license_finder/cli_spec.rb +38 -0
  34. data/spec/lib/license_finder/dependency_spec.rb +130 -223
  35. data/spec/lib/license_finder/html_report_spec.rb +67 -0
  36. data/spec/lib/license_finder/persistence/yaml/configuration_spec.rb +5 -0
  37. data/spec/lib/license_finder/persistence/yaml/dependency_spec.rb +5 -0
  38. data/spec/lib/license_finder/possible_license_file_spec.rb +4 -9
  39. data/spec/lib/license_finder/reporter_spec.rb +0 -1
  40. data/spec/lib/license_finder/source_syncer_spec.rb +37 -0
  41. data/spec/lib/license_finder/text_report_spec.rb +29 -0
  42. data/spec/lib/license_finder_spec.rb +9 -11
  43. data/spec/spec_helper.rb +1 -1
  44. data/spec/support/license_examples.rb +1 -1
  45. data/spec/support/shared_examples/persistence/configuration.rb +34 -0
  46. data/spec/support/shared_examples/persistence/dependency.rb +139 -0
  47. metadata +38 -26
  48. data/lib/license_finder/dependency_list.rb +0 -80
  49. data/lib/license_finder/viewable.rb +0 -31
  50. data/lib/templates/dependency_list.html.erb +0 -38
  51. data/spec/lib/license_finder/dependency_list_spec.rb +0 -243
@@ -0,0 +1,67 @@
1
+ require "spec_helper"
2
+
3
+ module LicenseFinder
4
+ describe HtmlReport do
5
+ describe "#to_s" do
6
+ let(:dependency) { Dependency.new 'approved' => true }
7
+ subject { HtmlReport.new([dependency]).to_s }
8
+
9
+ context "when the dependency is approved" do
10
+ it "should add an approved class to dependency's container" do
11
+ should include %{class="approved"}
12
+ end
13
+ end
14
+
15
+ context "when the dependency is not approved" do
16
+ before { dependency.approved = false }
17
+
18
+ it "should not add an approved class to he dependency's container" do
19
+ should include %{class="unapproved"}
20
+ end
21
+ end
22
+
23
+ context "when the gem has at least one bundler group" do
24
+ before { dependency.bundler_groups = ["group"] }
25
+ it "should show the bundler group(s) in parens" do
26
+ should include "(group)"
27
+ end
28
+ end
29
+
30
+ context "when the gem has no bundler groups" do
31
+ before { dependency.bundler_groups = [] }
32
+
33
+ it "should not show any parens or bundler group info" do
34
+ should_not include "()"
35
+ end
36
+
37
+ end
38
+
39
+ context "when the gem has at least one parent" do
40
+ before { dependency.parents = [OpenStruct.new(:name => "foo parent")] }
41
+ it "should include a parents section" do
42
+ should include "Parents"
43
+ end
44
+ end
45
+
46
+ context "when the gem has no parents" do
47
+ it "should not include any parents section in the output" do
48
+ should_not include "Parents"
49
+ end
50
+ end
51
+
52
+ context "when the gem has at least one child" do
53
+ before { dependency.children = [OpenStruct.new(:name => "foo child")] }
54
+
55
+ it "should include a Children section" do
56
+ should include "Children"
57
+ end
58
+ end
59
+
60
+ context "when the gem has no children" do
61
+ it "should not include any Children section in the output" do
62
+ should_not include "Children"
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,5 @@
1
+ require "spec_helper"
2
+
3
+ describe LicenseFinder::Persistence::Configuration do
4
+ it_behaves_like "a persistable configuration"
5
+ end
@@ -0,0 +1,5 @@
1
+ require "spec_helper"
2
+
3
+ describe LicenseFinder::Persistence::Dependency do
4
+ it_behaves_like "a persistable dependency"
5
+ end
@@ -6,8 +6,7 @@ describe LicenseFinder::PossibleLicenseFile do
6
6
 
7
7
  context "ignoring text" do
8
8
  before do
9
- stub(IO).read { "file text" }
10
- stub(IO).binread { "file text" }
9
+ subject.stub(:text).and_return('file text')
11
10
  end
12
11
 
13
12
  its(:file_path) { should == 'nested/path' }
@@ -20,10 +19,9 @@ describe LicenseFinder::PossibleLicenseFile do
20
19
 
21
20
  context "with a known license" do
22
21
  before do
23
- stub(IO).read { "a known license" }
24
- stub(IO).binread { "a known license" }
22
+ subject.stub(:text).and_return('a known license')
25
23
 
26
- stub(LicenseFinder::License::MIT).new("a known license").stub!.matches? { true }
24
+ LicenseFinder::License::MIT.stub(:new).with('a known license').and_return(double('MIT license', :matches? => true))
27
25
  end
28
26
 
29
27
  its(:license) { should == "MIT" }
@@ -31,10 +29,7 @@ describe LicenseFinder::PossibleLicenseFile do
31
29
 
32
30
  context "with an unknown license" do
33
31
  before do
34
- stub(IO).read { "" }
35
- stub(IO).binread { "" }
36
-
37
- any_instance_of(LicenseFinder::License::Base, :matches? => false)
32
+ subject.stub(:text).and_return('')
38
33
  end
39
34
 
40
35
  its(:license) { should be_nil }
@@ -1,5 +1,4 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe LicenseFinder::Reporter do
4
-
5
4
  end
@@ -0,0 +1,37 @@
1
+ require "spec_helper"
2
+
3
+ module LicenseFinder
4
+ describe SourceSyncer do
5
+ it "deletes any dependencies no longer in the source" do
6
+ foo_dep = double :foo, name: "foo"
7
+
8
+ foo_dep.should_receive(:destroy)
9
+
10
+ SourceSyncer.new([], [foo_dep]).sync!
11
+ end
12
+
13
+ it "merges any dependencies in the source" do
14
+ source_foo = double :source_foo, name: "foo"
15
+ foo = double :foo, name: "foo"
16
+
17
+ foo.should_receive(:merge).with source_foo
18
+
19
+ SourceSyncer.new([source_foo], [foo]).sync!
20
+ end
21
+
22
+ it "creates any new source dependencies" do
23
+ source_dep = double :source_dep, name: "foo", attributes: double(:attributes)
24
+
25
+ source_dep.should_receive :save
26
+
27
+ SourceSyncer.new([source_dep], []).sync!
28
+ end
29
+
30
+ it "returns the synced dependency set" do
31
+ source_dep = double(:source_dep, name: "source_dep", attributes: double(:attributes)).as_null_object
32
+ existing_dep = double :existing_dep, name: "existing", merge: nil
33
+
34
+ SourceSyncer.new([source_dep, existing_dep], [existing_dep]).sync!.should =~ [source_dep, existing_dep]
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,29 @@
1
+ require "spec_helper"
2
+
3
+ module LicenseFinder
4
+ describe TextReport do
5
+ describe '#to_s' do
6
+ let(:dep1) do
7
+ Dependency.new(
8
+ 'name' => 'gem_a',
9
+ 'version' => '1.0',
10
+ 'license' => "MIT"
11
+ )
12
+ end
13
+
14
+ let(:dep2) do
15
+ Dependency.new(
16
+ 'name' => 'gem_b',
17
+ 'version' => '1.0',
18
+ 'license' => "MIT"
19
+ )
20
+ end
21
+
22
+ subject { TextReport.new([dep2, dep1]).to_s }
23
+
24
+ it 'should generate a text report with the name, version, and license of each dependency, sorted by name' do
25
+ should == "gem_a, 1.0, MIT\ngem_b, 1.0, MIT"
26
+ end
27
+ end
28
+ end
29
+ end
@@ -10,8 +10,9 @@ describe LicenseFinder do
10
10
  end
11
11
 
12
12
  before do
13
- stub(File).exists?('./config/license_finder.yml') { true }
14
- stub(File).open('./config/license_finder.yml').stub!.readlines.stub!.join { config.to_yaml }
13
+ LicenseFinder.instance_variable_set(:@config, nil)
14
+ File.stub(:exists?).with('./config/license_finder.yml').and_return(true)
15
+ File.stub(:read).with('./config/license_finder.yml').and_return(config.to_yaml)
15
16
  end
16
17
 
17
18
  after do
@@ -19,8 +20,8 @@ describe LicenseFinder do
19
20
  end
20
21
 
21
22
  it "should handle a missing configuration file" do
22
- stub(File).exists?('./config/license_finder.yml') { false }
23
- dont_allow(File).open('./config/license_finder.yml')
23
+ File.stub(:exists?).with('./config/license_finder.yml').and_return(false)
24
+ File.should_not_receive(:open).with('./config/license_finder.yml')
24
25
 
25
26
  LicenseFinder.config.whitelist.should == []
26
27
  LicenseFinder.config.ignore_groups.should == []
@@ -28,12 +29,9 @@ describe LicenseFinder do
28
29
  end
29
30
 
30
31
  it "should load the configuration exactly once" do
31
- mock(File).open('./config/license_finder.yml').stub!.readlines.stub!.join { config.to_yaml }
32
+ File.should_receive(:read).with('./config/license_finder.yml').once.and_return(config.to_yaml)
32
33
 
33
34
  LicenseFinder.config.whitelist
34
-
35
- dont_allow(File).open('./config/license_finder.yml')
36
-
37
35
  LicenseFinder.config.whitelist
38
36
  end
39
37
 
@@ -43,7 +41,7 @@ describe LicenseFinder do
43
41
  end
44
42
 
45
43
  it "should load an empty whitelist from license_finder.yml when there are no whitelist items" do
46
- stub(File).open('./config/license_finder.yml').stub!.readlines.stub!.join { config.merge('whitelist' => nil).to_yaml }
44
+ File.stub(:read).with('./config/license_finder.yml').and_return(config.merge('whitelist' => nil).to_yaml)
47
45
 
48
46
  LicenseFinder.config.whitelist.should =~ []
49
47
  end
@@ -55,7 +53,7 @@ describe LicenseFinder do
55
53
  end
56
54
 
57
55
  it "should load an empty ignore_groups list from license_finder.yml when there are no ignore groups" do
58
- stub(File).open('./config/license_finder.yml').stub!.readlines.stub!.join { config.merge('ignore_groups' => nil).to_yaml }
56
+ File.stub(:read).with('./config/license_finder.yml').and_return(config.merge('ignore_groups' => nil).to_yaml)
59
57
 
60
58
  LicenseFinder.config.ignore_groups.should == []
61
59
  end
@@ -63,7 +61,7 @@ describe LicenseFinder do
63
61
 
64
62
  describe "#dependencies_dir" do
65
63
  it 'should allow the dependencies file directory to be configured' do
66
- stub(File).open('./config/license_finder.yml').stub!.readlines.stub!.join { config.merge('dependencies_file_dir' => './elsewhere').to_yaml }
64
+ File.stub(:read).with('./config/license_finder.yml').and_return(config.merge('dependencies_file_dir' => './elsewhere').to_yaml)
67
65
 
68
66
  config = LicenseFinder.config
69
67
  config.dependencies_dir.should == './elsewhere'
@@ -11,5 +11,5 @@ Dir[File.join(File.dirname(__FILE__), 'support', '**', '*.rb')].each do |file|
11
11
  end
12
12
 
13
13
  RSpec.configure do |config|
14
- config.mock_with :rr
14
+ config.mock_with :rspec
15
15
  end
@@ -2,7 +2,7 @@ shared_examples_for "a license matcher" do
2
2
  describe "#matches?" do
3
3
  context "when a license text template exists" do
4
4
  before do
5
- stub(subject.class).license_text { 'AWESOME "FOO" LICENSE' }
5
+ subject.class.stub(:license_text).and_return('AWESOME "FOO" LICENSE')
6
6
  end
7
7
 
8
8
  it "should return true if the body matches exactly" do
@@ -0,0 +1,34 @@
1
+ shared_examples_for "a persistable configuration" do
2
+ let(:klass) { described_class }
3
+
4
+ let(:attributes) do
5
+ {
6
+ "whitelist" => ["FooLicense", "BarLicense"],
7
+ "ignore_groups" => [:test, :development]
8
+ }
9
+ end
10
+
11
+ describe '.new' do
12
+ subject { klass.new(attributes) }
13
+
14
+ context "with known attributes" do
15
+ it "should set the all of the attributes on the instance" do
16
+ attributes.each do |key, value|
17
+ subject.send("#{key}").should == value
18
+ end
19
+ end
20
+ end
21
+ end
22
+
23
+ describe "#whitelist" do
24
+ it "should default to an empty array" do
25
+ klass.new.whitelist.should == []
26
+ end
27
+ end
28
+
29
+ describe "#ignore_groups" do
30
+ it "should default to an empty array" do
31
+ klass.new.ignore_groups.should == []
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,139 @@
1
+ shared_examples_for "a persistable dependency" do
2
+ let(:klass) { described_class }
3
+
4
+ let(:attributes) do
5
+ {
6
+ 'name' => "spec_name",
7
+ 'version' => "2.1.3",
8
+ 'license' => "GPLv2",
9
+ 'approved' => false,
10
+ 'notes' => 'some notes',
11
+ 'homepage' => 'homepage',
12
+ 'license_files' => ['/Users/pivotal/foo/lic1', '/Users/pivotal/bar/lic2'],
13
+ 'readme_files' => ['/Users/pivotal/foo/Readme1', '/Users/pivotal/bar/Readme2'],
14
+ 'source' => "bundle",
15
+ 'bundler_groups' => ["test"]
16
+ }
17
+ end
18
+
19
+ before do
20
+ klass.delete_all
21
+ end
22
+
23
+ describe '.new' do
24
+ subject { klass.new(attributes) }
25
+
26
+ context "with known attributes" do
27
+ it "should set the all of the attributes on the instance" do
28
+ attributes.each do |key, value|
29
+ if key != "approved"
30
+ subject.send("#{key}").should equal(value), "expected #{value.inspect} for #{key}, got #{subject.send("#{key}").inspect}"
31
+ else
32
+ subject.approved?.should == value
33
+ end
34
+ end
35
+ end
36
+ end
37
+
38
+ context "with unknown attributes" do
39
+ before do
40
+ attributes['foo'] = 'bar'
41
+ end
42
+
43
+ it "should raise an exception" do
44
+ expect { subject }.to raise_exception(NoMethodError)
45
+ end
46
+ end
47
+ end
48
+
49
+ describe '.unapproved' do
50
+ it "should return all unapproved dependencies" do
51
+ klass.new(name: "unapproved dependency", approved: false).save
52
+ klass.new(name: "approved dependency", approved: true).save
53
+
54
+ unapproved = klass.unapproved
55
+ unapproved.count.should == 1
56
+ unapproved.collect(&:approved?).any?.should be_false
57
+ end
58
+ end
59
+
60
+ describe '.find_by_name' do
61
+ subject { klass.find_by_name gem_name }
62
+ let(:gem_name) { "foo" }
63
+
64
+ context "when a gem with the provided name exists" do
65
+ before do
66
+ klass.new(
67
+ 'name' => gem_name,
68
+ 'version' => '0.0.1'
69
+ ).save
70
+ end
71
+
72
+ its(:name) { should == gem_name }
73
+ its(:version) { should == '0.0.1' }
74
+ end
75
+
76
+ context "when no gem with the provided name exists" do
77
+ it { should == nil }
78
+ end
79
+ end
80
+
81
+ describe "#config" do
82
+ it 'should respond to it' do
83
+ klass.new.should respond_to(:config)
84
+ end
85
+ end
86
+
87
+ describe '#attributes' do
88
+ it "should return a hash containing the values of all the accessible properties" do
89
+ dep = klass.new(attributes)
90
+ attributes = dep.attributes
91
+ LicenseFinder::DEPENDENCY_ATTRIBUTES.each do |name|
92
+ attributes[name].should == dep.send(name)
93
+ end
94
+ end
95
+ end
96
+
97
+ describe '#save' do
98
+ it "should persist all of the dependency's attributes" do
99
+ dep = klass.new(attributes)
100
+ dep.save
101
+
102
+ saved_dep = klass.find_by_name(dep.name)
103
+
104
+ attributes.each do |key, value|
105
+ if key != "approved"
106
+ saved_dep.send("#{key}").should eql(value), "expected #{value.inspect} for #{key}, got #{saved_dep.send("#{key}").inspect}"
107
+ else
108
+ saved_dep.approved?.should == value
109
+ end
110
+ end
111
+ end
112
+ end
113
+
114
+ describe "#update_attributes" do
115
+ it "should update the provided attributes with the provided values" do
116
+ gem = klass.new(attributes)
117
+ updated_attributes = {"version" => "new_version", "license" => "updated_license"}
118
+ gem.update_attributes(updated_attributes)
119
+
120
+ saved_gem = klass.find_by_name(gem.name)
121
+ saved_gem.version.should == "new_version"
122
+ saved_gem.license.should == "updated_license"
123
+ end
124
+ end
125
+
126
+ describe "#destroy" do
127
+ it "should remove itself from the database" do
128
+ foo_dep = klass.new(name: "foo")
129
+ bar_dep = klass.new(name: "bar")
130
+ foo_dep.save
131
+ bar_dep.save
132
+
133
+ expect { foo_dep.destroy }.to change { klass.all.count }.by -1
134
+
135
+ klass.all.count.should == 1
136
+ klass.all.first.name.should == "bar"
137
+ end
138
+ end
139
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: license_finder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2012-09-15 00:00:00.000000000 Z
16
+ date: 2012-09-25 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: bundler
@@ -63,22 +63,6 @@ dependencies:
63
63
  - - ! '>='
64
64
  - !ruby/object:Gem::Version
65
65
  version: '0'
66
- - !ruby/object:Gem::Dependency
67
- name: rr
68
- requirement: !ruby/object:Gem::Requirement
69
- none: false
70
- requirements:
71
- - - ! '>='
72
- - !ruby/object:Gem::Version
73
- version: '0'
74
- type: :development
75
- prerelease: false
76
- version_requirements: !ruby/object:Gem::Requirement
77
- none: false
78
- requirements:
79
- - - ! '>='
80
- - !ruby/object:Gem::Version
81
- version: '0'
82
66
  - !ruby/object:Gem::Dependency
83
67
  name: rake
84
68
  requirement: !ruby/object:Gem::Requirement
@@ -177,7 +161,6 @@ files:
177
161
  - .travis.yml
178
162
  - Gemfile
179
163
  - LICENSE
180
- - README.markdown
181
164
  - Rakefile
182
165
  - bin/license_finder
183
166
  - features/approve_dependencies.feature
@@ -185,6 +168,7 @@ files:
185
168
  - features/license_finder.feature
186
169
  - features/license_finder_rake_task.feature
187
170
  - features/rails_rake.feature
171
+ - features/set_license.feature
188
172
  - features/step_definitions/steps.rb
189
173
  - features/text_report.feature
190
174
  - files/license_finder.yml
@@ -199,11 +183,13 @@ files:
199
183
  - lib/data/licenses/SimplifiedBSD.txt
200
184
  - lib/license_finder.rb
201
185
  - lib/license_finder/bundle.rb
186
+ - lib/license_finder/bundle_syncer.rb
202
187
  - lib/license_finder/bundled_gem.rb
203
188
  - lib/license_finder/cli.rb
204
189
  - lib/license_finder/configuration.rb
205
190
  - lib/license_finder/dependency.rb
206
- - lib/license_finder/dependency_list.rb
191
+ - lib/license_finder/dependency_report.rb
192
+ - lib/license_finder/html_report.rb
207
193
  - lib/license_finder/license.rb
208
194
  - lib/license_finder/license/apache2.rb
209
195
  - lib/license_finder/license/bsd.rb
@@ -215,14 +201,21 @@ files:
215
201
  - lib/license_finder/license/ruby.rb
216
202
  - lib/license_finder/license/simplified_bsd.rb
217
203
  - lib/license_finder/license_url.rb
204
+ - lib/license_finder/persistence.rb
205
+ - lib/license_finder/persistence/yaml.rb
206
+ - lib/license_finder/persistence/yaml/configuration.rb
207
+ - lib/license_finder/persistence/yaml/dependency.rb
218
208
  - lib/license_finder/possible_license_file.rb
219
209
  - lib/license_finder/railtie.rb
220
210
  - lib/license_finder/reporter.rb
221
- - lib/license_finder/viewable.rb
211
+ - lib/license_finder/source_syncer.rb
212
+ - lib/license_finder/text_report.rb
222
213
  - lib/tasks/license_finder.rake
223
214
  - lib/templates/dependency.html.erb
224
- - lib/templates/dependency_list.html.erb
215
+ - lib/templates/html_report.erb
216
+ - lib/templates/text_report.erb
225
217
  - license_finder.gemspec
218
+ - readme.md
226
219
  - spec/fixtures/APACHE-2-LICENSE
227
220
  - spec/fixtures/GPLv2
228
221
  - spec/fixtures/ISC-LICENSE
@@ -248,9 +241,12 @@ files:
248
241
  - spec/fixtures/readme/README
249
242
  - spec/fixtures/readme/Readme.markdown
250
243
  - spec/fixtures/utf8_gem/README
244
+ - spec/lib/license_finder/bundle_spec.rb
245
+ - spec/lib/license_finder/bundle_syncer_spec.rb
251
246
  - spec/lib/license_finder/bundled_gem_spec.rb
252
- - spec/lib/license_finder/dependency_list_spec.rb
247
+ - spec/lib/license_finder/cli_spec.rb
253
248
  - spec/lib/license_finder/dependency_spec.rb
249
+ - spec/lib/license_finder/html_report_spec.rb
254
250
  - spec/lib/license_finder/license/apache_spec.rb
255
251
  - spec/lib/license_finder/license/bsd_spec.rb
256
252
  - spec/lib/license_finder/license/gplv2_spec.rb
@@ -262,11 +258,17 @@ files:
262
258
  - spec/lib/license_finder/license/simplified_bsd_spec.rb
263
259
  - spec/lib/license_finder/license_spec.rb
264
260
  - spec/lib/license_finder/license_url_spec.rb
261
+ - spec/lib/license_finder/persistence/yaml/configuration_spec.rb
262
+ - spec/lib/license_finder/persistence/yaml/dependency_spec.rb
265
263
  - spec/lib/license_finder/possible_license_file_spec.rb
266
264
  - spec/lib/license_finder/reporter_spec.rb
265
+ - spec/lib/license_finder/source_syncer_spec.rb
266
+ - spec/lib/license_finder/text_report_spec.rb
267
267
  - spec/lib/license_finder_spec.rb
268
268
  - spec/spec_helper.rb
269
269
  - spec/support/license_examples.rb
270
+ - spec/support/shared_examples/persistence/configuration.rb
271
+ - spec/support/shared_examples/persistence/dependency.rb
270
272
  homepage: https://github.com/pivotal/LicenseFinder
271
273
  licenses:
272
274
  - MIT
@@ -282,7 +284,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
282
284
  version: '0'
283
285
  segments:
284
286
  - 0
285
- hash: -3316457450269870236
287
+ hash: -3357817247708009893
286
288
  required_rubygems_version: !ruby/object:Gem::Requirement
287
289
  none: false
288
290
  requirements:
@@ -291,7 +293,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
291
293
  version: '0'
292
294
  segments:
293
295
  - 0
294
- hash: -3316457450269870236
296
+ hash: -3357817247708009893
295
297
  requirements: []
296
298
  rubyforge_project:
297
299
  rubygems_version: 1.8.24
@@ -304,6 +306,7 @@ test_files:
304
306
  - features/license_finder.feature
305
307
  - features/license_finder_rake_task.feature
306
308
  - features/rails_rake.feature
309
+ - features/set_license.feature
307
310
  - features/step_definitions/steps.rb
308
311
  - features/text_report.feature
309
312
  - spec/fixtures/APACHE-2-LICENSE
@@ -331,9 +334,12 @@ test_files:
331
334
  - spec/fixtures/readme/README
332
335
  - spec/fixtures/readme/Readme.markdown
333
336
  - spec/fixtures/utf8_gem/README
337
+ - spec/lib/license_finder/bundle_spec.rb
338
+ - spec/lib/license_finder/bundle_syncer_spec.rb
334
339
  - spec/lib/license_finder/bundled_gem_spec.rb
335
- - spec/lib/license_finder/dependency_list_spec.rb
340
+ - spec/lib/license_finder/cli_spec.rb
336
341
  - spec/lib/license_finder/dependency_spec.rb
342
+ - spec/lib/license_finder/html_report_spec.rb
337
343
  - spec/lib/license_finder/license/apache_spec.rb
338
344
  - spec/lib/license_finder/license/bsd_spec.rb
339
345
  - spec/lib/license_finder/license/gplv2_spec.rb
@@ -345,8 +351,14 @@ test_files:
345
351
  - spec/lib/license_finder/license/simplified_bsd_spec.rb
346
352
  - spec/lib/license_finder/license_spec.rb
347
353
  - spec/lib/license_finder/license_url_spec.rb
354
+ - spec/lib/license_finder/persistence/yaml/configuration_spec.rb
355
+ - spec/lib/license_finder/persistence/yaml/dependency_spec.rb
348
356
  - spec/lib/license_finder/possible_license_file_spec.rb
349
357
  - spec/lib/license_finder/reporter_spec.rb
358
+ - spec/lib/license_finder/source_syncer_spec.rb
359
+ - spec/lib/license_finder/text_report_spec.rb
350
360
  - spec/lib/license_finder_spec.rb
351
361
  - spec/spec_helper.rb
352
362
  - spec/support/license_examples.rb
363
+ - spec/support/shared_examples/persistence/configuration.rb
364
+ - spec/support/shared_examples/persistence/dependency.rb