stickler 2.3.0 → 2.4.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 (80) hide show
  1. checksums.yaml +15 -0
  2. data/CONTRIBUTING.md +5 -4
  3. data/HISTORY.md +16 -9
  4. data/LICENSE +1 -1
  5. data/Manifest.txt +34 -20
  6. data/README.md +128 -0
  7. data/Rakefile +10 -9
  8. data/bin/stickler +9 -6
  9. data/bin/stickler-passenger-config +8 -8
  10. data/bin/stickler-server +12 -12
  11. data/examples/as_middleware.ru +14 -0
  12. data/examples/auth_repo.ru +1 -1
  13. data/examples/gemcutter_repo.ru +1 -1
  14. data/examples/local_repo.ru +1 -1
  15. data/lib/stickler.rb +3 -1
  16. data/lib/stickler/client.rb +2 -1
  17. data/lib/stickler/client/delete.rb +1 -1
  18. data/lib/stickler/client/latest-version.rb +40 -0
  19. data/lib/stickler/client/mirror.rb +47 -15
  20. data/lib/stickler/client/push.rb +1 -1
  21. data/lib/stickler/client/unyank.rb +1 -1
  22. data/lib/stickler/client/yank.rb +1 -1
  23. data/lib/stickler/gem_container.rb +40 -0
  24. data/lib/stickler/gemfile_lock_parser.rb +47 -0
  25. data/lib/stickler/middleware.rb +1 -0
  26. data/lib/stickler/middleware/server.rb +37 -0
  27. data/lib/stickler/repository/api.rb +16 -0
  28. data/lib/stickler/repository/index.rb +0 -3
  29. data/lib/stickler/repository/local.rb +6 -8
  30. data/lib/stickler/repository/remote.rb +29 -7
  31. data/lib/stickler/server.rb +2 -6
  32. data/man/stickler-passenger-config.1 +2 -22
  33. data/man/stickler-server.1 +9 -99
  34. data/man/stickler.1 +15 -173
  35. data/man/stickler.1.ronn +6 -0
  36. data/tasks/default.rake +16 -18
  37. data/tasks/man.rake +7 -0
  38. data/tasks/this.rb +5 -5
  39. data/test/data/Gemfile.lock.example +56 -0
  40. data/{spec → test}/data/gemcutter/gems/foo-1.0.0.gem +0 -0
  41. data/{spec → test}/data/gems/bar-1.0.0.gem +0 -0
  42. data/{spec → test}/data/gems/baz-3.1.4-java.gem +0 -0
  43. data/{spec → test}/data/gems/baz-3.1.4.gem +0 -0
  44. data/{spec → test}/data/gems/foo-1.0.0.gem +0 -0
  45. data/{spec → test}/data/gems/foo-2.0.0a.gem +0 -0
  46. data/test/data/specifications/bar-1.0.0.gemspec +31 -0
  47. data/test/data/specifications/baz-3.1.4-java.gemspec +32 -0
  48. data/test/data/specifications/baz-3.1.4.gemspec +31 -0
  49. data/test/data/specifications/foo-1.0.0.gemspec +31 -0
  50. data/test/data/specifications/foo-2.0.0a.gemspec +32 -0
  51. data/test/index_test_helpers.rb +75 -0
  52. data/test/middleware/test_local.rb +75 -0
  53. data/test/middleware/test_not_found.rb +26 -0
  54. data/test/repository/test_api.rb +49 -0
  55. data/test/repository/test_api_behavior.rb +208 -0
  56. data/test/repository/test_index.rb +48 -0
  57. data/test/repository/test_local.rb +59 -0
  58. data/test/repository/test_null.rb +15 -0
  59. data/test/repository/test_remote.rb +26 -0
  60. data/test/repository/test_remote_authenticated.rb +39 -0
  61. data/test/stickler_test_server.rb +35 -0
  62. data/test/test_gemfile_lock_parser.rb +28 -0
  63. data/test/test_paths.rb +22 -0
  64. data/test/test_spec_lite.rb +90 -0
  65. data/test/test_stickler.rb +49 -0
  66. metadata +58 -85
  67. data/README.rdoc +0 -156
  68. data/spec/index_spec_helpers.rb +0 -73
  69. data/spec/middleware/local_spec.rb +0 -72
  70. data/spec/middleware/not_found_spec.rb +0 -25
  71. data/spec/paths_spec.rb +0 -11
  72. data/spec/repository/api_behavior.rb +0 -192
  73. data/spec/repository/api_spec.rb +0 -37
  74. data/spec/repository/index_spec.rb +0 -46
  75. data/spec/repository/local_spec.rb +0 -49
  76. data/spec/repository/null_spec.rb +0 -14
  77. data/spec/repository/remote_spec.rb +0 -86
  78. data/spec/spec.opts +0 -2
  79. data/spec/spec_helper.rb +0 -24
  80. data/spec/spec_lite_spec.rb +0 -96
