jimmy 0.4.5 → 0.4.6

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: 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