license_finder 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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