@@ -0,0 +1,15 @@
1
+ require 'test_stickler'
2
+ require 'repository/test_api'
3
+
4
+ module Stickler
5
+ class NullRepoistoryTest < Test
6
+ include RepositoryApiTests
7
+ def repo
8
+ @repo ||= ::Stickler::Repository::Null.new
9
+ end
10
+
11
+ def test_null_root_dir_is_class_name
12
+ assert_equal "Stickler::Repository::Null", repo.root_dir
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,26 @@
1
+ require 'test_stickler'
2
+ require 'stickler_test_server'
3
+ require 'repository/test_api_behavior'
4
+
5
+ module Stickler
6
+ class RemoteRepositoryTest < Test
7
+ include RepositoryApiBehaviorTests
8
+
9
+ attr_reader :repo
10
+
11
+ def setup
12
+ super
13
+ @repo_uri = "http://localhost:6789/"
14
+ @repo = ::Stickler::Repository::Remote.new( @repo_uri, :debug => true )
15
+ @server = SticklerTestServer.new( test_dir, "gemcutter_repo.ru" )
16
+ @server.start
17
+ end
18
+
19
+ def teardown
20
+ super
21
+ @server.stop
22
+ end
23
+ end
24
+
25
+ end
26
+
@@ -0,0 +1,39 @@
1
+ require 'test_stickler'
2
+ require 'stickler_test_server'
3
+ require 'repository/test_api_behavior'
4
+
5
+ module Stickler
6
+ class AuthenticatedRemoteRepositoryTest < Test
7
+ include RepositoryApiBehaviorTests
8
+
9
+ attr_reader :repo
10
+
11
+ def setup
12
+ super
13
+ @repo_uri = "http://stickler:secret@localhost:6789/"
14
+ @repo = ::Stickler::Repository::Remote.new( @repo_uri )
15
+ @server = SticklerTestServer.new( test_dir , "auth_repo.ru" )
16
+ @server.start
17
+ end
18
+
19
+ def teardown
20
+ super
21
+ @server.stop
22
+ end
23
+
24
+ def test_raising_authentication_denied
25
+ repo = ::Stickler::Repository::Remote.new( "http://localhost:6789/")
26
+ assert_raises( ::Stickler::Repository::Error ) do
27
+ repo.get( @foo_spec )
28
+ end
29
+ end
30
+
31
+ def test_authenticates_a_connection
32
+ repo.push( @foo_gem_local_path )
33
+ data = repo.get( @foo_spec )
34
+ sha1 = Digest::SHA1.hexdigest( data )
35
+ assert_equal @foo_digest, sha1
36
+ end
37
+ end
38
+ end
39
+
@@ -0,0 +1,35 @@
1
+ class SticklerTestServer
2
+ def initialize( test_dir, ru_file )
3
+ @test_dir = test_dir
4
+ @repo_uri = "http://localhost:6789/"
5
+ @tmp_dir = File.join( @test_dir , "tmp" )
6
+ FileUtils.mkdir_p( @tmp_dir )
7
+
8
+ @pid_file = File.join( @tmp_dir , "rack.pid" )
9
+ @ru_file = File.expand_path( File.join( @test_dir , "..", "examples", ru_file ) )
10
+ @cmd = "rackup --port 6789 --pid #{@pid_file} --daemonize #{@ru_file}"
11
+ end
12
+
13
+ def start
14
+ system @cmd
15
+ tries = 0
16
+ loop do
17
+ begin
18
+ Excon.get( @repo_uri + "specs.#{Gem.marshal_version}.gz" )
19
+ #puts "rackup started with pid #{IO.read( @pid_file )}"
20
+ break
21
+ rescue
22
+ tries += 1
23
+ sleep tries * 0.1
24
+ end
25
+ end
26
+ end
27
+
28
+ def stop
29
+ pid = IO.read( @pid_file ).to_i
30
+ Process.kill( 'KILL', pid )
31
+ #FileUtils.rm_rf( @tmp_dir, :verbose => true )
32
+ FileUtils.rm_rf( @tmp_dir )
33
+ end
34
+ end
35
+
@@ -0,0 +1,28 @@
1
+ require 'test_stickler'
2
+ require 'stickler/gemfile_lock_parser'
3
+
4
+ module Stickler
5
+ class TestGemfileLockParser < Test
6
+ def setup
7
+ @lockfile = File.join( test_dir, 'data', 'Gemfile.lock.example' )
8
+ @parser = ::Stickler::GemfileLockParser.new( @lockfile )
9
+ end
10
+
11
+ def test_raises_exception_when_file_does_not_exist
12
+ assert_raises( ::Stickler::Error ) {
13
+ ::Stickler::GemfileLockParser.new( File.join( test_dir, 'data', "Gemfile.dne" ) )
14
+ }
15
+ end
16
+
17
+ def test_parse_gem_dependencies
18
+ names = %w[ addressable builder excon hpricot json little-plugger logging
19
+ minitest multi_json mustache rack rack-protection rack-test rake
20
+ rdiscount rdoc ronn sinatra tilt trollop ]
21
+ names.each do |n|
22
+ assert @parser.depends_on?( n ), "fails to depend on #{n}"
23
+ end
24
+
25
+ assert_equal names.size, @parser.gem_dependencies.size
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,22 @@
1
+ require 'test_stickler'
2
+ require 'pathname'
3
+
4
+ module Stickler
5
+ class TestPaths < Test
6
+ def setup
7
+ @root_path = Pathname.new( __FILE__ ).dirname.parent.expand_path
8
+ end
9
+
10
+ def add_trailing_separator( x )
11
+ x.to_s + ::File::SEPARATOR
12
+ end
13
+
14
+ def test_accessing_the_root_dir_of_the_project
15
+ assert_equal( add_trailing_separator( @root_path ), Stickler::Paths.root_dir )
16
+ end
17
+
18
+ def test_accessing_the_lib_dir_of_the_project
19
+ assert_equal( add_trailing_separator( @root_path.join('lib')), Stickler::Paths.lib_path )
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,90 @@
1
+ require 'test_stickler'
2
+
3
+ module Stickler
4
+ class TestSpecLite < Test
5
+ def setup
6
+ @specs = {
7
+ :ruby => Stickler::SpecLite.new( 'foo', '0.4.2' ),
8
+ :win => Stickler::SpecLite.new( 'bar', '1.0.1', "x86-mswin32" ),
9
+ :java => Stickler::SpecLite.new( 'jfoo', '0.4.2', 'jruby' )
10
+ }
11
+ end
12
+
13
+ def test_defaults_to_ruby_platform
14
+ assert_equal Gem::Platform::RUBY, @specs[:ruby].platform
15
+ end
16
+
17
+ def test_platform_methods
18
+ { [:ruby, 'file_name'] => "foo-0.4.2.gem",
19
+ [:ruby, 'spec_file_name'] => "foo-0.4.2.gemspec" ,
20
+ [:win , 'file_name'] => "bar-1.0.1-x86-mswin32.gem",
21
+ [:win , 'spec_file_name'] => "bar-1.0.1-x86-mswin32.gemspec",
22
+ [:java, 'file_name'] => 'jfoo-0.4.2-jruby.gem',
23
+ [:java, 'spec_file_name'] => 'jfoo-0.4.2-jruby.gemspec',
24
+ }.each do |params, result|
25
+ platform, method = *params
26
+ assert_equal result, @specs[platform].send(method), "on a #{platform} gem #{method} is #{result}"
27
+ end
28
+ end
29
+
30
+ def test_array_format
31
+ assert_equal [ 'bar', '1.0.1', 'x86-mswin32' ], @specs[:win].to_a
32
+ end
33
+
34
+ def test_returns_false_when_not_similar
35
+ refute_match @specs[:ruby], Object.new
36
+ end
37
+
38
+ def test_returns_true_when_is_similar
39
+ o = OpenStruct.new( :name => @specs[:ruby].name,
40
+ :version => @specs[:ruby].version,
41
+ :platform_string => @specs[:ruby].platform_string )
42
+
43
+ assert_match @specs[:ruby], o
44
+ end
45
+
46
+ def test_compare_to_another_spec
47
+ refute_match @specs[:ruby], @specs[:win]
48
+ end
49
+
50
+ def test_compare_to_same_name_and_version_different_platform
51
+ list = []
52
+ list << r = Stickler::SpecLite.new( 'alib', '4.2' )
53
+ list << u = Stickler::SpecLite.new( 'alib', '4.2', 'x86-mswin32' )
54
+ assert_equal [ r, u ], list.sort
55
+ end
56
+
57
+ def test_different_platforms_may_be_compared
58
+ list = []
59
+ list << h2 = Stickler::SpecLite.new( 'htimes', '1.1.1', 'x86-mingw32' )
60
+ list << h1 = Stickler::SpecLite.new( 'htimes', '1.1.1', 'java' )
61
+ assert_equal [h1, h2], list.sort
62
+ end
63
+
64
+ def test_sorting
65
+ list = @specs.values
66
+ alib = Stickler::SpecLite.new( 'alib', '4.2' )
67
+ list << alib
68
+ result = [ alib, @specs[:win], @specs[:ruby], @specs[:java] ]
69
+ assert_equal result, list.sort
70
+ end
71
+
72
+ def test_is_prerelease
73
+ spec = Stickler::SpecLite.new( 'prerelease', '1.2.3a' )
74
+ assert_predicate spec, :prerelease?
75
+ end
76
+
77
+ def test_not_prerelease
78
+ spec = Stickler::SpecLite.new( 'prerelease', '1.2.3' )
79
+ refute_predicate spec, :prerelease?
80
+ end
81
+
82
+ def test_version_sortable
83
+ l = []
84
+ l << a = Stickler::SpecLite.new( "foo", "1.0.3" )
85
+ l << b = Stickler::SpecLite.new( "foo", "1.0.22" )
86
+ l << c = Stickler::SpecLite.new( "foo", "1.0.17" )
87
+ assert_equal [a, c, b], l.sort
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,49 @@
1
+
2
+ if RUBY_VERSION >= '1.9.2' then
3
+ require 'simplecov'
4
+ SimpleCov.start if ENV['COVERAGE']
5
+ end
6
+
7
+ gem 'minitest'
8
+ require 'minitest/autorun'
9
+ require 'minitest/pride'
10
+ require 'stickler'
11
+ require 'index_test_helpers'
12
+
13
+ module Stickler
14
+ class Test < ::Minitest::Test
15
+ def test_dir
16
+ File.expand_path( File.dirname( __FILE__ ) )
17
+ end
18
+
19
+ def gem_root
20
+ File.join( test_dir, 'data' )
21
+ end
22
+
23
+ def specifications_dir
24
+ File.join( gem_root, "specifications" )
25
+ end
26
+
27
+ def gems_dir
28
+ File.join( gem_root, "gems" )
29
+ end
30
+
31
+ def teardown
32
+ ::Stickler::Repository::Local.purge
33
+ end
34
+
35
+ def assert_raises_kind_of *exp
36
+ msg = "#{exp.pop}.\n" if String === exp.last
37
+
38
+ begin
39
+ yield
40
+ rescue Exception => e
41
+ expected = exp.any? { |ex| e.kind_of? ex }
42
+ assert expected, proc {
43
+ exception_details(e, "#{msg}#{mu_pp(exp)} exception expected, not")
44
+ }
45
+ return e
46
+ end
47
+ end
48
+ end
49
+ end
metadata CHANGED
@@ -1,68 +1,60 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stickler
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0
5
- prerelease:
4
+ version: 2.4.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jeremy Hinegardner
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-03-09 00:00:00.000000000 Z
11
+ date: 2013-11-12 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: sinatra
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
21
- version: 1.3.5
19
+ version: '1.4'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
29
- version: 1.3.5
26
+ version: '1.4'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: addressable
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
37
- version: 2.3.3
33
+ version: '2.3'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
45
- version: 2.3.3
40
+ version: '2.3'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: excon
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ~>
52
46
  - !ruby/object:Gem::Version
