ridley 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -45,5 +45,5 @@ group :test do
45
45
  gem 'fuubar'
46
46
  gem 'json_spec'
47
47
  gem 'webmock'
48
- gem 'chef-zero', '~> 1.1.3'
48
+ gem 'chef-zero', '~> 1.5.0'
49
49
  end
data/Thorfile CHANGED
@@ -3,10 +3,12 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  require 'bundler'
5
5
  require 'bundler/setup'
6
-
6
+ require 'buff/ruby_engine'
7
7
  require 'ridley'
8
8
 
9
9
  class Default < Thor
10
+ extend Buff::RubyEngine
11
+
10
12
  unless jruby?
11
13
  require 'thor/rake_compat'
12
14
 
@@ -107,6 +107,7 @@ endlocal
107
107
  <%= first_boot %>
108
108
  )
109
109
 
110
- <%= set_path %>
110
+ SET "PATH=%PATH%;<%= env_path %>"
111
+ SETX PATH "%PATH;<%= env_path %>"
111
112
 
112
113
  <%= chef_run %>
data/lib/ridley.rb CHANGED
@@ -1,8 +1,6 @@
1
- require 'active_support/inflector'
2
1
  require 'addressable/uri'
3
2
  require 'celluloid'
4
3
  require 'celluloid/io'
5
- require 'chozo'
6
4
  require 'faraday'
7
5
  require 'forwardable'
8
6
  require 'hashie'
@@ -98,8 +98,8 @@ module Ridley
98
98
  end
99
99
 
100
100
  # @return [String]
101
- def set_path
102
- "SET \"PATH=%PATH%;C:\\ruby\\bin;C:\\opscode\\chef\\bin;C:\\opscode\\chef\\embedded\\bin\"\n"
101
+ def env_path
102
+ "C:\\opscode\\chef\\bin;C:\\opscode\\chef\\embedded\\bin"
103
103
  end
104
104
 
105
105
  # @return [String]
@@ -187,9 +187,9 @@ module Ridley::Chef
187
187
  result[:name] = name
188
188
  result[:cookbook_name] = cookbook_name
189
189
  result[:version] = version
190
- result[:metadata] = metadata
190
+ result[:metadata] = metadata.to_hash
191
191
  result[:frozen?] = frozen
192
- result.to_hash
192
+ result
193
193
  end
194
194
 
195
195
  def to_json(*args)
@@ -55,8 +55,8 @@ module Ridley::Chef
55
55
  :replacing, :attributes, :groupings, :recipes, :version
56
56
  ]
57
57
 
58
- include Chozo::Mixin::ParamsValidate
59
- include Chozo::Mixin::FromFile
58
+ include Ridley::Mixin::ParamsValidate
59
+ include Ridley::Mixin::FromFile
60
60
 
61
61
  attr_reader :cookbook
62
62
  attr_reader :platforms
@@ -1,3 +1,5 @@
1
+ require 'varia_model'
2
+
1
3
  module Ridley
2
4
  class ChefObject
3
5
  class << self
@@ -6,7 +8,7 @@ module Ridley
6
8
  @chef_id
7
9
  end
8
10
 
9
- # @param [String, Symbol] identifier
11
+ # @param [#to_sym] identifier
10
12
  #
11
13
  # @return [String]
12
14
  def set_chef_id(identifier)
@@ -18,7 +20,7 @@ module Ridley
18
20
  @chef_type ||= self.class.name.underscore
19
21
  end
20
22
 
21
- # @param [String, Symbol] type
23
+ # @param [#to_s] type
22
24
  #
23
25
  # @return [String]
24
26
  def set_chef_type(type)
@@ -40,7 +42,7 @@ module Ridley
40
42
  end
41
43
  end
42
44
 
43
- include Chozo::VariaModel
45
+ include VariaModel
44
46
  include Comparable
45
47
 
46
48
  # @param [Ridley::Resource] resource
@@ -98,7 +98,7 @@ module Ridley
98
98
  #
