puppet-library 0.5.0 → 0.6.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.
- checksums.yaml +5 -13
- data/CHANGELOG.yml +5 -1
- data/README.md +27 -2
- data/Rakefile +29 -17
- data/TODO.yml +13 -10
- data/lib/puppet_library/puppet_library.rb +35 -4
- data/lib/puppet_library/util.rb +20 -0
- data/lib/puppet_library/version.rb +1 -1
- data/spec/puppet_library_spec.rb +25 -1
- data/spec/util_spec.rb +10 -0
- metadata +39 -39
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
NGE3YWE2MWUwZGFiZjBhZDVhZjA2NzZkNDg3YmUyNDk1MThiYTk1Nw==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6f9c3cf2e116027a1009cf54a51a6ba183de0580
|
4
|
+
data.tar.gz: ef8af80971ad97d5aca06fd4cb011c48ed4645bf
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
NjNjNzQ1YWVhMmJkZGNiOGQyNTAxNGJlN2Y0ZDAyM2U3OWEwZjMzNzg5Nzkw
|
11
|
-
NGMzNDc2YmM3YjFmMjQwN2ZlMGEyNTUxMGM3M2IyZGJjOWJkMmM=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
ZTkzNjBmN2UwMjlmZTkwNWQ3OGQ4OTM1MGU5OTQzZmNiYTNkZWZlZmY1ODg4
|
14
|
-
MGQ2ZGExZmIzM2U0ZDEzZGViMmYyMzBkZWVkY2U5ZDEyYmQ0NzE5ZTlmYWQx
|
15
|
-
ZTdkNGZkYTdiNzAwNzg3ODQ5ZDQ2NGViMmYyOTBhYmM0NTE0MzM=
|
6
|
+
metadata.gz: a695a4a49383c10faca50142781097319f9c5f1154f02ddf32b328f1ef6a71f5a7aa203936c96e77026cc9675ab6eb79297784a303a8bd156bfd2e33f0b39533
|
7
|
+
data.tar.gz: 9a4c3cf05cba46d86208be6958d0c657e9858e54bf50e107fa9a7aebcac2eef7df8e0079ff71a5fe565bbd8315c50806828b7f078358b673dba02e9baeb07474
|
data/CHANGELOG.yml
CHANGED
@@ -40,4 +40,8 @@
|
|
40
40
|
- tag: v0.5.0
|
41
41
|
changes:
|
42
42
|
- Added module search field to web UI
|
43
|
-
|
43
|
+
- tag: v0.6.0
|
44
|
+
changes:
|
45
|
+
- Add config API for running with Passenger
|
46
|
+
- Load configuration from a config file
|
47
|
+
- Fixed version number bug that made the app crash with some Rubygems versions
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Puppet Library
|
2
2
|
|
3
|
-
A private
|
3
|
+
A private Puppet Forge. Compatible with [librarian-puppet](http://librarian-puppet.com).
|
4
4
|
|
5
5
|
[](https://travis-ci.org/drrb/puppet-library)
|
6
6
|
[](https://coveralls.io/r/drrb/puppet-library)
|
@@ -95,11 +95,35 @@ Puppet Library is tested against Ruby versions:
|
|
95
95
|
- 2.0.0
|
96
96
|
- 2.1.0
|
97
97
|
|
98
|
-
##
|
98
|
+
## Config file (EXPERIMENTAL)
|
99
|
+
|
100
|
+
Instead of specifying command-line options, you can configure Puppet Library with a configuration file.
|
101
|
+
To use a configuration file, point to it on the command line:
|
102
|
+
|
103
|
+
```sh
|
104
|
+
puppet-library --config-file my-puppet-library-config.yml
|
105
|
+
```
|
106
|
+
|
107
|
+
A configuration file looks like this:
|
108
|
+
|
109
|
+
```yaml
|
110
|
+
port: 4567
|
111
|
+
server: thin
|
112
|
+
daemonize: true
|
113
|
+
pidfile: /var/run/puppetlibrary.pid
|
114
|
+
forges:
|
115
|
+
- Directory: /var/lib/modules
|
116
|
+
- Proxy: http://forge.puppetlabs.com
|
117
|
+
```
|
118
|
+
|
119
|
+
## Running with Phusion Passenger (EXPERIMENTAL)
|
99
120
|
|
100
121
|
To run Puppet Library with [Phusion Passenger](https://www.phusionpassenger.com):
|
101
122
|
|
102
123
|
```sh
|
124
|
+
# Install Puppet Library
|
125
|
+
sudo gem install puppet-library
|
126
|
+
|
103
127
|
# Create a Passenger-compatible directory structure
|
104
128
|
mkdir -p /webapps/puppet-library/{public,tmp}
|
105
129
|
|
@@ -108,6 +132,7 @@ cat > /webapps/puppet-library/config.ru <<EOF
|
|
108
132
|
require "rubygems"
|
109
133
|
require "puppet_library"
|
110
134
|
|
135
|
+
# NB: this config API is not yet stable, and may change without notice
|
111
136
|
server = PuppetLibrary::Server.set_up do |library|
|
112
137
|
# Serve our private modules
|
113
138
|
library.forge PuppetLibrary::Forge::Directory.new("/var/lib/modules")
|
data/Rakefile
CHANGED
@@ -22,11 +22,11 @@ require 'json'
|
|
22
22
|
require 'yaml'
|
23
23
|
require 'net/http'
|
24
24
|
|
25
|
-
|
25
|
+
SUPPORTED_RUBY_VERSIONS = %w[1.8 1.9 2.0 2.1 system]
|
26
26
|
# The integration test doesn't work on Ruby 1.8, and Puppet doesn't work on 2.1
|
27
|
-
|
27
|
+
INTEGRATION_TEST_INCOMPATIBLE_RUBY_VERSIONS = %w[1.8 2.1]
|
28
28
|
# Capybara needs Nokogiri, which needs 1.9+
|
29
|
-
|
29
|
+
ACCEPTANCE_TEST_INCOMPATIBLE_RUBY_VERSIONS = %w[1.8 system]
|
30
30
|
|
31
31
|
class String
|
32
32
|
def green
|
@@ -43,13 +43,13 @@ class String
|
|
43
43
|
end
|
44
44
|
|
45
45
|
def ruby_version_supports_integration_test?(version = RUBY_VERSION)
|
46
|
-
!
|
46
|
+
! INTEGRATION_TEST_INCOMPATIBLE_RUBY_VERSIONS.find do |bad_version|
|
47
47
|
version.start_with? bad_version
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
51
51
|
def ruby_version_supports_acceptance_tests?(version = RUBY_VERSION)
|
52
|
-
!
|
52
|
+
! ACCEPTANCE_TEST_INCOMPATIBLE_RUBY_VERSIONS.find do |bad_version|
|
53
53
|
version.start_with? bad_version
|
54
54
|
end
|
55
55
|
end
|
@@ -90,7 +90,7 @@ task :default => [:test, 'coveralls:push']
|
|
90
90
|
|
91
91
|
desc "Check it works on all local rubies"
|
92
92
|
task :verify do
|
93
|
-
versions =
|
93
|
+
versions = SUPPORTED_RUBY_VERSIONS
|
94
94
|
puts "\nRunning Specs".green
|
95
95
|
spec_results = versions.map do |ruby_version|
|
96
96
|
puts "\n- Ruby #{ruby_version}".green
|
@@ -115,7 +115,7 @@ task :verify do
|
|
115
115
|
puts "| Version | Specs | ITs | ATs |"
|
116
116
|
puts "+---------+-------+-------+-------+"
|
117
117
|
versions.zip(results).each do |(version, (spec_result, integration_test_result, acceptance_test_result))|
|
118
|
-
v = version
|
118
|
+
v = version.ljust(7)
|
119
119
|
s = spec_result ? "pass".green : "fail".red
|
120
120
|
if ruby_version_supports_integration_test? version
|
121
121
|
i = integration_test_result ? "pass".green : "fail".red
|
@@ -128,7 +128,7 @@ task :verify do
|
|
128
128
|
else
|
129
129
|
a = "skip".yellow
|
130
130
|
end
|
131
|
-
puts "| #{v}
|
131
|
+
puts "| #{v} | #{s} | #{i} | #{a} |"
|
132
132
|
end
|
133
133
|
puts "+---------+-------+-------+-------+"
|
134
134
|
|
@@ -169,22 +169,25 @@ task "push-release" => ["check-license", :verify] do
|
|
169
169
|
puts "Releasing #{PuppetLibrary::VERSION}"
|
170
170
|
Rake::Task[:release].invoke
|
171
171
|
|
172
|
-
|
173
|
-
Rake::Task["register-release[#{PuppetLibrary::VERSION}]"].invoke
|
172
|
+
upload_release_notes(PuppetLibrary::VERSION)
|
174
173
|
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
174
|
+
increment_version
|
175
|
+
end
|
176
|
+
|
177
|
+
desc "Increment version number and commit it"
|
178
|
+
task "increment-version" do
|
179
|
+
increment_version
|
181
180
|
end
|
182
181
|
|
183
182
|
desc "Register release with Github"
|
184
183
|
task "register-release", [:version] do |task, args|
|
184
|
+
upload_release_notes(args[:version])
|
185
|
+
end
|
186
|
+
|
187
|
+
def upload_release_notes(version)
|
188
|
+
puts "Registering release notes for #{PuppetLibrary::VERSION}"
|
185
189
|
github = Github.new
|
186
190
|
|
187
|
-
version = args[:version]
|
188
191
|
unless version =~ /\d+\.\d+\.\d+/
|
189
192
|
raise "Bad version: '#{version}'"
|
190
193
|
end
|
@@ -216,6 +219,15 @@ task "register-release", [:version] do |task, args|
|
|
216
219
|
puts "Done"
|
217
220
|
end
|
218
221
|
|
222
|
+
def increment_version
|
223
|
+
major, minor, patch = PuppetLibrary::VERSION.split(".").map {|n| n.to_i}
|
224
|
+
new_version = "#{major}.#{minor + 1}.0"
|
225
|
+
puts "Updating version number to #{new_version}"
|
226
|
+
system(%q[sed -i '' -E 's/VERSION = ".*"/VERSION = "] + new_version + %q["/' lib/puppet_library/version.rb]) or fail "Couldn't update version"
|
227
|
+
PuppetLibrary::VERSION.replace new_version
|
228
|
+
system "git commit lib/puppet_library/version.rb --message='[release] Incremented version number'" or fail "Couldn't commit new version number"
|
229
|
+
end
|
230
|
+
|
219
231
|
class Github
|
220
232
|
def initialize
|
221
233
|
@base_url = "https://api.github.com"
|
data/TODO.yml
CHANGED
@@ -1,17 +1,20 @@
|
|
1
|
-
bugs:
|
2
|
-
- Using captialised Author name to create full module name
|
3
1
|
features:
|
4
|
-
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
2
|
+
- disk cache:
|
3
|
+
- Allow proxy to cache downloaded modules/API calls on disk
|
4
|
+
- |
|
5
|
+
Accept --cache-dir option to specify a parent cache directory (people
|
6
|
+
will need to embed the server or use a config file for more control)
|
9
7
|
- Validate repo dirs (make sure they're readable)
|
10
8
|
- Allow failover between module repositories
|
11
|
-
- Web UI: asynchronous
|
9
|
+
- Web UI: asynchronous (index page loads too slowly)
|
10
|
+
- Look in /etc/puppet-library.yml for config by default
|
11
|
+
- Named subforges:
|
12
|
+
- per-subforge queries
|
13
|
+
- upload modules (web form and API)
|
14
|
+
- browse proxy cache
|
15
|
+
- clear proxy cache (web form and API)
|
16
|
+
- delete modules from disk (web form)
|
12
17
|
- Authentication
|
13
18
|
|
14
19
|
dubious_features:
|
15
20
|
- Make proxy cache TTL configurable
|
16
|
-
- REST API to clear proxy cache
|
17
|
-
- REST API to upload modules
|
@@ -16,6 +16,7 @@
|
|
16
16
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
17
17
|
|
18
18
|
require 'rack'
|
19
|
+
require 'yaml'
|
19
20
|
require 'puppet_library/forge/directory'
|
20
21
|
require 'puppet_library/forge/multi'
|
21
22
|
require 'puppet_library/version'
|
@@ -42,6 +43,10 @@ module PuppetLibrary
|
|
42
43
|
option_parser = OptionParser.new do |opts|
|
43
44
|
opts.banner = "Usage: #{File.basename $0} [options]"
|
44
45
|
|
46
|
+
opts.on("-c", "--config-file FILE", "Config file to read config values from") do |config_file|
|
47
|
+
options[:config_file] = config_file
|
48
|
+
end
|
49
|
+
|
45
50
|
opts.on("-p", "--port PORT", "Port to listen on (defaults to whatever Rack wants to use)") do |port|
|
46
51
|
options[:port] = port
|
47
52
|
end
|
@@ -54,12 +59,10 @@ module PuppetLibrary
|
|
54
59
|
options[:hostname] = hostname
|
55
60
|
end
|
56
61
|
|
57
|
-
options[:daemonize] = false
|
58
62
|
opts.on("--daemonize", "Run the server in the background") do
|
59
63
|
options[:daemonize] = true
|
60
64
|
end
|
61
65
|
|
62
|
-
options[:pidfile] = nil
|
63
66
|
opts.on("--pidfile FILE", "Write a pidfile to this location after starting (implies --daemonize)") do |pidfile|
|
64
67
|
options[:daemonize] = true
|
65
68
|
options[:pidfile] = File.expand_path pidfile
|
@@ -83,10 +86,12 @@ module PuppetLibrary
|
|
83
86
|
end
|
84
87
|
|
85
88
|
def build_server(options)
|
86
|
-
if options[:
|
87
|
-
options
|
89
|
+
if options[:config_file]
|
90
|
+
load_config(options)
|
88
91
|
end
|
89
92
|
|
93
|
+
load_defaults(options)
|
94
|
+
|
90
95
|
Server.set_up do |server|
|
91
96
|
options[:forges].each do |(forge_type, config)|
|
92
97
|
subforge = forge_type.new(config)
|
@@ -120,6 +125,32 @@ module PuppetLibrary
|
|
120
125
|
:pid => options[:pidfile]
|
121
126
|
)
|
122
127
|
end
|
128
|
+
|
129
|
+
def load_config(options)
|
130
|
+
config = read_yaml_file(options[:config_file])
|
131
|
+
options[:daemonize] = config["daemonize"]
|
132
|
+
options[:port] = config["port"]
|
133
|
+
options[:pidfile] = config["pidfile"]
|
134
|
+
options[:server] = config["server"]
|
135
|
+
|
136
|
+
forges_config = config["forges"] || []
|
137
|
+
configured_forges = forges_config.map do |forge|
|
138
|
+
[ Forge.const_get(forge.keys.first), forge.values.first ]
|
139
|
+
end
|
140
|
+
options[:forges] = configured_forges + options[:forges]
|
141
|
+
end
|
142
|
+
|
143
|
+
def load_defaults(options)
|
144
|
+
options[:daemonize] ||= false
|
145
|
+
options[:pidfile] ||= nil
|
146
|
+
if options[:forges].empty?
|
147
|
+
options[:forges] << [ Forge::Proxy, "http://forge.puppetlabs.com" ]
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
def read_yaml_file(path)
|
152
|
+
YAML.load_file(File.expand_path(path)) || {}
|
153
|
+
end
|
123
154
|
end
|
124
155
|
|
125
156
|
class ExpectedError < StandardError
|
data/lib/puppet_library/util.rb
CHANGED
@@ -17,6 +17,22 @@
|
|
17
17
|
|
18
18
|
require 'rubygems/package'
|
19
19
|
|
20
|
+
module Gem
|
21
|
+
def Version.new(version)
|
22
|
+
begin
|
23
|
+
super(version.to_s.gsub("-",".pre."))
|
24
|
+
rescue ArgumentError => e
|
25
|
+
# If it starts with numbers, use those
|
26
|
+
if version =~ /^\d+(\.\d+)*/
|
27
|
+
super(version[/^\d+(\.\d+)*/])
|
28
|
+
# Somebody's really made a mess of this version number
|
29
|
+
else
|
30
|
+
super("0")
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
20
36
|
class Array
|
21
37
|
# Like 'uniq' with a block, but also works on Ruby < 1.9
|
22
38
|
def unique_by
|
@@ -31,6 +47,10 @@ class Array
|
|
31
47
|
end
|
32
48
|
end
|
33
49
|
|
50
|
+
def version_sort
|
51
|
+
version_sort_by { |e| e }
|
52
|
+
end
|
53
|
+
|
34
54
|
def version_sort_by
|
35
55
|
sort_by do |element|
|
36
56
|
version = yield(element)
|
data/spec/puppet_library_spec.rb
CHANGED
@@ -29,6 +29,7 @@ module PuppetLibrary
|
|
29
29
|
allow(Server).to receive(:new).with(forge).and_return(server)
|
30
30
|
return server
|
31
31
|
end
|
32
|
+
let(:config_file) { Tempfile.new("puppet-library.yml") }
|
32
33
|
let(:log) { double('log').as_null_object }
|
33
34
|
let(:library) { PuppetLibrary.new(log) }
|
34
35
|
let(:default_options) {{ :app => server, :Host => nil, :Port => nil, :server => nil, :daemonize => false, :pid => nil }}
|
@@ -105,13 +106,36 @@ module PuppetLibrary
|
|
105
106
|
end
|
106
107
|
end
|
107
108
|
|
109
|
+
context "when using --config-file option" do
|
110
|
+
it "uses config values from config file as config defaults" do
|
111
|
+
config = {
|
112
|
+
"port" => 4567,
|
113
|
+
"daemonize" => true,
|
114
|
+
"server" => "thin",
|
115
|
+
"pidfile" => "/var/run/puppet-library.pid",
|
116
|
+
"forges" => [
|
117
|
+
{ "Directory" => "/var/lib/modules" },
|
118
|
+
{ "Proxy" => "http://forge.puppetlabs.com" }
|
119
|
+
]
|
120
|
+
}
|
121
|
+
File.open(config_file.path, "w") { |f| f << config.to_yaml }
|
122
|
+
expect(Forge::Directory).to receive(:new).with("/var/lib/modules")
|
123
|
+
expect(Forge::Proxy).to receive(:new).with("http://forge.puppetlabs.com")
|
124
|
+
expect(forge).to receive(:add_forge).twice
|
125
|
+
expect(Rack::Server).to receive(:start).with(default_options_with(:Port => 4567, :daemonize => true, :pid => "/var/run/puppet-library.pid", :server => "thin"))
|
126
|
+
|
127
|
+
library.go(["--config-file", config_file.path])
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
108
131
|
context "when using --proxy option" do
|
109
132
|
it "adds a proxy module forge for each option specified" do
|
110
133
|
proxy1 = double('proxy1')
|
111
134
|
proxy2 = double('proxy2')
|
112
135
|
expect(Forge::Proxy).to receive(:new).with("http://forge1.example.com").and_return(proxy1)
|
113
136
|
expect(Forge::Proxy).to receive(:new).with("http://forge2.example.com").and_return(proxy2)
|
114
|
-
expect(forge).to receive(:add_forge).
|
137
|
+
expect(forge).to receive(:add_forge).with(proxy1)
|
138
|
+
expect(forge).to receive(:add_forge).with(proxy2)
|
115
139
|
expect(Rack::Server).to receive(:start).with(default_options)
|
116
140
|
|
117
141
|
library.go(["--proxy", "http://forge1.example.com", "--proxy", "http://forge2.example.com"])
|
data/spec/util_spec.rb
CHANGED
@@ -29,5 +29,15 @@ describe 'util' do
|
|
29
29
|
expect(family.unique_by {|p| p["name"]}).to eq [son, mom]
|
30
30
|
end
|
31
31
|
end
|
32
|
+
|
33
|
+
describe "#version_sort" do
|
34
|
+
it "sorts according to version numbers" do
|
35
|
+
expect(["2.0.0", "1.10.0", "1.2.0"].version_sort).to eq ["1.2.0", "1.10.0", "2.0.0"]
|
36
|
+
end
|
37
|
+
|
38
|
+
it "copes with odd versions" do
|
39
|
+
expect(["1.10.0-badprerelease", "1.3", "1.10.0", "xxx", "1.10.0.rc1", "1.2.0"].version_sort).to eq ["xxx", "1.2.0", "1.3", "1.10.0-badprerelease", "1.10.0.rc1", "1.10.0"]
|
40
|
+
end
|
41
|
+
end
|
32
42
|
end
|
33
43
|
end
|
metadata
CHANGED
@@ -1,55 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet-library
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- drrb
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sinatra
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: json
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: haml
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
@@ -70,42 +70,42 @@ dependencies:
|
|
70
70
|
name: coveralls
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - '>='
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - '>='
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: gitsu
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - '>='
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - '>='
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: librarian-puppet
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - '>='
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - '>='
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
@@ -126,14 +126,14 @@ dependencies:
|
|
126
126
|
name: pry
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
|
-
- -
|
129
|
+
- - '>='
|
130
130
|
- !ruby/object:Gem::Version
|
131
131
|
version: '0'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
|
-
- -
|
136
|
+
- - '>='
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
139
|
- !ruby/object:Gem::Dependency
|
@@ -154,140 +154,140 @@ dependencies:
|
|
154
154
|
name: rack-test
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
|
-
- -
|
157
|
+
- - '>='
|
158
158
|
- !ruby/object:Gem::Version
|
159
159
|
version: '0'
|
160
160
|
type: :development
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
|
-
- -
|
164
|
+
- - '>='
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: '0'
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
name: rake
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
|
-
- -
|
171
|
+
- - '>='
|
172
172
|
- !ruby/object:Gem::Version
|
173
173
|
version: '0'
|
174
174
|
type: :development
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
|
-
- -
|
178
|
+
- - '>='
|
179
179
|
- !ruby/object:Gem::Version
|
180
180
|
version: '0'
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: rspec
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
184
184
|
requirements:
|
185
|
-
- -
|
185
|
+
- - '>='
|
186
186
|
- !ruby/object:Gem::Version
|
187
187
|
version: '0'
|
188
188
|
type: :development
|
189
189
|
prerelease: false
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
191
191
|
requirements:
|
192
|
-
- -
|
192
|
+
- - '>='
|
193
193
|
- !ruby/object:Gem::Version
|
194
194
|
version: '0'
|
195
195
|
- !ruby/object:Gem::Dependency
|
196
196
|
name: simplecov
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
198
198
|
requirements:
|
199
|
-
- -
|
199
|
+
- - '>='
|
200
200
|
- !ruby/object:Gem::Version
|
201
201
|
version: '0'
|
202
202
|
type: :development
|
203
203
|
prerelease: false
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
205
205
|
requirements:
|
206
|
-
- -
|
206
|
+
- - '>='
|
207
207
|
- !ruby/object:Gem::Version
|
208
208
|
version: '0'
|
209
209
|
- !ruby/object:Gem::Dependency
|
210
210
|
name: guard
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|
212
212
|
requirements:
|
213
|
-
- -
|
213
|
+
- - '>='
|
214
214
|
- !ruby/object:Gem::Version
|
215
215
|
version: '0'
|
216
216
|
type: :development
|
217
217
|
prerelease: false
|
218
218
|
version_requirements: !ruby/object:Gem::Requirement
|
219
219
|
requirements:
|
220
|
-
- -
|
220
|
+
- - '>='
|
221
221
|
- !ruby/object:Gem::Version
|
222
222
|
version: '0'
|
223
223
|
- !ruby/object:Gem::Dependency
|
224
224
|
name: guard-rspec
|
225
225
|
requirement: !ruby/object:Gem::Requirement
|
226
226
|
requirements:
|
227
|
-
- -
|
227
|
+
- - '>='
|
228
228
|
- !ruby/object:Gem::Version
|
229
229
|
version: '0'
|
230
230
|
type: :development
|
231
231
|
prerelease: false
|
232
232
|
version_requirements: !ruby/object:Gem::Requirement
|
233
233
|
requirements:
|
234
|
-
- -
|
234
|
+
- - '>='
|
235
235
|
- !ruby/object:Gem::Version
|
236
236
|
version: '0'
|
237
237
|
- !ruby/object:Gem::Dependency
|
238
238
|
name: terminal-notifier-guard
|
239
239
|
requirement: !ruby/object:Gem::Requirement
|
240
240
|
requirements:
|
241
|
-
- -
|
241
|
+
- - '>='
|
242
242
|
- !ruby/object:Gem::Version
|
243
243
|
version: '0'
|
244
244
|
type: :development
|
245
245
|
prerelease: false
|
246
246
|
version_requirements: !ruby/object:Gem::Requirement
|
247
247
|
requirements:
|
248
|
-
- -
|
248
|
+
- - '>='
|
249
249
|
- !ruby/object:Gem::Version
|
250
250
|
version: '0'
|
251
251
|
- !ruby/object:Gem::Dependency
|
252
252
|
name: capybara
|
253
253
|
requirement: !ruby/object:Gem::Requirement
|
254
254
|
requirements:
|
255
|
-
- -
|
255
|
+
- - '>='
|
256
256
|
- !ruby/object:Gem::Version
|
257
257
|
version: '0'
|
258
258
|
type: :development
|
259
259
|
prerelease: false
|
260
260
|
version_requirements: !ruby/object:Gem::Requirement
|
261
261
|
requirements:
|
262
|
-
- -
|
262
|
+
- - '>='
|
263
263
|
- !ruby/object:Gem::Version
|
264
264
|
version: '0'
|
265
265
|
- !ruby/object:Gem::Dependency
|
266
266
|
name: nokogiri
|
267
267
|
requirement: !ruby/object:Gem::Requirement
|
268
268
|
requirements:
|
269
|
-
- -
|
269
|
+
- - '>='
|
270
270
|
- !ruby/object:Gem::Version
|
271
271
|
version: '0'
|
272
272
|
type: :development
|
273
273
|
prerelease: false
|
274
274
|
version_requirements: !ruby/object:Gem::Requirement
|
275
275
|
requirements:
|
276
|
-
- -
|
276
|
+
- - '>='
|
277
277
|
- !ruby/object:Gem::Version
|
278
278
|
version: '0'
|
279
279
|
- !ruby/object:Gem::Dependency
|
280
280
|
name: cucumber
|
281
281
|
requirement: !ruby/object:Gem::Requirement
|
282
282
|
requirements:
|
283
|
-
- -
|
283
|
+
- - '>='
|
284
284
|
- !ruby/object:Gem::Version
|
285
285
|
version: '0'
|
286
286
|
type: :development
|
287
287
|
prerelease: false
|
288
288
|
version_requirements: !ruby/object:Gem::Requirement
|
289
289
|
requirements:
|
290
|
-
- -
|
290
|
+
- - '>='
|
291
291
|
- !ruby/object:Gem::Version
|
292
292
|
version: '0'
|
293
293
|
description: A Puppet module server
|
@@ -362,17 +362,17 @@ require_paths:
|
|
362
362
|
- lib
|
363
363
|
required_ruby_version: !ruby/object:Gem::Requirement
|
364
364
|
requirements:
|
365
|
-
- -
|
365
|
+
- - '>='
|
366
366
|
- !ruby/object:Gem::Version
|
367
367
|
version: '0'
|
368
368
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
369
369
|
requirements:
|
370
|
-
- -
|
370
|
+
- - '>='
|
371
371
|
- !ruby/object:Gem::Version
|
372
372
|
version: '0'
|
373
373
|
requirements: []
|
374
374
|
rubyforge_project:
|
375
|
-
rubygems_version: 2.
|
375
|
+
rubygems_version: 2.0.3
|
376
376
|
signing_key:
|
377
377
|
specification_version: 4
|
378
378
|
summary: Puppet Library is a private Puppet module server that's compatible with librarian-puppet.
|