gyro 1.2.0 → 1.3.0
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/gyro/version.rb +1 -1
- data/lib/templates/android-kotlin/README.md +54 -0
- data/lib/templates/android-kotlin/entity.liquid +52 -0
- data/lib/templates/android-kotlin/entity_filename.liquid +1 -0
- data/lib/templates/android-kotlin/enum.liquid +29 -0
- data/lib/templates/android-kotlin/enum_filename.liquid +1 -0
- data/lib/templates/android-kotlin/inc/_attributes_enum.liquid +13 -0
- data/lib/templates/android-kotlin/inc/_attributes_properties.liquid +60 -0
- data/lib/templates/android-kotlin/inc/_enum_getter_setter.liquid +13 -0
- data/lib/templates/android-kotlin/inc/_primitives.liquid +30 -0
- data/lib/templates/android-kotlin/inc/_relationships_enum.liquid +10 -0
- data/lib/templates/android-kotlin/inc/_relationships_properties.liquid +27 -0
- data/lib/templates/android-kotlin/inc/_type_converter.liquid +22 -0
- data/lib/templates/android-kotlin/inc/_type_defaults.liquid +22 -0
- data/lib/templates/android-kotlin/inc/_type_primitives.liquid +22 -0
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2fc533a0c50dcdf240cbd07626f0ea83dbaea4f3
|
4
|
+
data.tar.gz: 0ac64d46fb1bd357f964396e3961359231ba62cc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc2256f1fefc840d738345bfa2dfecd61020c0f3795c937f1a0bbcd458c7b2348e54df5f99e0b1e524aaa8f0400d14abddf7b105d4079a7fa8c8c3ba5bd97693
|
7
|
+
data.tar.gz: 3705920540f76e3d0c53fb2c311d500b95f412de79370ec40212d7fe32d9f6f8e6dad410524f1db411d991727a532273dc82186621d9399efbbf22b523bcdec0
|
data/lib/gyro/version.rb
CHANGED
@@ -0,0 +1,54 @@
|
|
1
|
+
# Android Template Information
|
2
|
+
|
3
|
+
| Name | Description |
|
4
|
+
| --------- | ----------------- |
|
5
|
+
| Folder name | templates/android-kotlin |
|
6
|
+
| Invocation example | `gyro -m <model> -t android-kotlin …` |
|
7
|
+
| Language | Kotlin |
|
8
|
+
|
9
|
+
If you want to use this template you need to work with `Realm`.
|
10
|
+
|
11
|
+
# Caracteristics
|
12
|
+
|
13
|
+
In this template you have additional parameters to inject constants :
|
14
|
+
|
15
|
+
- package (ex : **com.gyro.model.realm**)
|
16
|
+
|
17
|
+
# Usage
|
18
|
+
|
19
|
+
|
20
|
+
Package exemple :
|
21
|
+
|
22
|
+
```bash
|
23
|
+
gyro -m <model> -t android-kotlin -o <output> --param package:com.gyro.model.realm
|
24
|
+
```
|
25
|
+
|
26
|
+
|
27
|
+
# Generated Code
|
28
|
+
|
29
|
+
`FidelityCard.kt`:
|
30
|
+
|
31
|
+
```kotlin
|
32
|
+
package com.gyro.model.realm
|
33
|
+
|
34
|
+
/* DO NOT EDIT | Generated by gyro */
|
35
|
+
|
36
|
+
import io.realm.RealmObject
|
37
|
+
|
38
|
+
class FidelityCard: RealmObject() {
|
39
|
+
|
40
|
+
object Attributes {
|
41
|
+
const val IDENTIFIER: String = "identifier";
|
42
|
+
const val POINTS: String = "points";
|
43
|
+
}
|
44
|
+
|
45
|
+
object Relationships {
|
46
|
+
const val USER: String = "user";
|
47
|
+
}
|
48
|
+
|
49
|
+
private var identifier: Short = 0;
|
50
|
+
private var points: Integer = 0;
|
51
|
+
private var user: User? = null;
|
52
|
+
}
|
53
|
+
```
|
54
|
+
|
@@ -0,0 +1,52 @@
|
|
1
|
+
{%- if params.package.size > 0 -%}
|
2
|
+
package {{ params.package }}
|
3
|
+
{%- endif %}
|
4
|
+
|
5
|
+
/* DO NOT EDIT | Generated by gyro */
|
6
|
+
{{ empty_line }}
|
7
|
+
|
8
|
+
{%- comment %} ******* IMPORTS ******* {% endcomment -%}
|
9
|
+
{%- if entity.has_json_key_path == true %}
|
10
|
+
import com.google.gson.annotations.SerializedName
|
11
|
+
{% comment %} *** Empty line *** {% endcomment %}
|
12
|
+
{%- endif %}
|
13
|
+
{%- if entity.has_date_attribute == true %}
|
14
|
+
import java.util.Date
|
15
|
+
{%- endif %}
|
16
|
+
{%- if entity.has_list_relationship == true %}
|
17
|
+
import java.util.List
|
18
|
+
{%- endif %}
|
19
|
+
{%- if entity.has_date_attribute == true or entity.has_list_relationship == true %}
|
20
|
+
{{ empty_line }}
|
21
|
+
{%- endif %}
|
22
|
+
{%- if entity.has_list_attributes == true %}
|
23
|
+
import io.realm.RealmList
|
24
|
+
{%- endif %}
|
25
|
+
import io.realm.RealmObject
|
26
|
+
{%- if entity.has_ignored == true %}
|
27
|
+
import io.realm.annotations.Ignore
|
28
|
+
{%- endif %}
|
29
|
+
{%- if entity.has_indexed_attributes == true %}
|
30
|
+
import io.realm.annotations.Index
|
31
|
+
{%- endif %}
|
32
|
+
{%- if entity.has_primary_key == true %}
|
33
|
+
import io.realm.annotations.PrimaryKey
|
34
|
+
{%- endif %}
|
35
|
+
{%- if entity.has_required == true %}
|
36
|
+
import io.realm.annotations.Required
|
37
|
+
{%- endif %}
|
38
|
+
|
39
|
+
{% if entity.comment.size > 0 -%}
|
40
|
+
/**
|
41
|
+
* {{ entity.comment }}
|
42
|
+
*/
|
43
|
+
{% endif %}
|
44
|
+
{%- assign primary_key = entity.identity_attribute -%}
|
45
|
+
open class {{ entity.name }} : RealmObject() {
|
46
|
+
|
47
|
+
{%- include 'inc/attributes_enum' %}
|
48
|
+
{%- include 'inc/relationships_enum' %}
|
49
|
+
{% include 'inc/attributes_properties' %}
|
50
|
+
{%- include 'inc/relationships_properties' %}
|
51
|
+
{%- include 'inc/enum_getter_setter' %}
|
52
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{{params.prefix}}{{name}}.kt
|
@@ -0,0 +1,29 @@
|
|
1
|
+
{%- if attribute.enum_type.size > 0 -%}
|
2
|
+
|
3
|
+
{%- if params.package.size > 0 -%}
|
4
|
+
package {{ params.package }}
|
5
|
+
{%- endif %}
|
6
|
+
|
7
|
+
/* DO NOT EDIT | Generated by gyro */
|
8
|
+
{{ empty_line }}
|
9
|
+
|
10
|
+
enum class {{ attribute.enum_type }}(val jsonValue: String) {
|
11
|
+
{% for value in attribute.enum_values %}
|
12
|
+
{% if attribute.enum_values.size > 0 %}
|
13
|
+
{%- assign jsonKey = value -%}
|
14
|
+
{%- if attribute.json_values.size > 0 and attribute.json_values[forloop.index0] -%}
|
15
|
+
{%- assign jsonKey = attribute.json_values[forloop.index0] -%}
|
16
|
+
{%- endif -%}
|
17
|
+
{{ value | snake_case | upcase | strip }}("{{ jsonKey }}")
|
18
|
+
{%- if forloop.last == true -%};{%- else -%},{%- endif -%}
|
19
|
+
{%- endif -%}
|
20
|
+
{%- endfor %}
|
21
|
+
|
22
|
+
companion object {
|
23
|
+
@JvmStatic
|
24
|
+
fun get(jsonValue: String): {{ attribute.enum_type }}? {
|
25
|
+
return {{ attribute.enum_type }}.values().firstOrNull { it.jsonValue == jsonValue }
|
26
|
+
}
|
27
|
+
}
|
28
|
+
}
|
29
|
+
{%- endif %}
|
@@ -0,0 +1 @@
|
|
1
|
+
{{params.prefix}}{{name}}.kt
|
@@ -0,0 +1,13 @@
|
|
1
|
+
{%- if entity.attributes.size > 0 %}
|
2
|
+
|
3
|
+
object Attributes {
|
4
|
+
{%- for attribute in entity.attributes -%}
|
5
|
+
{%- if attribute.realm_ignored == false or attribute.read_only == false -%}
|
6
|
+
{%- if attribute.comment.size > 0 %}
|
7
|
+
// {{ attribute.comment }}
|
8
|
+
{%- endif %}
|
9
|
+
const val {{ attribute.name | snake_case | upcase }}: String = "{{ attribute.name }}"
|
10
|
+
{%- endif -%}
|
11
|
+
{%- endfor %}
|
12
|
+
}
|
13
|
+
{%- endif -%}
|
@@ -0,0 +1,60 @@
|
|
1
|
+
{% for attribute in entity.attributes -%}
|
2
|
+
{%- if attribute.realm_read_only.size == 0 -%}
|
3
|
+
{%- comment %} ******* CONVERT TYPE CAPTURE ******* {% endcomment -%}
|
4
|
+
{%- capture convert_type -%}
|
5
|
+
{%- if attribute.realm_read_only.size == 0 and attribute.enum_type.size > 0 -%}
|
6
|
+
String
|
7
|
+
{%- else -%}
|
8
|
+
{%- include 'inc/type_converter' -%}
|
9
|
+
{%- endif -%}
|
10
|
+
{%- endcapture -%}
|
11
|
+
|
12
|
+
{%- capture is_primitive %}
|
13
|
+
{%- if attribute.realm_read_only.size == 0 and attribute.enum_type.size > 0 -%}
|
14
|
+
false
|
15
|
+
{%- else -%}
|
16
|
+
{%- include 'inc/type_primitives' -%}
|
17
|
+
{%- endif -%}
|
18
|
+
{%- endcapture -%}
|
19
|
+
|
20
|
+
{%- capture default_value %}
|
21
|
+
{%- if attribute.default.size > 0 %} =
|
22
|
+
{%- if convert_type == "Boolean" %}
|
23
|
+
{%- if attribute.default == "YES" %} true {%- else %} false {%- endif %}
|
24
|
+
{%- elsif convert_type == "String" %} "{{ attribute.default }}"
|
25
|
+
{%- else %} {{ attribute.default }}
|
26
|
+
{%- endif %}
|
27
|
+
{%- elsif attribute.enum_type.size > 0 %} =
|
28
|
+
{%- if attribute.optional == true %} null
|
29
|
+
{%- else %} "{{ attribute.enum_values.first }}"
|
30
|
+
{%- endif -%}
|
31
|
+
{%- else %} =
|
32
|
+
{%- if attribute.optional == true and is_primitive == "false" %} null
|
33
|
+
{%- else %} {% include 'inc/type_defaults' -%}
|
34
|
+
{%- endif %}
|
35
|
+
{%- endif %}
|
36
|
+
{%- endcapture %}
|
37
|
+
|
38
|
+
{%- capture nullable_type %}
|
39
|
+
{%- if attribute.optional == true %}?{%- endif -%}
|
40
|
+
{%- endcapture %}
|
41
|
+
|
42
|
+
{%- assign name = attribute.name -%}
|
43
|
+
{%- if name == primary_key %}
|
44
|
+
@PrimaryKey
|
45
|
+
{%- endif -%}
|
46
|
+
{%- if attribute.optional == false and attribute.realm_ignored == false and name != primary_key and is_primitive == "false" %}
|
47
|
+
@Required
|
48
|
+
{%- endif -%}
|
49
|
+
{%- if attribute.indexed == true %}
|
50
|
+
@Index
|
51
|
+
{%- endif -%}
|
52
|
+
{%- if attribute.realm_ignored == true %}
|
53
|
+
@Ignore
|
54
|
+
{%- endif -%}
|
55
|
+
{%- if attribute.json_key_path.size > 0 %}
|
56
|
+
@SerializedName("{{ attribute.json_key_path }}")
|
57
|
+
{%- endif %}
|
58
|
+
var {{ name }}: {{ convert_type }}{{ nullable_type }}{{ default_value }}
|
59
|
+
{%- endif -%}
|
60
|
+
{%- endfor -%}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
{%- for attribute in entity.attributes %}
|
2
|
+
|
3
|
+
{%- if attribute.realm_read_only.size == 0 and attribute.enum_type.size > 0 %}
|
4
|
+
{%- assign name = attribute.name %}
|
5
|
+
|
6
|
+
fun get{{ name | titleize }}Enum(): {{ attribute.enum_type }}? = {{ attribute.enum_type }}.get({{ name }})
|
7
|
+
|
8
|
+
fun set{{ name | titleize }}Enum({{ name }}: {{ attribute.enum_type }}) {
|
9
|
+
this.{{ name }} = {{ name }}.jsonValue
|
10
|
+
}
|
11
|
+
{%- endif -%}
|
12
|
+
|
13
|
+
{%- endfor -%}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
{%- capture convert_type %}
|
2
|
+
{%- if attribute.realm_read_only.size == 0 and attribute.enum_type.size > 0 -%}
|
3
|
+
String
|
4
|
+
{%- else -%}
|
5
|
+
{%- if params.use_wrappers.size > 0 and attribute.optional == true -%}
|
6
|
+
{%- include 'inc/wrapper_type_converter' -%}
|
7
|
+
{%- else -%}
|
8
|
+
{%- include 'inc/type_converter' -%}
|
9
|
+
{%- endif %}
|
10
|
+
{%- endif %}
|
11
|
+
{%- endcapture %}
|
12
|
+
|
13
|
+
{%- case convert_type -%}
|
14
|
+
{%- when 'integer_16' or 'short' -%}
|
15
|
+
true
|
16
|
+
{%- when 'integer_32' or 'int' -%}
|
17
|
+
true
|
18
|
+
{%- when 'integer_64' or 'long' -%}
|
19
|
+
true
|
20
|
+
{%- when 'double' or 'decimal' -%}
|
21
|
+
true
|
22
|
+
{%- when 'float' -%}
|
23
|
+
true
|
24
|
+
{%- when 'boolean' -%}
|
25
|
+
true
|
26
|
+
{%- when 'binary' -%}
|
27
|
+
true
|
28
|
+
{%- else -%}
|
29
|
+
false
|
30
|
+
{%- endcase -%}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
{%- if entity.relationships.size > 0 and entity.has_only_inverse == false %}
|
2
|
+
|
3
|
+
object Relationships {
|
4
|
+
{%- for relationship in entity.relationships -%}
|
5
|
+
{%- if relationship.inverse == false %}
|
6
|
+
const val {{ relationship.name | snake_case | upcase }}: String = "{{ relationship.name }}"
|
7
|
+
{%- endif -%}
|
8
|
+
{%- endfor %}
|
9
|
+
}
|
10
|
+
{%- endif -%}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
{%- for relationship in entity.relationships -%}
|
2
|
+
{%- capture relationship_type -%}
|
3
|
+
{%- if relationship.realm_read_only.size == 0 and relationship.enum_type.size > 0 -%}
|
4
|
+
String
|
5
|
+
{%- else -%}
|
6
|
+
{%- if relationship.destination.size == 0 -%}
|
7
|
+
{%- if relationship.type != "to_many" -%}
|
8
|
+
{{ relationship.inverse_type }}
|
9
|
+
{%- else -%}
|
10
|
+
RealmList<{{ relationship.inverse_type }}>
|
11
|
+
{%- endif -%}
|
12
|
+
{%- else -%}
|
13
|
+
List<{{ relationship.destination }}>
|
14
|
+
{%- endif -%}
|
15
|
+
{%- endif -%}
|
16
|
+
{%- endcapture -%}
|
17
|
+
|
18
|
+
{%- if relationship.inverse == false -%}
|
19
|
+
{%- if relationship.realm_ignored == true %}
|
20
|
+
@Ignore
|
21
|
+
{%- endif -%}
|
22
|
+
{%- if relationship.json_key_path.size > 0 %}
|
23
|
+
@SerializedName("{{ relationship.json_key_path }}")
|
24
|
+
{%- endif %}
|
25
|
+
var {{ relationship.name }}: {{ relationship_type }}? = null
|
26
|
+
{%- endif -%}
|
27
|
+
{%- endfor -%}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
{%- case attribute.type -%}
|
2
|
+
{%- when 'integer_16' -%}
|
3
|
+
Short
|
4
|
+
{%- when 'integer_32' -%}
|
5
|
+
Int
|
6
|
+
{%- when 'integer_64' -%}
|
7
|
+
Long
|
8
|
+
{%- when 'double' or 'decimal' -%}
|
9
|
+
Double
|
10
|
+
{%- when 'float' -%}
|
11
|
+
Float
|
12
|
+
{%- when 'string' -%}
|
13
|
+
String
|
14
|
+
{%- when 'boolean' -%}
|
15
|
+
Boolean
|
16
|
+
{%- when 'date' -%}
|
17
|
+
Date
|
18
|
+
{%- when 'binary' -%}
|
19
|
+
ByteArray
|
20
|
+
{%- else -%}
|
21
|
+
String
|
22
|
+
{%- endcase -%}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
{%- case attribute.type -%}
|
2
|
+
{%- when 'integer_16' -%}
|
3
|
+
0
|
4
|
+
{%- when 'integer_32' -%}
|
5
|
+
0
|
6
|
+
{%- when 'integer_64' -%}
|
7
|
+
0l
|
8
|
+
{%- when 'double' or 'decimal' -%}
|
9
|
+
0.0
|
10
|
+
{%- when 'float' -%}
|
11
|
+
0.0f
|
12
|
+
{%- when 'string' -%}
|
13
|
+
""
|
14
|
+
{%- when 'boolean' -%}
|
15
|
+
false
|
16
|
+
{%- when 'date' -%}
|
17
|
+
Date()
|
18
|
+
{%- when 'binary' -%}
|
19
|
+
ByteArray()
|
20
|
+
{%- else -%}
|
21
|
+
""
|
22
|
+
{%- endcase -%}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
{%- case attribute.type -%}
|
2
|
+
{%- when 'integer_16' -%}
|
3
|
+
true
|
4
|
+
{%- when 'integer_32' -%}
|
5
|
+
true
|
6
|
+
{%- when 'integer_64' -%}
|
7
|
+
true
|
8
|
+
{%- when 'double' or 'decimal' -%}
|
9
|
+
true
|
10
|
+
{%- when 'float' -%}
|
11
|
+
true
|
12
|
+
{%- when 'string' -%}
|
13
|
+
false
|
14
|
+
{%- when 'boolean' -%}
|
15
|
+
true
|
16
|
+
{%- when 'date' -%}
|
17
|
+
false
|
18
|
+
{%- when 'binary' -%}
|
19
|
+
false
|
20
|
+
{%- else -%}
|
21
|
+
false
|
22
|
+
{%- endcase -%}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gyro
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- NijiDigital
|
@@ -80,6 +80,20 @@ files:
|
|
80
80
|
- lib/gyro/parser/xcdatamodel/xcdatamodel.rb
|
81
81
|
- lib/gyro/template.rb
|
82
82
|
- lib/gyro/version.rb
|
83
|
+
- lib/templates/android-kotlin/README.md
|
84
|
+
- lib/templates/android-kotlin/entity.liquid
|
85
|
+
- lib/templates/android-kotlin/entity_filename.liquid
|
86
|
+
- lib/templates/android-kotlin/enum.liquid
|
87
|
+
- lib/templates/android-kotlin/enum_filename.liquid
|
88
|
+
- lib/templates/android-kotlin/inc/_attributes_enum.liquid
|
89
|
+
- lib/templates/android-kotlin/inc/_attributes_properties.liquid
|
90
|
+
- lib/templates/android-kotlin/inc/_enum_getter_setter.liquid
|
91
|
+
- lib/templates/android-kotlin/inc/_primitives.liquid
|
92
|
+
- lib/templates/android-kotlin/inc/_relationships_enum.liquid
|
93
|
+
- lib/templates/android-kotlin/inc/_relationships_properties.liquid
|
94
|
+
- lib/templates/android-kotlin/inc/_type_converter.liquid
|
95
|
+
- lib/templates/android-kotlin/inc/_type_defaults.liquid
|
96
|
+
- lib/templates/android-kotlin/inc/_type_primitives.liquid
|
83
97
|
- lib/templates/android/README.md
|
84
98
|
- lib/templates/android/entity.liquid
|
85
99
|
- lib/templates/android/entity_filename.liquid
|