99
99
  # @param [#to_sym] filetype
100
100
  # the type of file to download. These are broken up into the following types in Chef:
101
- # - attribute (unsupported until resolved https://github.com/reset/chozo/issues/17)
101
+ # - attribute
102
102
  # - definition
103
103
  # - file
104
104
  # - library
@@ -31,9 +31,9 @@ module Ridley
31
31
  # @param [String] key
32
32
  # @param [Object] value
33
33
  #
34
- # @return [HashWithIndifferentAccess]
34
+ # @return [Hashie::Mash]
35
35
  def set_default_attribute(key, value)
36
- attr_hash = HashWithIndifferentAccess.from_dotted_path(key, value)
36
+ attr_hash = Hashie::Mash.from_dotted_path(key, value)
37
37
  self.default_attributes = self.default_attributes.deep_merge(attr_hash)
38
38
  end
39
39
 
@@ -49,9 +49,9 @@ module Ridley
49
49
  # @param [String] key
50
50
  # @param [Object] value
51
51
  #
52
- # @return [HashWithIndifferentAccess]
52
+ # @return [Hashie::Mash]
53
53
  def set_override_attribute(key, value)
54
- attr_hash = HashWithIndifferentAccess.from_dotted_path(key, value)
54
+ attr_hash = Hashie::Mash.from_dotted_path(key, value)
55
55
  self.override_attributes = self.override_attributes.deep_merge(attr_hash)
56
56
  end
57
57
  end
@@ -34,9 +34,9 @@ module Ridley
34
34
  # @param [String] key
35
35
  # @param [Object] value
36
36
  #
37
- # @return [HashWithIndifferentAccess]
37
+ # @return [Hashie::Mash]
38
38
  def set_override_attribute(key, value)
39
- attr_hash = HashWithIndifferentAccess.from_dotted_path(key, value)
39
+ attr_hash = Hashie::Mash.from_dotted_path(key, value)
40
40
  self.override_attributes = self.override_attributes.deep_merge(attr_hash)
41
41
  end
42
42
 
@@ -52,9 +52,9 @@ module Ridley
52
52
  # @param [String] key
53
53
  # @param [Object] value
54
54
  #
55
- # @return [HashWithIndifferentAccess]
55
+ # @return [Hashie::Mash]
56
56
  def set_default_attribute(key, value)
57
- attr_hash = HashWithIndifferentAccess.from_dotted_path(key, value)
57
+ attr_hash = Hashie::Mash.from_dotted_path(key, value)
58
58
  self.default_attributes = self.default_attributes.deep_merge(attr_hash)
59
59
  end
60
60
  end
@@ -1,4 +1,3 @@
1
- require 'active_support/core_ext/kernel/reporting'
2
1
  # Silencing warnings because not all versions of GSSAPI support all of the GSSAPI methods
3
2
  # the gssapi gem attempts to attach to and these warnings are dumped to STDERR.
4
3
  silence_warnings do
