bodhi-slam 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
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: []