Class: EY::Serverside::Adapter::Arguments
- Inherits:
-
Object
- Object
- EY::Serverside::Adapter::Arguments
show all
- Defined in:
- lib/engineyard-serverside-adapter/arguments.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(data = {}) ⇒ Arguments
Returns a new instance of Arguments.
28
29
30
|
# File 'lib/engineyard-serverside-adapter/arguments.rb', line 28
def initialize(data={})
@data = data
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(meth) ⇒ Object
70
71
72
|
# File 'lib/engineyard-serverside-adapter/arguments.rb', line 70
def method_missing(meth, *)
key?(meth) ? self[meth] : super
end
|
Class Method Details
.nonempty_writer(*names) ⇒ Object
6
7
8
9
10
11
12
13
14
15
|
# File 'lib/engineyard-serverside-adapter/arguments.rb', line 6
def self.nonempty_writer(*names)
names.each do |name|
define_method(:"#{name}=") do |value|
if value.nil? || value.to_s.empty?
raise ArgumentError, "Value for '#{name}' must be non-empty."
end
self[name] = value
end
end
end
|
.writer(*names) ⇒ Object
17
18
19
20
21
22
23
|
# File 'lib/engineyard-serverside-adapter/arguments.rb', line 17
def self.writer(*names)
names.each do |name|
define_method(:"#{name}=") do |value|
self[name] = value
end
end
end
|
Instance Method Details
#[](key) ⇒ Object
40
41
42
|
# File 'lib/engineyard-serverside-adapter/arguments.rb', line 40
def [](key)
@data[key.to_sym]
end
|
#[]=(key, val) ⇒ Object
36
37
38
|
# File 'lib/engineyard-serverside-adapter/arguments.rb', line 36
def []=(key, val)
@data[key.to_sym] = val
end
|
#dup ⇒ Object
32
33
34
|
# File 'lib/engineyard-serverside-adapter/arguments.rb', line 32
def dup
self.class.new(@data.dup)
end
|
#instances=(instances) ⇒ Object
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
# File 'lib/engineyard-serverside-adapter/arguments.rb', line 48
def instances=(instances)
unless instances.respond_to?(:each)
raise ArgumentError, "Value for 'instances' must look like an enumerable."
end
if instances.empty?
raise ArgumentError, "Value for 'instances' must not be empty."
end
instances.each do |instance|
unless instance.respond_to?(:[]) && instance[:hostname] && instance[:roles]
raise ArgumentError, "Malformed instance #{instance.inspect}; it must have both [:hostname] and [:roles]"
end
end
self[:instances] = instances
end
|
#key?(key) ⇒ Boolean
44
45
46
|
# File 'lib/engineyard-serverside-adapter/arguments.rb', line 44
def key?(key)
@data.key?(key.to_sym)
end
|
#serverside_version=(value) ⇒ Object
66
67
68
|
# File 'lib/engineyard-serverside-adapter/arguments.rb', line 66
def serverside_version=(value)
self[:serverside_version] = Gem::Version.create(value).to_s
end
|