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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a9e0fc2114db2a841586eb0937833f53d7696cf4
4
- data.tar.gz: c47da0ee237f0a404ec5d3e8b8f12c2c957ba1b4
3
+ metadata.gz: c45878f252d649075583fd52fc45cad4e315e0be
4
+ data.tar.gz: 52234cfc5d5fceac85ffe74d3615e4b595570f7d
5
5
  SHA512:
6
- metadata.gz: 0fd1e845bdf7e809e7bf8ba750a60e9d1a2e27924846c576fa838ec1ce300e8f78eba9b1b6d23dd02c00886c982d37456ae9e3bf651428ceb62ff037568b3d87
7
- data.tar.gz: 86440102243b951b235e7a4eb9bce696c530d86fe6a8193a9e1fe7470915b9582d30c4df36948da0b666a0e03ae549a6152aedf6d6b2d7ea44bb174de1b9e290
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
- raise context.errors unless context.valid?
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
- errors = JSON.parse result.body
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
 
@@ -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
@@ -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
@@ -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 == @value }.empty?
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 == @value
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.2
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: []