@@ -0,0 +1,53 @@
1
+ module Ridley::Mixin
2
+ module FromFile
3
+ module ClassMethods
4
+ def from_file(filename, *args)
5
+ new(*args).from_file(filename)
6
+ end
7
+
8
+ def class_from_file(filename, *args)
9
+ new(*args).class_from_file(filename)
10
+ end
11
+ end
12
+
13
+ class << self
14
+ def included(base)
15
+ base.extend(ClassMethods)
16
+ end
17
+ end
18
+
19
+ # Loads the contents of a file within the context of the current object
20
+ #
21
+ # @param [#to_s] filename
22
+ # path to the file to load
23
+ #
24
+ # @raise [IOError] if the file does not exist or cannot be read
25
+ def from_file(filename)
26
+ filename = filename.to_s
27
+
28
+ if File.exists?(filename) && File.readable?(filename)
29
+ self.instance_eval(IO.read(filename), filename, 1)
30
+ self
31
+ else
32
+ raise IOError, "Could not open or read: '#{filename}'"
33
+ end
34
+ end
35
+
36
+ # Loads the contents of a file within the context of the current object's class
37
+ #
38
+ # @param [#to_s] filename
39
+ # path to the file to load
40
+ #
41
+ # @raise [IOError] if the file does not exist or cannot be read
42
+ def class_from_file(filename)
43
+ filename = filename.to_s
44
+
45
+ if File.exists?(filename) && File.readable?(filename)
46
+ self.class_eval(IO.read(filename), filename, 1)
47
+ self
48
+ else
49
+ raise IOError, "Could not open or read: '#{filename}'"
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,218 @@
1
+ module Ridley::Mixin
2
+ # Borrowed and modified from: {https://raw.github.com/opscode/chef/11.4.0/lib/chef/mixin/params_validate.rb}
3
+ #
4
+ # Copyright:: Copyright (c) 2008 Opscode, Inc.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ module ParamsValidate
18
+ # Takes a hash of options, along with a map to validate them. Returns the original
19
+ # options hash, plus any changes that might have been made (through things like setting
20
+ # default values in the validation map)
21
+ #
22
+ # For example:
23
+ #
24
+ # validate({ :one => "neat" }, { :one => { :kind_of => String }})
25
+ #
26
+ # Would raise an exception if the value of :one above is not a kind_of? string. Valid
27
+ # map options are:
28
+ #
29
+ # :default:: Sets the default value for this parameter.
30
+ # :callbacks:: Takes a hash of Procs, which should return true if the argument is valid.
31
+ # The key will be inserted into the error message if the Proc does not return true:
32
+ # "Option #{key}'s value #{value} #{message}!"
33
+ # :kind_of:: Ensure that the value is a kind_of?(Whatever). If passed an array, it will ensure
34
+ # that the value is one of those types.
35
+ # :respond_to:: Ensure that the value has a given method. Takes one method name or an array of
36
+ # method names.
37
+ # :required:: Raise an exception if this parameter is missing. Valid values are true or false,
38
+ # by default, options are not required.
39
+ # :regex:: Match the value of the paramater against a regular expression.
40
+ # :equal_to:: Match the value of the paramater with ==. An array means it can be equal to any
41
+ # of the values.
42
+ def validate(opts, map)
43
+ #--
44
+ # validate works by taking the keys in the validation map, assuming it's a hash, and
45
+ # looking for _pv_:symbol as methods. Assuming it find them, it calls the right
46
+ # one.
47
+ #++
48
+ raise ArgumentError, "Options must be a hash" unless opts.kind_of?(Hash)
49
+ raise ArgumentError, "Validation Map must be a hash" unless map.kind_of?(Hash)
50
+
51
+ map.each do |key, validation|
52
+ unless key.kind_of?(Symbol) || key.kind_of?(String)
53
+ raise ArgumentError, "Validation map keys must be symbols or strings!"
54
+ end
55
+ case validation
56
+ when true
57
+ _pv_required(opts, key)
58
+ when false
59
+ true
60
+ when Hash
61
+ validation.each do |check, carg|
62
+ check_method = "_pv_#{check.to_s}"
63
+ if self.respond_to?(check_method, true)
64
+ self.send(check_method, opts, key, carg)
65
+ else
66
+ raise ArgumentError, "Validation map has unknown check: #{check}"
67
+ end
68
+ end
69
+ end
70
+ end
71
+ opts
72
+ end
73
+
74
+ def set_or_return(symbol, arg, validation)
75
+ iv_symbol = "@#{symbol.to_s}".to_sym
76
+ map = {
77
+ symbol => validation
78
+ }
79
+
80
+ if arg == nil && self.instance_variable_defined?(iv_symbol) == true
81
+ self.instance_variable_get(iv_symbol)
82
+ else
83
+ opts = validate({ symbol => arg }, { symbol => validation })
84
+ self.instance_variable_set(iv_symbol, opts[symbol])
85
+ end
86
+ end
87
+
88
+ private
89
+
90
+ # Return the value of a parameter, or nil if it doesn't exist.
91
+ def _pv_opts_lookup(opts, key)
92
+ if opts.has_key?(key.to_s)
93
+ opts[key.to_s]
94
+ elsif opts.has_key?(key.to_sym)
95
+ opts[key.to_sym]
96
+ else
97
+ nil
98
+ end
99
+ end
100
+
101
+ # Raise an exception if the parameter is not found.
102
+ def _pv_required(opts, key, is_required=true)
103
+ if is_required
104
+ if (opts.has_key?(key.to_s) && !opts[key.to_s].nil?) ||
105
+ (opts.has_key?(key.to_sym) && !opts[key.to_sym].nil?)
106
+ true
107
+ else
108
+ raise ValidationFailed, "Required argument #{key} is missing!"
109
+ end
110
+ end
111
+ end
112
+
113
+ def _pv_equal_to(opts, key, to_be)
114
+ value = _pv_opts_lookup(opts, key)
115
+ unless value.nil?
116
+ passes = false
117
+ Array(to_be).each do |tb|
118
+ passes = true if value == tb
119
+ end
120
+ unless passes
121
+ raise ValidationFailed, "Option #{key} must be equal to one of: #{to_be.join(", ")}! You passed #{value.inspect}."
122
+ end
123
+ end
124
+ end
125
+
126
+ # Raise an exception if the parameter is not a kind_of?(to_be)
127
+ def _pv_kind_of(opts, key, to_be)
128
+ value = _pv_opts_lookup(opts, key)
129
+ unless value.nil?
130
+ passes = false
131
+ Array(to_be).each do |tb|
132
+ passes = true if value.kind_of?(tb)
133
+ end
134
+ unless passes
135
+ raise ValidationFailed, "Option #{key} must be a kind of #{to_be}! You passed #{value.inspect}."
136
+ end
137
+ end
138
+ end
139
+
140
+ # Raise an exception if the parameter does not respond to a given set of methods.
141
+ def _pv_respond_to(opts, key, method_name_list)
142
+ value = _pv_opts_lookup(opts, key)
143
+ unless value.nil?
144
+ Array(method_name_list).each do |method_name|
145
+ unless value.respond_to?(method_name)
146
+ raise ValidationFailed, "Option #{key} must have a #{method_name} method!"
147
+ end
148
+ end
149
+ end
150
+ end
151
+
152
+ # Assert that parameter returns false when passed a predicate method.
153
+ # For example, :cannot_be => :blank will raise a ValidationFailed
154
+ # error value.blank? returns a 'truthy' (not nil or false) value.
155
+ #
156
+ # Note, this will *PASS* if the object doesn't respond to the method.
157
+ # So, to make sure a value is not nil and not blank, you need to do
158
+ # both :cannot_be => :blank *and* :cannot_be => :nil (or :required => true)
159
+ def _pv_cannot_be(opts, key, predicate_method_base_name)
160
+ value = _pv_opts_lookup(opts, key)
161
+ predicate_method = (predicate_method_base_name.to_s + "?").to_sym
162
+
163
+ if value.respond_to?(predicate_method)
164
+ if value.send(predicate_method)
165
+ raise ValidationFailed, "Option #{key} cannot be #{predicate_method_base_name}"
166
+ end
167
+ end
168
+ end
169
+
170
+ # Assign a default value to a parameter.
171
+ def _pv_default(opts, key, default_value)
172
+ value = _pv_opts_lookup(opts, key)
173
+ if value == nil
174
+ opts[key] = default_value
175
+ end
176
+ end
177
+
178
+ # Check a parameter against a regular expression.
179
+ def _pv_regex(opts, key, regex)
180
+ value = _pv_opts_lookup(opts, key)
181
+ if value != nil
182
+ passes = false
183
+ [ regex ].flatten.each do |r|
184
+ if value != nil
185
+ if r.match(value.to_s)
186
+ passes = true
187
+ end
188
+ end
189
+ end
190
+ unless passes
191
+ raise ValidationFailed, "Option #{key}'s value #{value} does not match regular expression #{regex.inspect}"
192
+ end
193
+ end
194
+ end
195
+
196
+ # Check a parameter against a hash of proc's.
197
+ def _pv_callbacks(opts, key, callbacks)
198
+ raise ArgumentError, "Callback list must be a hash!" unless callbacks.kind_of?(Hash)
199
+ value = _pv_opts_lookup(opts, key)
200
+ if value != nil
201
+ callbacks.each do |message, zeproc|
202
+ if zeproc.call(value) != true
203
+ raise ValidationFailed, "Option #{key}'s value #{value} #{message}!"
204
+ end
205
+ end
206
+ end
207
+ end
208
+
209
+ # Allow a parameter to default to @name
210
+ def _pv_name_attribute(opts, key, is_name_attribute=true)
211
+ if is_name_attribute
212
+ if opts[key] == nil
213
+ opts[key] = self.instance_variable_get("@name")
214
+ end
215
+ end
216
+ end
217
+ end
218
+ end
@@ -3,7 +3,7 @@ module Ridley
3
3
  class << self
