gyro 1.2.0 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|