53
- version: 0.20.0
47
+ version: '0.29'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ~>
60
53
  - !ruby/object:Gem::Version
61
- version: 0.20.0
54
+ version: '0.29'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: trollop
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - ~>
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,6 @@ dependencies:
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - ~>
76
67
  - !ruby/object:Gem::Version
@@ -78,7 +69,6 @@ dependencies:
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: logging
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
73
  - - ~>
84
74
  - !ruby/object:Gem::Version
@@ -86,7 +76,6 @@ dependencies:
86
76
  type: :runtime
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
80
  - - ~>
92
81
  - !ruby/object:Gem::Version
@@ -94,23 +83,20 @@ dependencies:
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: rake
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
87
  - - ~>
100
88
  - !ruby/object:Gem::Version
101
- version: 10.0.3
89
+ version: '10.1'
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
94
  - - ~>
108
95
  - !ruby/object:Gem::Version
109
- version: 10.0.3
96
+ version: '10.1'
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: rack-test
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
101
  - - ~>
116
102
  - !ruby/object:Gem::Version
@@ -118,7 +104,6 @@ dependencies:
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
108
  - - ~>
124
109
  - !ruby/object:Gem::Version
@@ -126,39 +111,34 @@ dependencies:
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: builder
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
115
  - - ~>
132
116
  - !ruby/object:Gem::Version