4
4
  # @return [String]
5
5
  def resource_path
6
- @resource_path ||= representation.chef_type.pluralize
6
+ @resource_path ||= representation.chef_type
7
7
  end
8
8
 
9
9
  # @param [String] path
@@ -148,7 +148,7 @@ module Ridley
148
148
  #
149
149
  # @return [Hash]
150
150
  def update(cookbook, options = {})
151
- options.reverse_merge(force: false, freeze: false)
151
+ options = options.reverse_merge(force: false, freeze: false)
152
152
 
153
153
  cookbook.frozen = options[:freeze]
154
154
 
@@ -1,3 +1,3 @@
1
1
  module Ridley
2
- VERSION = "1.1.1"
2
+ VERSION = "1.2.0"
3
3
  end
data/ridley.gemspec CHANGED
@@ -17,18 +17,22 @@ Gem::Specification.new do |s|
17
17
  s.version = Ridley::VERSION
18
18
  s.required_ruby_version = ">= 1.9.1"
19
19
 
20
- s.add_runtime_dependency 'addressable'
21
- s.add_runtime_dependency 'buff-shell_out', '~> 0.1'
22
- s.add_runtime_dependency 'chozo', '>= 0.6.0'
23
- s.add_runtime_dependency 'celluloid', '~> 0.14.0'
24
- s.add_runtime_dependency 'celluloid-io', '~> 0.14.0'
25
- s.add_runtime_dependency 'erubis'
26
- s.add_runtime_dependency 'faraday', '>= 0.8.4'
27
- s.add_runtime_dependency 'hashie', '>= 2.0.2'
28
- s.add_runtime_dependency 'mixlib-authentication', '>= 1.3.0'
29
- s.add_runtime_dependency 'net-http-persistent', '>= 2.8'
30
- s.add_runtime_dependency 'net-ssh'
31
- s.add_runtime_dependency 'retryable'
32
- s.add_runtime_dependency 'solve', '>= 0.4.4'
33
- s.add_runtime_dependency 'winrm', '~> 1.1.0'
20
+ s.add_dependency 'addressable'
21
+ s.add_dependency 'varia_model', '~> 0.1'
22
+ s.add_dependency 'buff-extensions', '~> 0.3'
23
+ s.add_dependency 'buff-shell_out', '~> 0.1'
24
+ s.add_dependency 'celluloid', '~> 0.14.0'
25
+ s.add_dependency 'celluloid-io', '~> 0.14.0'
26
+ s.add_dependency 'erubis'
27
+ s.add_dependency 'faraday', '>= 0.8.4'
28
+ s.add_dependency 'hashie', '>= 2.0.2'
29
+ s.add_dependency 'json', '>= 1.7.7'
30
+ s.add_dependency 'mixlib-authentication', '>= 1.3.0'
31
+ s.add_dependency 'net-http-persistent', '>= 2.8'
32
+ s.add_dependency 'net-ssh'
33
+ s.add_dependency 'retryable'
34
+ s.add_dependency 'solve', '>= 0.4.4'
35
+ s.add_dependency 'winrm', '~> 1.1.0'
36
+
37
+ s.add_development_dependency "buff-ruby_engine", "~> 0.1"
34
38
  end
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require 'rubygems'
2
2
  require 'bundler'
