nidyx 0.2.1 → 0.2.2
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/nidyx/objc/constants.rb +50 -0
- data/lib/nidyx/objc/mapper.rb +4 -5
- data/lib/nidyx/objc/property.rb +20 -59
- data/lib/nidyx/objc/utils.rb +21 -0
- data/lib/nidyx/parser.rb +12 -3
- data/lib/nidyx/version.rb +1 -1
- data/test/nidyx/objc/test_property.rb +38 -28
- data/test/nidyx/test_parser.rb +4 -3
- metadata +17 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7e11dd4c1a128f7bc0710298931654abeea27dc4
|
4
|
+
data.tar.gz: e3961e8433db99a3be62e680f67aceba40e324f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 53b523b9a753819ea6562be0d5ff3154ce13ce8073b206a71fbe90952d7ee0a07522c5d491d0fac8d2de0bfc38890deea74faa7c4d093901871b3609f11ef111
|
7
|
+
data.tar.gz: c45145bbfa67322c24d3ab70aa46b0a6a38c65c5d2f9f1577ea8cb02d198cc75255a0e8186894a2f66e6b2b1dd85e8503eb512d13608d73dc53c6f261f57e448
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module Nidyx
|
2
|
+
module ObjCConstants
|
3
|
+
|
4
|
+
PRIMITIVE_ATTRIBUTES = "assign, nonatomic"
|
5
|
+
OBJECT_ATTRIBUTES = "strong, nonatomic"
|
6
|
+
|
7
|
+
ATTRIBUTES = {
|
8
|
+
:array => OBJECT_ATTRIBUTES,
|
9
|
+
:boolean => PRIMITIVE_ATTRIBUTES,
|
10
|
+
:integer => PRIMITIVE_ATTRIBUTES,
|
11
|
+
:unsigned => PRIMITIVE_ATTRIBUTES,
|
12
|
+
:number => PRIMITIVE_ATTRIBUTES,
|
13
|
+
:number_obj => OBJECT_ATTRIBUTES,
|
14
|
+
:string => OBJECT_ATTRIBUTES,
|
15
|
+
:object => OBJECT_ATTRIBUTES,
|
16
|
+
:id => OBJECT_ATTRIBUTES
|
17
|
+
}
|
18
|
+
|
19
|
+
# Objective-C types
|
20
|
+
# :object intentionally omitted
|
21
|
+
TYPES = {
|
22
|
+
:array => "NSArray",
|
23
|
+
:boolean => "BOOL",
|
24
|
+
:integer => "NSInteger",
|
25
|
+
:unsigned => "NSUInteger",
|
26
|
+
:number => "double",
|
27
|
+
:number_obj => "NSNumber",
|
28
|
+
:string => "NSString",
|
29
|
+
:id => "id"
|
30
|
+
}
|
31
|
+
|
32
|
+
# Hash and Array intentionally omitted
|
33
|
+
ENUM_TYPES = {
|
34
|
+
Fixnum => :integer,
|
35
|
+
String => :string,
|
36
|
+
NilClass => :null,
|
37
|
+
Float => :number,
|
38
|
+
TrueClass => :boolean,
|
39
|
+
FalseClass => :boolean
|
40
|
+
}
|
41
|
+
|
42
|
+
OBJECTS = Set.new [:array, :number_obj, :string, :object, :id]
|
43
|
+
|
44
|
+
SIMPLE_NUMBERS = Set.new [:unsigned, :integer, :number]
|
45
|
+
|
46
|
+
BOXABLE_NUMBERS = SIMPLE_NUMBERS + [:boolean]
|
47
|
+
|
48
|
+
FORBIDDEN_PROPERTY_PREFIXES = ["new", "copy"]
|
49
|
+
end
|
50
|
+
end
|
data/lib/nidyx/objc/mapper.rb
CHANGED
@@ -6,13 +6,12 @@ require "nidyx/objc/property"
|
|
6
6
|
|
7
7
|
module Nidyx
|
8
8
|
module ObjCMapper
|
9
|
-
extend self
|
10
9
|
|
11
10
|
# Generates a list of ObjCModels
|
12
11
|
# @param models [Array] an array of generic Models to map
|
13
12
|
# @param options [Hash] runtime options
|
14
13
|
# @return [Array] a list of ObjCModels
|
15
|
-
def map(models, options)
|
14
|
+
def self.map(models, options)
|
16
15
|
objc_models = []
|
17
16
|
|
18
17
|
models.each do |m|
|
@@ -26,14 +25,14 @@ module Nidyx
|
|
26
25
|
|
27
26
|
private
|
28
27
|
|
29
|
-
def map_interface(model, options)
|
28
|
+
def self.map_interface(model, options)
|
30
29
|
interface = Nidyx::ObjCInterface.new(model.name, options)
|
31
30
|
interface.properties = model.properties.map { |p| Nidyx::ObjCProperty.new(p) }
|
32
|
-
interface.imports += model.dependencies.to_a
|
31
|
+
interface.imports += Nidyx::ObjCUtils.filter_standard_types(model.dependencies.to_a)
|
33
32
|
interface
|
34
33
|
end
|
35
34
|
|
36
|
-
def map_implementation(model, options)
|
35
|
+
def self.map_implementation(model, options)
|
37
36
|
implementation = Nidyx::ObjCImplementation.new(model.name, options)
|
38
37
|
name_overrides = {}
|
39
38
|
model.properties.each { |p| name_overrides[p.overriden_name] = p.name if p.overriden_name }
|
data/lib/nidyx/objc/property.rb
CHANGED
@@ -1,12 +1,17 @@
|
|
1
1
|
require "set"
|
2
|
+
require "nidyx/objc/utils"
|
3
|
+
require "nidyx/objc/constants"
|
2
4
|
|
3
5
|
module Nidyx
|
4
6
|
class ObjCProperty
|
5
|
-
|
6
|
-
|
7
|
+
|
8
|
+
include Nidyx::ObjCConstants
|
7
9
|
|
8
10
|
class UnsupportedEnumTypeError < StandardError; end
|
9
11
|
|
12
|
+
attr_reader :name, :attributes, :type, :type_name, :desc, :getter_override,
|
13
|
+
:protocols
|
14
|
+
|
10
15
|
# @param property [Property] generic property
|
11
16
|
def initialize(property)
|
12
17
|
@name = property.name
|
@@ -19,7 +24,8 @@ module Nidyx
|
|
19
24
|
@type_name = lookup_type_name(@type, property.class_name)
|
20
25
|
|
21
26
|
@protocols = []
|
22
|
-
|
27
|
+
# Exclude any standard objc types from the protocols
|
28
|
+
@protocols += Nidyx::ObjCUtils.filter_standard_types(property.collection_types) if property.collection_types
|
23
29
|
@protocols << "Optional" if @optional
|
24
30
|
end
|
25
31
|
|
@@ -40,52 +46,6 @@ module Nidyx
|
|
40
46
|
|
41
47
|
private
|
42
48
|
|
43
|
-
PRIMITIVE_ATTRIBUTES = "assign, nonatomic"
|
44
|
-
OBJECT_ATTRIBUTES = "strong, nonatomic"
|
45
|
-
|
46
|
-
ATTRIBUTES = {
|
47
|
-
:array => OBJECT_ATTRIBUTES,
|
48
|
-
:boolean => PRIMITIVE_ATTRIBUTES,
|
49
|
-
:integer => PRIMITIVE_ATTRIBUTES,
|
50
|
-
:unsigned => PRIMITIVE_ATTRIBUTES,
|
51
|
-
:number => PRIMITIVE_ATTRIBUTES,
|
52
|
-
:number_obj => OBJECT_ATTRIBUTES,
|
53
|
-
:string => OBJECT_ATTRIBUTES,
|
54
|
-
:object => OBJECT_ATTRIBUTES,
|
55
|
-
:id => OBJECT_ATTRIBUTES
|
56
|
-
}
|
57
|
-
|
58
|
-
# Objective-C types
|
59
|
-
# :object intentionally omitted
|
60
|
-
TYPES = {
|
61
|
-
:array => "NSArray",
|
62
|
-
:boolean => "BOOL",
|
63
|
-
:integer => "NSInteger",
|
64
|
-
:unsigned => "NSUInteger",
|
65
|
-
:number => "double",
|
66
|
-
:number_obj => "NSNumber",
|
67
|
-
:string => "NSString",
|
68
|
-
:id => "id"
|
69
|
-
}
|
70
|
-
|
71
|
-
# Hash and Array intentionally omitted
|
72
|
-
ENUM_TYPES = {
|
73
|
-
Fixnum => :integer,
|
74
|
-
String => :string,
|
75
|
-
NilClass => :null,
|
76
|
-
Float => :number,
|
77
|
-
TrueClass => :boolean,
|
78
|
-
FalseClass => :boolean
|
79
|
-
}
|
80
|
-
|
81
|
-
OBJECTS = Set.new [:array, :number_obj, :string, :object, :id]
|
82
|
-
|
83
|
-
SIMPLE_NUMBERS = Set.new [:unsigned, :integer, :number]
|
84
|
-
|
85
|
-
BOXABLE_NUMBERS = SIMPLE_NUMBERS + [:boolean]
|
86
|
-
|
87
|
-
FORBIDDEN_PROPERTY_PREFIXES = ["new", "copy"]
|
88
|
-
|
89
49
|
# @param type [Symbol] an obj-c property type
|
90
50
|
# @param class_name [String] an object's type name
|
91
51
|
# @return [String] the property's type name
|
@@ -93,6 +53,16 @@ module Nidyx
|
|
93
53
|
type == :object ? class_name : TYPES[type]
|
94
54
|
end
|
95
55
|
|
56
|
+
# @param name [String] the property name
|
57
|
+
# @return [String, nil] the getter override string if necessary
|
58
|
+
def process_getter_override(name)
|
59
|
+
FORBIDDEN_PROPERTY_PREFIXES.each do |p|
|
60
|
+
return ", getter=get#{name.camelize}" if name.match(/^#{p}[_A-Z].*/)
|
61
|
+
end
|
62
|
+
|
63
|
+
nil
|
64
|
+
end
|
65
|
+
|
96
66
|
# @param property [Property] generic property
|
97
67
|
# @return [Symbol] an obj-c property type
|
98
68
|
def process_type(property)
|
@@ -106,6 +76,7 @@ module Nidyx
|
|
106
76
|
end
|
107
77
|
end
|
108
78
|
|
79
|
+
private
|
109
80
|
|
110
81
|
# @param property [Property] generic property
|
111
82
|
# @return [Symbol] an obj-c property type
|
@@ -160,15 +131,5 @@ module Nidyx
|
|
160
131
|
|
161
132
|
:id
|
162
133
|
end
|
163
|
-
|
164
|
-
# @param name [String] the property name
|
165
|
-
# @return [String, nil] the getter override string if necessary
|
166
|
-
def process_getter_override(name)
|
167
|
-
FORBIDDEN_PROPERTY_PREFIXES.each do |p|
|
168
|
-
return ", getter=get#{name.camelize}" if name.match(/^#{p}[_A-Z].*/)
|
169
|
-
end
|
170
|
-
|
171
|
-
nil
|
172
|
-
end
|
173
134
|
end
|
174
135
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require "nidyx/objc/constants"
|
2
|
+
|
3
|
+
module Nidyx
|
4
|
+
module ObjCUtils
|
5
|
+
|
6
|
+
include Nidyx::ObjCConstants
|
7
|
+
|
8
|
+
# Filters standard objc object types from an array of types. The result is
|
9
|
+
# an array of non-standard object types. For example:
|
10
|
+
#
|
11
|
+
# filter_standard_types(["AnObj", "string"]) #=> ["AnObject"]
|
12
|
+
# filter_standard_types(["string", "number_obj"]) #=> []
|
13
|
+
#
|
14
|
+
# @param type [Array[String|Symbol]] collection of any objc types
|
15
|
+
# @return [Array[Symbol]] the collection w/o standard objc types
|
16
|
+
def self.filter_standard_types(types)
|
17
|
+
# TODO: throw an exception on primitives
|
18
|
+
types.reject { |t| TYPES.keys.include?(t.to_sym) }
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/nidyx/parser.rb
CHANGED
@@ -135,6 +135,7 @@ module Nidyx
|
|
135
135
|
# @return [Array] types contained in the array
|
136
136
|
def resolve_array_refs(obj)
|
137
137
|
items = obj[ITEMS_KEY]
|
138
|
+
|
138
139
|
case items
|
139
140
|
when Array
|
140
141
|
return resolve_items_array(items)
|
@@ -154,11 +155,19 @@ module Nidyx
|
|
154
155
|
# @return [Array] types contained in the array
|
155
156
|
def resolve_items_array(items)
|
156
157
|
types = []
|
157
|
-
items.each
|
158
|
+
items.each { |i| types << resolve_single_item(i) }
|
159
|
+
types.compact
|
160
|
+
end
|
161
|
+
|
162
|
+
# @param item [Hash] a single item
|
163
|
+
# return [Array] types for the single item
|
164
|
+
def resolve_single_item(item)
|
165
|
+
if item[REF_KEY]
|
158
166
|
resolve_reference_string(item[REF_KEY])
|
159
|
-
|
167
|
+
class_name_from_ref(item[REF_KEY])
|
168
|
+
elsif item[TYPE_KEY]
|
169
|
+
item[TYPE_KEY]
|
160
170
|
end
|
161
|
-
types.compact
|
162
171
|
end
|
163
172
|
|
164
173
|
# @param ref [String] reference in json pointer format
|
data/lib/nidyx/version.rb
CHANGED
@@ -1,8 +1,11 @@
|
|
1
1
|
require "minitest/autorun"
|
2
2
|
require "nidyx"
|
3
|
+
require "nidyx/parse_constants"
|
3
4
|
require "nidyx/property"
|
4
5
|
require "nidyx/objc/property"
|
5
6
|
|
7
|
+
include Nidyx::ParseConstants
|
8
|
+
|
6
9
|
class TestObjCProperty < Minitest::Test
|
7
10
|
|
8
11
|
def test_is_obj
|
@@ -19,7 +22,7 @@ class TestObjCProperty < Minitest::Test
|
|
19
22
|
end
|
20
23
|
|
21
24
|
def test_simple_array
|
22
|
-
obj = {
|
25
|
+
obj = { TYPE_KEY => "array" }
|
23
26
|
p = property(obj, false)
|
24
27
|
assert_equal(:array, p.type)
|
25
28
|
assert_equal(nil, p.getter_override)
|
@@ -34,14 +37,21 @@ class TestObjCProperty < Minitest::Test
|
|
34
37
|
end
|
35
38
|
|
36
39
|
def test_typed_optional_array
|
37
|
-
obj = {
|
40
|
+
obj = { TYPE_KEY => ["array", "null"] }
|
38
41
|
p = property(obj, false)
|
39
42
|
assert_equal(:array, p.type)
|
40
43
|
assert_equal(["Optional"], p.protocols)
|
41
44
|
end
|
42
45
|
|
46
|
+
def test_typed_array_with_protocls
|
47
|
+
obj = { TYPE_KEY => ["array" ], COLLECTION_TYPES_KEY => ["aClass", "string"] }
|
48
|
+
p = property(obj, false)
|
49
|
+
assert_equal(:array, p.type)
|
50
|
+
assert_equal(["aClass"], p.protocols)
|
51
|
+
end
|
52
|
+
|
43
53
|
def test_boolean
|
44
|
-
obj = {
|
54
|
+
obj = { TYPE_KEY => "boolean" }
|
45
55
|
p = property(obj, false)
|
46
56
|
assert_equal(:boolean, p.type)
|
47
57
|
|
@@ -51,13 +61,13 @@ class TestObjCProperty < Minitest::Test
|
|
51
61
|
end
|
52
62
|
|
53
63
|
def test_typed_optional_boolean
|
54
|
-
obj = {
|
64
|
+
obj = { TYPE_KEY => ["boolean", "null"] }
|
55
65
|
p = property(obj, false)
|
56
66
|
assert_equal(:number_obj, p.type)
|
57
67
|
end
|
58
68
|
|
59
69
|
def test_integer
|
60
|
-
obj = {
|
70
|
+
obj = { TYPE_KEY => "integer" }
|
61
71
|
p = property(obj, false)
|
62
72
|
assert_equal(:integer, p.type)
|
63
73
|
|
@@ -67,20 +77,20 @@ class TestObjCProperty < Minitest::Test
|
|
67
77
|
end
|
68
78
|
|
69
79
|
def test_unsigned_integer
|
70
|
-
obj = {
|
80
|
+
obj = { TYPE_KEY => "integer", "minimum" => 0 }
|
71
81
|
p = property(obj, false)
|
72
82
|
assert_equal(:unsigned, p.type)
|
73
83
|
end
|
74
84
|
|
75
85
|
def test_typed_optional_integer
|
76
|
-
obj = {
|
86
|
+
obj = { TYPE_KEY => ["integer", "null"] }
|
77
87
|
p = property(obj, false)
|
78
88
|
assert_equal(:number_obj, p.type)
|
79
89
|
assert_equal(["Optional"], p.protocols)
|
80
90
|
end
|
81
91
|
|
82
92
|
def test_number
|
83
|
-
obj = {
|
93
|
+
obj = { TYPE_KEY => "number" }
|
84
94
|
p = property(obj, false)
|
85
95
|
assert_equal(:number, p.type)
|
86
96
|
|
@@ -89,13 +99,13 @@ class TestObjCProperty < Minitest::Test
|
|
89
99
|
end
|
90
100
|
|
91
101
|
def test_typed_optional_number
|
92
|
-
obj = {
|
102
|
+
obj = { TYPE_KEY => ["number", "null"] }
|
93
103
|
p = property(obj, false)
|
94
104
|
assert_equal(:number_obj, p.type)
|
95
105
|
end
|
96
106
|
|
97
107
|
def test_string
|
98
|
-
obj = {
|
108
|
+
obj = { TYPE_KEY => "string" }
|
99
109
|
p = property(obj, false)
|
100
110
|
assert_equal(:string, p.type)
|
101
111
|
|
@@ -104,15 +114,15 @@ class TestObjCProperty < Minitest::Test
|
|
104
114
|
end
|
105
115
|
|
106
116
|
def test_typed_optional_string
|
107
|
-
obj = {
|
117
|
+
obj = { TYPE_KEY => ["string", "null"] }
|
108
118
|
p = property(obj, false)
|
109
119
|
assert_equal(:string, p.type)
|
110
120
|
end
|
111
121
|
|
112
122
|
def test_object
|
113
123
|
obj = {
|
114
|
-
|
115
|
-
|
124
|
+
TYPE_KEY => "object",
|
125
|
+
PROPERTIES_KEY => {}
|
116
126
|
}
|
117
127
|
|
118
128
|
p = property(obj, false)
|
@@ -120,32 +130,32 @@ class TestObjCProperty < Minitest::Test
|
|
120
130
|
end
|
121
131
|
|
122
132
|
def test_multiple_numeric_types
|
123
|
-
obj = {
|
133
|
+
obj = { TYPE_KEY => ["number", "integer", "boolean"] }
|
124
134
|
p = property(obj, false)
|
125
135
|
assert_equal(:number_obj, p.type)
|
126
136
|
end
|
127
137
|
|
128
138
|
def test_typed_optional_multiple_numeric_types
|
129
|
-
obj = {
|
139
|
+
obj = { TYPE_KEY => ["number", "integer", "boolean", "null"] }
|
130
140
|
p = property(obj, false)
|
131
141
|
assert_equal(:number_obj, p.type)
|
132
142
|
assert_equal(["Optional"], p.protocols)
|
133
143
|
end
|
134
144
|
|
135
145
|
def test_multiple_disparate_types
|
136
|
-
obj = {
|
146
|
+
obj = { TYPE_KEY => ["object", "number"] }
|
137
147
|
p = property(obj, false)
|
138
148
|
assert_equal(:id, p.type)
|
139
149
|
end
|
140
150
|
|
141
151
|
def test_typed_optional_multiple_disparate_types
|
142
|
-
obj = {
|
152
|
+
obj = { TYPE_KEY => ["object", "number", "null"] }
|
143
153
|
p = property(obj, false)
|
144
154
|
assert_equal(:id, p.type)
|
145
155
|
end
|
146
156
|
|
147
157
|
def test_simple_numbers
|
148
|
-
obj = {
|
158
|
+
obj = { TYPE_KEY => [ "integer", "number" ] }
|
149
159
|
p = property(obj, false)
|
150
160
|
assert_equal(:number, p.type)
|
151
161
|
|
@@ -154,13 +164,13 @@ class TestObjCProperty < Minitest::Test
|
|
154
164
|
end
|
155
165
|
|
156
166
|
def test_typed_optional_simple_numbers
|
157
|
-
obj = {
|
167
|
+
obj = { TYPE_KEY => [ "integer", "number", "null" ] }
|
158
168
|
p = property(obj, false)
|
159
169
|
assert_equal(:number_obj, p.type)
|
160
170
|
end
|
161
171
|
|
162
172
|
def test_integer_enum
|
163
|
-
obj = {
|
173
|
+
obj = { ENUM_KEY => [1, 2] }
|
164
174
|
p = property(obj, false)
|
165
175
|
assert_equal(:integer, p.type)
|
166
176
|
|
@@ -170,39 +180,39 @@ class TestObjCProperty < Minitest::Test
|
|
170
180
|
end
|
171
181
|
|
172
182
|
def test_string_enum
|
173
|
-
obj = {
|
183
|
+
obj = { ENUM_KEY => ["a", "b"] }
|
174
184
|
p = property(obj, false)
|
175
185
|
assert_equal(:string, p.type)
|
176
186
|
end
|
177
187
|
|
178
188
|
def test_typed_optional_enum
|
179
|
-
obj = {
|
189
|
+
obj = { ENUM_KEY => [1, 2, nil] }
|
180
190
|
p = property(obj, false)
|
181
191
|
assert_equal(:number_obj, p.type)
|
182
192
|
assert_equal(["Optional"], p.protocols)
|
183
193
|
end
|
184
194
|
|
185
195
|
def test_single_element_array_type
|
186
|
-
obj = {
|
196
|
+
obj = { TYPE_KEY => ["integer"] }
|
187
197
|
p = property(obj, false)
|
188
198
|
assert_equal(:integer, p.type)
|
189
199
|
end
|
190
200
|
|
191
201
|
def test_anonymous_object
|
192
|
-
obj = {
|
202
|
+
obj = { TYPE_KEY => "object" }
|
193
203
|
p = property(obj, false)
|
194
204
|
assert_equal(:id, p.type)
|
195
205
|
end
|
196
206
|
|
197
207
|
def test_unsafe_getter
|
198
|
-
obj = {
|
208
|
+
obj = { TYPE_KEY => "integer" }
|
199
209
|
p = Nidyx::ObjCProperty.new(Nidyx::Property.new("newInt", nil, false, obj))
|
200
210
|
assert_equal(", getter=getNewInt", p.getter_override)
|
201
211
|
end
|
202
212
|
|
203
213
|
def test_protocols
|
204
214
|
obj = {
|
205
|
-
|
215
|
+
TYPE_KEY => "array",
|
206
216
|
COLLECTION_TYPES_KEY => ["SomeModel", "OtherModel"]
|
207
217
|
}
|
208
218
|
|
@@ -219,7 +229,7 @@ class TestObjCProperty < Minitest::Test
|
|
219
229
|
|
220
230
|
def test_unsupported_types_enum
|
221
231
|
assert_raises(Nidyx::ObjCProperty::UnsupportedEnumTypeError) do
|
222
|
-
obj = {
|
232
|
+
obj = { ENUM_KEY => ["a", {}] }
|
223
233
|
Nidyx::ObjCProperty.new(Nidyx::Property.new("i", nil, false, obj))
|
224
234
|
end
|
225
235
|
end
|
@@ -227,7 +237,7 @@ class TestObjCProperty < Minitest::Test
|
|
227
237
|
private
|
228
238
|
|
229
239
|
def simple_property(type)
|
230
|
-
obj = {
|
240
|
+
obj = { TYPE_KEY => type }
|
231
241
|
Nidyx::ObjCProperty.new(Nidyx::Property.new("p", nil, false, obj))
|
232
242
|
end
|
233
243
|
|
data/test/nidyx/test_parser.rb
CHANGED
@@ -196,7 +196,8 @@ class TestParser < Minitest::Test
|
|
196
196
|
"type" => "array",
|
197
197
|
"items" => [
|
198
198
|
{ "$ref" => "#/definitions/object" },
|
199
|
-
{ "$ref" => "#/definitions/other_object" }
|
199
|
+
{ "$ref" => "#/definitions/other_object" },
|
200
|
+
{ "type" => "string" }
|
200
201
|
]
|
201
202
|
}
|
202
203
|
},
|
@@ -222,7 +223,7 @@ class TestParser < Minitest::Test
|
|
222
223
|
|
223
224
|
# root model
|
224
225
|
model = models["TSModel"]
|
225
|
-
assert_deps(%w(TSObjectModel TSOtherObjectModel), model)
|
226
|
+
assert_deps(%w(TSObjectModel TSOtherObjectModel string), model)
|
226
227
|
props = model.properties
|
227
228
|
|
228
229
|
string_array = props.shift
|
@@ -235,7 +236,7 @@ class TestParser < Minitest::Test
|
|
235
236
|
|
236
237
|
multi_object_array = props.shift
|
237
238
|
assert_equal(:array, multi_object_array.type)
|
238
|
-
assert_equal(%w(TSObjectModel TSOtherObjectModel), multi_object_array.collection_types)
|
239
|
+
assert_equal(%w(TSObjectModel TSOtherObjectModel string), multi_object_array.collection_types)
|
239
240
|
|
240
241
|
# object model
|
241
242
|
model = models["TSObjectModel"]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nidyx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Knadler
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-02-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mustache
|
@@ -16,56 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0
|
19
|
+
version: '1.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0
|
26
|
+
version: '1.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: terminal-notifier-guard
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
31
|
+
- - "~>"
|
46
32
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
33
|
+
version: '10.5'
|
48
34
|
type: :development
|
49
35
|
prerelease: false
|
50
36
|
version_requirements: !ruby/object:Gem::Requirement
|
51
37
|
requirements:
|
52
|
-
- - "
|
38
|
+
- - "~>"
|
53
39
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
40
|
+
version: '10.5'
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
42
|
+
name: minitest
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
58
44
|
requirements:
|
59
|
-
- - "
|
45
|
+
- - "~>"
|
60
46
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
47
|
+
version: '5.8'
|
62
48
|
type: :development
|
63
49
|
prerelease: false
|
64
50
|
version_requirements: !ruby/object:Gem::Requirement
|
65
51
|
requirements:
|
66
|
-
- - "
|
52
|
+
- - "~>"
|
67
53
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
54
|
+
version: '5.8'
|
69
55
|
description: Nidyx generates Objective-C models from JSONSchema files. Use your API's
|
70
56
|
spec to make your client's models in a snap.
|
71
57
|
email: takeshi91k@gmail.com
|
@@ -85,12 +71,14 @@ files:
|
|
85
71
|
- lib/nidyx/generator.rb
|
86
72
|
- lib/nidyx/mapper.rb
|
87
73
|
- lib/nidyx/model.rb
|
74
|
+
- lib/nidyx/objc/constants.rb
|
88
75
|
- lib/nidyx/objc/implementation.rb
|
89
76
|
- lib/nidyx/objc/interface.rb
|
90
77
|
- lib/nidyx/objc/mapper.rb
|
91
78
|
- lib/nidyx/objc/model.rb
|
92
79
|
- lib/nidyx/objc/model_base.rb
|
93
80
|
- lib/nidyx/objc/property.rb
|
81
|
+
- lib/nidyx/objc/utils.rb
|
94
82
|
- lib/nidyx/output.rb
|
95
83
|
- lib/nidyx/parse_constants.rb
|
96
84
|
- lib/nidyx/parser.rb
|
@@ -122,7 +110,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
122
110
|
requirements:
|
123
111
|
- - ">="
|
124
112
|
- !ruby/object:Gem::Version
|
125
|
-
version:
|
113
|
+
version: 2.0.0
|
126
114
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
127
115
|
requirements:
|
128
116
|
- - ">="
|
@@ -130,7 +118,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
130
118
|
version: '0'
|
131
119
|
requirements: []
|
132
120
|
rubyforge_project:
|
133
|
-
rubygems_version: 2.
|
121
|
+
rubygems_version: 2.5.1
|
134
122
|
signing_key:
|
135
123
|
specification_version: 4
|
136
124
|
summary: JSON Schema -> Objective-C models
|