133
- version: 3.2.0
117
+ version: '3.2'
134
118
  type: :development
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
122
  - - ~>
140
123
  - !ruby/object:Gem::Version
141
- version: 3.2.0
124
+ version: '3.2'
142
125
  - !ruby/object:Gem::Dependency
143
- name: rspec
126
+ name: minitest
144
127
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
128
  requirements:
147
129
  - - ~>
148
130
  - !ruby/object:Gem::Version
149
- version: 2.13.0
131
+ version: '5.0'
150
132
  type: :development
151
133
  prerelease: false
152
134
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
135
  requirements:
155
136
  - - ~>
156
137
  - !ruby/object:Gem::Version
157
- version: 2.13.0
138
+ version: '5.0'
158
139
  - !ruby/object:Gem::Dependency
159
140
  name: rdoc
160
141
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
142
  requirements:
163
143
  - - ~>
164
144
  - !ruby/object:Gem::Version
@@ -166,7 +146,6 @@ dependencies:
166
146
  type: :development
167
147
  prerelease: false
168
148
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
149
  requirements:
171
150
  - - ~>
172
151
  - !ruby/object:Gem::Version
@@ -174,7 +153,6 @@ dependencies:
174
153
  - !ruby/object:Gem::Dependency
175
154
  name: ronn