3
- require 'chozo'
3
+ require 'buff/ruby_engine'
4
4
 
5
5
  def setup_rspec
6
6
  require 'rspec'
@@ -35,7 +35,7 @@ def setup_rspec
35
35
  end
36
36
  end
37
37
 
38
- if mri? && ENV['CI'] != 'true'
38
+ if Buff::RubyEngine.mri? && ENV['CI'] != 'true'
39
39
  require 'spork'
40
40
 
41
41
  Spork.prefork do
@@ -82,6 +82,12 @@ describe Ridley::BootstrapContext::Windows do
82
82
  end
83
83
  end
84
84
 
85
+ describe "#env_path" do
86
+ it "returns a string" do
87
+ expect(subject.env_path).to be_a(String)
88
+ end
89
+ end
90
+
85
91
  describe "#default_template" do
86
92
  it "returns a string" do
87
93
  subject.default_template.should be_a(String)
@@ -403,9 +403,9 @@ describe Ridley::Chef::Cookbook do
403
403
  subject[:cookbook_name].should be_a(String)
404
404
  end
405
405
 
406
- it "has a :metadata key with a Cookbook::Metadata value" do
406
+ it "has a :metadata key with a Hashie::Mash value" do
407
407
  subject.should have_key(:metadata)
408
- subject[:metadata].should be_a(Ridley::Chef::Cookbook::Metadata)
408
+ subject[:metadata].should be_a(Hashie::Mash)
409
409
  end
