jimmy 0.4.5 → 0.4.6

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: f652069943cf8ded7610304ef3053d0260c3fdf8
4
- data.tar.gz: fa7c2a51e59cf67867ece774924d5bb0b7a81553
3
+ metadata.gz: 390e7947ce86632067be15b72c4b5ba5f2c4173e
4
+ data.tar.gz: 6a0ab25b1dcb989e0134aa3c1c65cca1c20de984
5
5
  SHA512:
6
- metadata.gz: a8565852915935b93e0b184457e54b4f50257fb9dab2e615ad0a8ec582497bf3332a9df977b46dedca74c050c84bb4d2950a3d10b8314428d59eccbf7f7a9c7a
7
- data.tar.gz: 7b95a43c73126cb6cf7a749b566f56108b7487931b74e7674e3629ac2ceef954c050ec3126262b843cc579b67a66909fb07706d5c6bd3aa55053bd55a865ca0e
6
+ metadata.gz: 76b2bc0690eb1ea1efacec551d84a9ac5f36f4649f9492036f82a1d3b07b4dcb4cdb4fe667d61253f37c9ec5f616bff96ecda9dc9c87617b7ce72407586facb7
7
+ data.tar.gz: c88a9274de459bafca324b0ddb451d10dac429e3613f7745466d291ec83de34c54f781ca62945fd42c44b3bb0aa3e34dac560a8e18c8fc56b33958fd06474f32
data/jimmy.gemspec CHANGED
@@ -24,4 +24,5 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency 'bundler', '~> 1.9'
25
25
  spec.add_development_dependency 'rake', '~> 10.0'
26
26
  spec.add_development_dependency 'rspec', '~> 3.2'
27
+ spec.add_development_dependency 'diff_matcher', '~> 2.7'
27
28
  end
@@ -2,11 +2,31 @@ module Jimmy
2
2
  class Reference
3
3
  attr_reader :uri
4
4
 
5
- def initialize(uri)
6
- @uri = uri
5
+ def initialize(uri, nullable = false)
6
+ @uri = uri
7
+ @nullable = nullable
7
8
  end
8
9
 
9
10
  def compile
11
+ if nullable?
12
+ {
13
+ 'anyOf' => [
14
+ {'type' => 'null'},
15
+ ref_hash
16
+ ]
17
+ }
18
+ else
19
+ ref_hash
20
+ end
21
+ end
22
+
23
+ def nullable?
24
+ @nullable
25
+ end
26
+
27
+ private
28
+
29
+ def ref_hash
10
30
  {'$ref' => uri}
11
31
  end
12
32
  end
@@ -94,7 +94,7 @@ module Jimmy
94
94
  domain.autoload_type method
95
95
 
96
96
  if domain.types.key? method
97
- return instance_exec TypeReference.new(method), *args, &SchemaCreation.handlers[self.class]
97
+ return instance_exec TypeReference.new(method, args.include?(:nullable)), *args, &SchemaCreation.handlers[self.class]
98
98
  end
99
99
 
100
100
  if kind_of_array?(method)
@@ -2,12 +2,9 @@ module Jimmy
2
2
  class TypeReference < Reference
3
3
  attr_reader :type
4
4
 
5
- def initialize(type)
5
+ def initialize(type, *args)
6
6
  @type = type
7
- end
8
-
9
- def uri
10
- "/types/#{type}.json#"
7
+ super "/types/#{type}.json#", *args
11
8
  end
12
9
  end
13
10
  end
data/lib/jimmy/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Jimmy
2
- VERSION = '0.4.5'
2
+ VERSION = '0.4.6'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jimmy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.4.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Neil E. Pearson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-03 00:00:00.000000000 Z
11
+ date: 2015-12-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json-schema
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '3.2'
69
+ - !ruby/object:Gem::Dependency
70
+ name: diff_matcher
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.7'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '2.7'
69
83
  description: Jimmy makes it a snap to compose detailed JSON schema documents.
70
84
  email:
71
85
  - neil.pearson@orionvm.com
@@ -121,7 +135,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
121
135
  version: '0'
122
136
  requirements: []
123
137
  rubyforge_project:
124
- rubygems_version: 2.4.6
138
+ rubygems_version: 2.4.5.1
125
139
  signing_key:
126
140
  specification_version: 4
127
141
  summary: Jimmy the JSON Schema DSL