176
155
  requirement: !ruby/object:Gem::Requirement
177
- none: false
178
156
  requirements:
179
157
  - - ~>
180
158
  - !ruby/object:Gem::Version
@@ -182,14 +160,13 @@ dependencies:
182
160
  type: :development
183
161
  prerelease: false
184
162
  version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
163
  requirements:
187
164
  - - ~>
188
165
  - !ruby/object:Gem::Version
189
166
  version: 0.7.3
190
167
  description: ! 'Stickler is a tool to organize and maintain an internal gem repository.
191
168
  Primarily, you would want to use Stickler if: 1. You have proprietary gems that
192
- you want to have available via a gem server so you may +gem install+ them. 2.
169
+ you want to have available via a gem server so you may `gem install` them. 2.
193
170
  You would like to have a local mirror of third party gems from either http://rubygems.org
194
171
  or some other gem server. 3. You want both (1) and (2) in the same server.'
195
172
  email: jeremy@copiousfreetime.org
@@ -199,18 +176,21 @@ executables:
199
176
  - stickler-server
200
177
  extensions: []
201
178
  extra_rdoc_files:
179
+ - CONTRIBUTING.md
180
+ - HISTORY.md
202
181
  - Manifest.txt
203
- - README.rdoc
182
+ - README.md
204
183
  files:
205
184
  - CONTRIBUTING.md
206
185
  - HISTORY.md
207
186
  - LICENSE
208
187
  - Manifest.txt
209
- - README.rdoc
188
+ - README.md
210
189
  - Rakefile
211
190
  - bin/stickler
212
191
  - bin/stickler-passenger-config
213
192
  - bin/stickler-server
193
+ - examples/as_middleware.ru
214
194
  - examples/auth_repo.ru
215
195
  - examples/config.ru
216
196
  - examples/fetch-a-gem
@@ -224,12 +204,15 @@ files:
224
204
  - lib/stickler/client/config.rb
225
205
  - lib/stickler/client/config_file.rb
226
206
  - lib/stickler/client/delete.rb
207
+ - lib/stickler/client/latest-version.rb
227
208
  - lib/stickler/client/list.rb
228
209
  - lib/stickler/client/mirror.rb
229
210
  - lib/stickler/client/push.rb
230
211
  - lib/stickler/client/unyank.rb
231
212
  - lib/stickler/client/yank.rb
232
213
  - lib/stickler/error.rb
214
+ - lib/stickler/gem_container.rb
215
+ - lib/stickler/gemfile_lock_parser.rb
233
216
  - lib/stickler/logable.rb
234
217
  - lib/stickler/middleware.rb
235
218
  - lib/stickler/middleware/compression.rb
@@ -239,6 +222,7 @@ files:
239
222
  - lib/stickler/middleware/local.rb
240
223
  - lib/stickler/middleware/mirror.rb
241
224
  - lib/stickler/middleware/not_found.rb
225
+ - lib/stickler/middleware/server.rb
242
226
  - lib/stickler/paths.rb
243
227
  - lib/stickler/repository.rb
244
228
  - lib/stickler/repository/api.rb
@@ -267,73 +251,62 @@ files:
267
251
  - man/stickler-server.1.ronn
268
252
  - man/stickler.1
269
253
  - man/stickler.1.ronn
270
- - spec/data/gemcutter/gems/foo-1.0.0.gem
271
- - spec/data/gems/bar-1.0.0.gem
272
- - spec/data/gems/baz-3.1.4-java.gem
273
- - spec/data/gems/baz-3.1.4.gem
274
- - spec/data/gems/foo-1.0.0.gem
275
- - spec/data/gems/foo-2.0.0a.gem
276
- - spec/index_spec_helpers.rb
277
- - spec/middleware/local_spec.rb
278
- - spec/middleware/not_found_spec.rb
279
- - spec/paths_spec.rb
280
- - spec/repository/api_behavior.rb
281
- - spec/repository/api_spec.rb
282
- - spec/repository/index_spec.rb
283
- - spec/repository/local_spec.rb
284
- - spec/repository/null_spec.rb
285
- - spec/repository/remote_spec.rb
286
- - spec/spec.opts
287
- - spec/spec_helper.rb
288
- - spec/spec_lite_spec.rb
289
254
  - tasks/default.rake