410
410
 
411
411
  it "has a :version key with a String value" do
@@ -13,22 +13,22 @@ describe Ridley::NodeObject do
13
13
  end
14
14
 
15
15
  it "includes default attributes" do
16
- instance.default = default = { default: { one: "val", two: "val" } }
16
+ instance.default = default = { "default" => { "one" => "val", "two" => "val" } }
17
17
  expect(subject.to_hash).to include(default)
18
18
  end
19
19
 
20
20
  it "includes normal attributes" do
21
- instance.normal = normal = { normal: { one: "new", two: "val" } }
21
+ instance.normal = normal = { "normal" => { "one" => "val", "two" => "val" } }
22
22
  expect(subject.to_hash).to include(normal)
23
23
  end
24
24
 
25
25
  it "includes override attributes" do
26
- instance.override = override = { override: { one: "new", two: "val" } }
26
+ instance.override = override = { "override" => { "one" => "val", "two" => "val" } }
27
27
  expect(subject.to_hash).to include(override)
28
28
  end
29
29
 
30
30
  it "includes automatic attributes" do
31
- instance.automatic = automatic = { automatic: { one: "new", two: "val" } }
31
+ instance.automatic = automatic = { "automatic" => { "one" => "val", "two" => "val" } }
32
32
  expect(subject.to_hash).to include(automatic)
33
33
  end
34
34
 
@@ -30,8 +30,8 @@ describe Ridley::Resource do
30
30
  context "when not explicitly set" do
31
31
  before { subject.set_resource_path(nil) }
32
32
 
33
- it "returns the representation's chef type, pluralized" do
34
- subject.resource_path.should eql(representation.chef_type.pluralize)
33
+ it "returns the representation's chef type" do
34
+ subject.resource_path.should eql(representation.chef_type)
35
35
  end
36
36
  end
37
37
 
@@ -91,7 +91,7 @@ describe Ridley::NodeResource do
91
91
  end
92
92
 
93
93
  it "has a deep merge between the attributes of the original node and the new attributes" do
94
- expect(result.normal.to_hash).to eql(deep: { one: "val", two: "val" })
94
+ expect(result.normal.to_hash).to eql("deep" => { "one" => "val", "two" => "val" })
95
95
  end
