bodhi-slam 0.3.2 → 0.3.3
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 +4 -4
- data/lib/bodhi-slam/enumerations.rb +7 -8
- data/lib/bodhi-slam/factory.rb +8 -0
- data/lib/bodhi-slam/resource.rb +1 -1
- data/lib/bodhi-slam/types.rb +3 -1
- data/lib/bodhi-slam/validators/length.rb +3 -3
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c45878f252d649075583fd52fc45cad4e315e0be
|
4
|
+
data.tar.gz: 52234cfc5d5fceac85ffe74d3615e4b595570f7d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 645d1ad9fe41976e4dc5dc8292f6e7ac53427bafef3c249739460dedad671b21645bf12a3617d229c0ee34bae269a6d042e94ba57c40993bdbf5cda5ee2b6b59
|
7
|
+
data.tar.gz: 3735d2c630c5f825aa785111a1c13dba6605dfdde2d582d65c93eef5952f48a2adb1d30a6be49745f19370d37268021ee453cc861f3d31ee6dc8dfe5a8679c9e
|
@@ -29,20 +29,19 @@ module Bodhi
|
|
29
29
|
#
|
30
30
|
# Bodhi::Enumeration.find_all(context) # => [#<Bodhi::Enumeration:0x007fbff403e808>, #<Bodhi::Enumeration:0x007fbff403e808>, ...]
|
31
31
|
def self.find_all(context)
|
32
|
-
|
33
|
-
|
32
|
+
if context.invalid?
|
33
|
+
raise Bodhi::ContextErrors.new(context.errors.messages), context.errors.to_a.to_s
|
34
|
+
end
|
35
|
+
|
34
36
|
result = context.connection.get do |request|
|
35
37
|
request.url "/#{context.namespace}/enums"
|
36
38
|
request.headers[context.credentials_header] = context.credentials
|
37
39
|
end
|
38
|
-
|
40
|
+
|
39
41
|
if result.status != 200
|
40
|
-
|
41
|
-
errors.each{|error| error['status'] = result.status } if errors.is_a? Array
|
42
|
-
errors["status"] = result.status if errors.is_a? Hash
|
43
|
-
raise errors.to_s
|
42
|
+
raise Bodhi::ApiErrors.new(body: result.body, status: result.status), "status: #{result.status}, body: #{result.body}"
|
44
43
|
end
|
45
|
-
|
44
|
+
|
46
45
|
JSON.parse(result.body).collect{ |enum| Bodhi::Enumeration.new(enum) }
|
47
46
|
end
|
48
47
|
|
data/lib/bodhi-slam/factory.rb
CHANGED
@@ -98,6 +98,10 @@ module Bodhi
|
|
98
98
|
generator = lambda{ [*0..5].sample.times.collect{ /\p{Alnum}{5,10}@\p{Alnum}{5,10}\.\p{Alnum}{2,3}/i.random_example } }
|
99
99
|
elsif options[:matches]
|
100
100
|
generator = lambda{ [*0..5].sample.times.collect{ Regexp.new(options[:matches]).random_example } }
|
101
|
+
elsif options[:length]
|
102
|
+
min = JSON.parse(options[:length]).first
|
103
|
+
max = JSON.parse(options[:length]).last
|
104
|
+
generator = lambda{ [*0..5].sample.times.collect{ [*min..max].sample.times.map{ characters[rand(characters.length)] }.join } }
|
101
105
|
else
|
102
106
|
generator = lambda{ [*0..5].sample.times.collect{ [*0..100].sample.times.map{ characters[rand(characters.length)] }.join } }
|
103
107
|
end
|
@@ -108,6 +112,10 @@ module Bodhi
|
|
108
112
|
generator = lambda{ /\p{Alnum}{5,10}@\p{Alnum}{5,10}\.\p{Alnum}{2,3}/i.random_example }
|
109
113
|
elsif options[:matches]
|
110
114
|
generator = lambda{ Regexp.new(options[:matches]).random_example }
|
115
|
+
elsif options[:length]
|
116
|
+
min = JSON.parse(options[:length]).first
|
117
|
+
max = JSON.parse(options[:length]).last
|
118
|
+
generator = lambda{ [*min..max].sample.times.map{ characters[rand(characters.length)] }.join }
|
111
119
|
else
|
112
120
|
generator = lambda{ [*0..100].sample.times.map{ characters[rand(characters.length)] }.join }
|
113
121
|
end
|
data/lib/bodhi-slam/resource.rb
CHANGED
@@ -230,7 +230,7 @@ module Bodhi
|
|
230
230
|
request.url "/#{bodhi_context.namespace}/resources/#{self.class}/#{sys_id}"
|
231
231
|
request.headers['Content-Type'] = 'application/json'
|
232
232
|
request.headers[bodhi_context.credentials_header] = bodhi_context.credentials
|
233
|
-
request.body = params
|
233
|
+
request.body = params.to_json
|
234
234
|
end
|
235
235
|
|
236
236
|
if result.status != 204
|
data/lib/bodhi-slam/types.rb
CHANGED
@@ -4,7 +4,7 @@ module Bodhi
|
|
4
4
|
|
5
5
|
SYSTEM_ATTRIBUTES = [:sys_created_at, :sys_version, :sys_modified_at, :sys_modified_by,
|
6
6
|
:sys_namespace, :sys_created_by, :sys_type_version, :sys_id, :sys_embeddedType]
|
7
|
-
ATTRIBUTES = [:name, :namespace, :package, :embedded, :properties, :version]
|
7
|
+
ATTRIBUTES = [:name, :namespace, :package, :embedded, :properties, :version, :extends]
|
8
8
|
|
9
9
|
attr_accessor *ATTRIBUTES
|
10
10
|
attr_reader *SYSTEM_ATTRIBUTES
|
@@ -17,6 +17,7 @@ module Bodhi
|
|
17
17
|
# Returns a factory for the Bodhi::Type class
|
18
18
|
def self.factory
|
19
19
|
@factory ||= Bodhi::Factory.new(Bodhi::Type).tap do |factory|
|
20
|
+
factory.add_generator(:extends, type: "String", matches: "[a-zA-Z_-]{10,20}")
|
20
21
|
factory.add_generator(:name, type: "String", required: true, is_not_blank: true)
|
21
22
|
factory.add_generator(:namespace, type: "String", required: true)
|
22
23
|
factory.add_generator(:properties, type: "Object", required: true)
|
@@ -52,6 +53,7 @@ module Bodhi
|
|
52
53
|
ATTRIBUTES.each do |attribute|
|
53
54
|
result[attribute] = send(attribute)
|
54
55
|
end
|
56
|
+
result.delete_if { |k, v| v.nil? }
|
55
57
|
result
|
56
58
|
end
|
57
59
|
|
@@ -3,7 +3,7 @@ module Bodhi
|
|
3
3
|
attr_reader :value
|
4
4
|
|
5
5
|
def initialize(value)
|
6
|
-
@value = value
|
6
|
+
@value = JSON.parse(value)
|
7
7
|
end
|
8
8
|
|
9
9
|
def validate(record, attribute, value)
|
@@ -11,10 +11,10 @@ module Bodhi
|
|
11
11
|
|
12
12
|
if value.is_a?(Array)
|
13
13
|
unless value.empty?
|
14
|
-
record.errors.add(attribute, "must all be #{value} characters long") unless value.select{ |item| !item.length
|
14
|
+
record.errors.add(attribute, "must all be #{@value} characters long") unless value.select{ |item| !item.length.between?(@value.first, @value.last) }.empty?
|
15
15
|
end
|
16
16
|
else
|
17
|
-
record.errors.add(attribute, "must be #{value} characters long") unless value.length
|
17
|
+
record.errors.add(attribute, "must be #{@value} characters long") unless value.length.between?(@value.first, @value.last)
|
18
18
|
end
|
19
19
|
|
20
20
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bodhi-slam
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- willdavis
|
@@ -108,6 +108,20 @@ dependencies:
|
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: bump
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
111
125
|
description:
|
112
126
|
email: will.davis@hotschedules.com
|
113
127
|
executables: []
|