255
+ - tasks/man.rake
290
256
  - tasks/this.rb
257
+ - test/data/Gemfile.lock.example
258
+ - test/data/gemcutter/gems/foo-1.0.0.gem
259
+ - test/data/gems/bar-1.0.0.gem
260
+ - test/data/gems/baz-3.1.4-java.gem
261
+ - test/data/gems/baz-3.1.4.gem
262
+ - test/data/gems/foo-1.0.0.gem
263
+ - test/data/gems/foo-2.0.0a.gem
264
+ - test/data/specifications/bar-1.0.0.gemspec
265
+ - test/data/specifications/baz-3.1.4-java.gemspec
266
+ - test/data/specifications/baz-3.1.4.gemspec
267
+ - test/data/specifications/foo-1.0.0.gemspec
268
+ - test/data/specifications/foo-2.0.0a.gemspec
269
+ - test/index_test_helpers.rb
270
+ - test/middleware/test_local.rb
271
+ - test/middleware/test_not_found.rb
272
+ - test/repository/test_api.rb
273
+ - test/repository/test_api_behavior.rb
274
+ - test/repository/test_index.rb
275
+ - test/repository/test_local.rb
276
+ - test/repository/test_null.rb
277
+ - test/repository/test_remote.rb
278
+ - test/repository/test_remote_authenticated.rb
279
+ - test/stickler_test_server.rb
280
+ - test/test_gemfile_lock_parser.rb
281
+ - test/test_paths.rb
282
+ - test/test_spec_lite.rb
283
+ - test/test_stickler.rb
291
284
  homepage: http://github.com/copiousfreetime/stickler
292
285
  licenses: []
286
+ metadata: {}
293
287
  post_install_message:
294
288
  rdoc_options:
295
289
  - --main
296
- - README.rdoc
290
+ - README.md
297
291
  - --markup
298
292
  - tomdoc
299
293
  require_paths:
300
294
  - lib
301
295
  required_ruby_version: !ruby/object:Gem::Requirement
302
- none: false
303
296
  requirements:
304
297
  - - ! '>='
305
298
  - !ruby/object:Gem::Version
306
299
  version: '0'
307
300
  required_rubygems_version: !ruby/object:Gem::Requirement
308
- none: false
309
301
  requirements:
310
302
  - - ! '>='
311
303
  - !ruby/object:Gem::Version
312
304
  version: '0'
313
305
  requirements: []
314
306
  rubyforge_project:
315
- rubygems_version: 1.8.23
307
+ rubygems_version: 2.1.5
316
308
  signing_key:
317
- specification_version: 3
309
+ specification_version: 4
318
310
  summary: ! 'Stickler is a tool to organize and maintain an internal gem repository.
319
311
  Primarily, you would want to use Stickler if:'
320
- test_files:
321
- - spec/data/gemcutter/gems/foo-1.0.0.gem
322
- - spec/data/gems/bar-1.0.0.gem
323
- - spec/data/gems/baz-3.1.4-java.gem
324
- - spec/data/gems/baz-3.1.4.gem
325
- - spec/data/gems/foo-1.0.0.gem
326
- - spec/data/gems/foo-2.0.0a.gem
327
- - spec/index_spec_helpers.rb
328
- - spec/middleware/local_spec.rb
329
- - spec/middleware/not_found_spec.rb
330
- - spec/paths_spec.rb
331
- - spec/repository/api_behavior.rb
332
- - spec/repository/api_spec.rb
333
- - spec/repository/index_spec.rb
334
- - spec/repository/local_spec.rb
335
- - spec/repository/null_spec.rb
336
- - spec/repository/remote_spec.rb
337
- - spec/spec.opts
338
- - spec/spec_helper.rb
339
- - spec/spec_lite_spec.rb
312
+ test_files: []