96
96
  end
97
97
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ridley
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-06-13 00:00:00.000000000 Z
13
+ date: 2013-06-17 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: addressable
@@ -29,7 +29,7 @@ dependencies:
29
29
  - !ruby/object:Gem::Version
30
30
  version: '0'
31
31
  - !ruby/object:Gem::Dependency
32
- name: buff-shell_out
32
+ name: varia_model
33
33
  requirement: !ruby/object:Gem::Requirement
34
34
  none: false
35
35
  requirements:
@@ -45,21 +45,37 @@ dependencies:
45
45
  - !ruby/object:Gem::Version
46
46
  version: '0.1'
47
47
  - !ruby/object:Gem::Dependency
48
- name: chozo
48
+ name: buff-extensions
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
- - - ! '>='
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
- version: 0.6.0
54
+ version: '0.3'
55
55
  type: :runtime
56
56
  prerelease: false
57
57
  version_requirements: !ruby/object:Gem::Requirement
58
58
  none: false
59
59
  requirements:
60
- - - ! '>='
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ version: '0.3'
63
+ - !ruby/object:Gem::Dependency
64
+ name: buff-shell_out
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ~>
61
69
  - !ruby/object:Gem::Version
62
- version: 0.6.0
70
+ version: '0.1'
71
+ type: :runtime
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: '0.1'
63
79
  - !ruby/object:Gem::Dependency
64
80
  name: celluloid
65
81
  requirement: !ruby/object:Gem::Requirement
@@ -140,6 +156,22 @@ dependencies:
140
156
  - - ! '>='
141
157
  - !ruby/object:Gem::Version
142
158
  version: 2.0.2
159
+ - !ruby/object:Gem::Dependency
160
+ name: json
161
+ requirement: !ruby/object:Gem::Requirement
162
+ none: false
163
+ requirements:
164
+ - - ! '>='
165
+ - !ruby/object:Gem::Version
166
+ version: 1.7.7
167
+ type: :runtime
168
+ prerelease: false
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ none: false
171
+ requirements:
172
+ - - ! '>='
173
+ - !ruby/object:Gem::Version
174
+ version: 1.7.7
143
175
  - !ruby/object:Gem::Dependency
144
176
  name: mixlib-authentication
145
177
  requirement: !ruby/object:Gem::Requirement
@@ -236,6 +268,22 @@ dependencies:
236
268
  - - ~>
237
269
  - !ruby/object:Gem::Version
238
270
  version: 1.1.0
271
+ - !ruby/object:Gem::Dependency
272
+ name: buff-ruby_engine
273
+ requirement: !ruby/object:Gem::Requirement
274
+ none: false
275
+ requirements:
276
+ - - ~>
277
+ - !ruby/object:Gem::Version
278
+ version: '0.1'
279
+ type: :development
280
+ prerelease: false
281
+ version_requirements: !ruby/object:Gem::Requirement
282
+ none: false
283
+ requirements:
284
+ - - ~>
285
+ - !ruby/object:Gem::Version
286
+ version: '0.1'
239
287
  description: A reliable Chef API client with a clean syntax
240
288
  email:
241
289
  - reset@riotgames.com
@@ -296,6 +344,8 @@ files:
296
344
  - lib/ridley/middleware/retry.rb
297
345
  - lib/ridley/mixin.rb
298
346
  - lib/ridley/mixin/checksum.rb
347
+ - lib/ridley/mixin/from_file.rb
348
+ - lib/ridley/mixin/params_validate.rb
299
349
  - lib/ridley/resource.rb
300
350
  - lib/ridley/resources.rb
301
351
  - lib/ridley/resources/client_resource.rb
@@ -404,7 +454,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
404
454
  version: '0'
405
455
  segments:
406
456
  - 0
407
- hash: 3482897394780446934
457
+ hash: 1580107722882727150
408
458
  requirements: []
409
459
  rubyforge_project:
410
460
  rubygems_version: 1.8.23