metamodel 0.0.3 → 0.0.4
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/README.md +11 -8
- data/lib/metamodel/command/build.rb +17 -5
- data/lib/metamodel/command/build/renderer.rb +1 -1
- data/lib/metamodel/config.rb +1 -1
- data/lib/metamodel/model/cocoa_property.rb +1 -1
- data/lib/metamodel/template/static_methods.swift.erb +3 -7
- data/lib/metamodel/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a0ac592ba54f109f9c4dd66e14386c35651c7fe5
|
4
|
+
data.tar.gz: 428fc1d8078aec4812f2b8053757a5a730f8a01f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b0a5581fb5a1551cca3ed945943cfcf53f7489f3417d1711dd7091aaa01c0d6841331915915a0d3ef327a8bc15f4f4a464923188bf4278a17e9959a488372b9a
|
7
|
+
data.tar.gz: d67365c7b4b34688c787d5bdf86ea0eab19256c7d34ea875d46686051de1b3d5b7754e54ba7a5aee7fc152c21c1497c8e6c0b1bea50beae99075e010ae4a8b3d
|
data/README.md
CHANGED
@@ -87,21 +87,24 @@ Edit meta file using vim, Emacs or other editor and run `meta build`.
|
|
87
87
|
```shell
|
88
88
|
$ meta build
|
89
89
|
|
90
|
-
Building MetaModel project
|
91
|
-
|
92
|
-
Cloning MetaModel project into `./MetaModel` folder
|
93
|
-
Using `./MetaModel/MetaModel.xcodeproj` to build module
|
90
|
+
Building MetaModel.framework in project
|
91
|
+
Existing project `./metamodel/MetaModel.xcodeproj`
|
94
92
|
|
95
93
|
Analyzing meta files
|
96
|
-
-> Resolving `user.rb`
|
94
|
+
-> Resolving `user.rb`
|
97
95
|
|
98
96
|
Generating model files
|
99
|
-
-> Using User.swift file
|
97
|
+
-> Using User.swift file
|
98
|
+
|
99
|
+
Generating MetaModel.framework
|
100
|
+
-> MetaModel.framework located in current folder
|
101
|
+
|
102
|
+
[!] Please drag MetaModel.framework into Linked Frameworks and Libraries section
|
100
103
|
```
|
101
104
|
|
102
|
-
This command
|
105
|
+
This command build a `MetaModel.framework` in project root folder, you need to add this framework to **Linked frameworks and Libraries** phrase which located in `General` tab.
|
103
106
|
|
104
|
-

|
105
108
|
|
106
109
|
Add this line of code in your project.
|
107
110
|
|
@@ -18,21 +18,23 @@ module MetaModel
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def run
|
21
|
-
UI.section "Building MetaModel project" do
|
21
|
+
UI.section "Building MetaModel.framework in project" do
|
22
22
|
clone_project
|
23
23
|
parse_template
|
24
24
|
render_model_files
|
25
25
|
update_initialize_method
|
26
|
+
build_metamodel_framework
|
26
27
|
end
|
28
|
+
UI.notice "Please drag MetaModel.framework into Linked Frameworks and Libraries phrase.\n"
|
27
29
|
end
|
28
30
|
|
29
31
|
def clone_project
|
30
32
|
if File.exist? config.metamodel_xcode_project
|
31
33
|
UI.message "Existing project `#{config.metamodel_xcode_project}`"
|
32
34
|
else
|
33
|
-
UI.section "Cloning MetaModel project into `./
|
35
|
+
UI.section "Cloning MetaModel project into `./metamodel` folder" do
|
34
36
|
Git.clone(config.metamodel_template_uri, 'MetaModel')
|
35
|
-
UI.message "Using `./
|
37
|
+
UI.message "Using `./metamodel/MetaModel.xcodeproj` to build module"
|
36
38
|
end
|
37
39
|
end
|
38
40
|
end
|
@@ -47,14 +49,24 @@ module MetaModel
|
|
47
49
|
Renderer.render(@models)
|
48
50
|
end
|
49
51
|
end
|
50
|
-
|
51
52
|
def update_initialize_method
|
52
53
|
template = File.read File.expand_path(File.join(File.dirname(__FILE__), "../template/metamodel.swift.erb"))
|
53
54
|
result = ErbalT::render_from_hash(template, { :models => @models })
|
54
|
-
model_path = Pathname.new("./
|
55
|
+
model_path = Pathname.new("./metamodel/MetaModel/MetaModel.swift")
|
55
56
|
File.write model_path, result
|
56
57
|
end
|
57
58
|
|
59
|
+
def build_metamodel_framework
|
60
|
+
UI.section "Generating MetaModel.framework" do
|
61
|
+
command = "xcodebuild -project metamodel/MetaModel.xcodeproj -scheme MetaModel > /dev/null 2>&1"
|
62
|
+
result = system command
|
63
|
+
raise Informative, 'Building framework failed.' unless result
|
64
|
+
result = system "cp -rf MetaModel/Build/Products/Debug-iphoneos/MetaModel.framework #{config.installation_root}"
|
65
|
+
raise Informative, 'Copy framework to current folder failed.' unless result
|
66
|
+
UI.message "-> ".green + "MetaModel.framework located in current folder"
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
58
70
|
def validate!
|
59
71
|
super
|
60
72
|
raise Informative, 'No meta folder in directory' unless config.meta_path_in_dir(Pathname.pwd)
|
@@ -45,7 +45,7 @@ module MetaModel
|
|
45
45
|
result = templates.map { |template|
|
46
46
|
ErbalT::render_from_hash(template, { :model => model })
|
47
47
|
}.join("\n")
|
48
|
-
model_path = Pathname.new("./
|
48
|
+
model_path = Pathname.new("./metamodel/MetaModel/#{model.name}.swift")
|
49
49
|
File.write model_path, result
|
50
50
|
|
51
51
|
file_refs << models_group.new_reference(Pathname.new("MetaModel/#{model.name}.swift"))
|
data/lib/metamodel/config.rb
CHANGED
@@ -19,18 +19,14 @@ public extension <%= model.name %> {
|
|
19
19
|
|
20
20
|
columnsSQL.append(.id)
|
21
21
|
valuesSQL.append(id)
|
22
|
-
|
23
22
|
<% model.properties_exclude_id.each do |property| %><% if property.is_optional? %>
|
24
23
|
<%= """if let #{property.key} = #{property.key} {
|
25
24
|
columnsSQL.append(.#{property.key})
|
26
25
|
valuesSQL.append(#{property.key})
|
27
|
-
}
|
28
|
-
""" %>
|
29
|
-
<% else %>
|
26
|
+
}""" %><% else %>
|
30
27
|
<%= """columnsSQL.append(.#{property.key})
|
31
|
-
|
32
|
-
""" %>
|
33
|
-
<% end %><% end %>
|
28
|
+
valuesSQL.append(#{property.key})
|
29
|
+
""" %><% end %><% end %>
|
34
30
|
|
35
31
|
let insertSQL = "INSERT INTO \(tableName.unwrapped) (\(columnsSQL.map { $0.rawValue }.joinWithSeparator(", "))) VALUES (\(valuesSQL.map { $0.unwrapped }.joinWithSeparator(", ")))"
|
36
32
|
guard let _ = executeSQL(insertSQL) else { return nil }
|
data/lib/metamodel/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metamodel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Draveness Zuo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-09-
|
11
|
+
date: 2016-09-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: claide
|
@@ -163,7 +163,7 @@ files:
|
|
163
163
|
- lib/metamodel/template/static_methods.swift.erb
|
164
164
|
- lib/metamodel/user_interface.rb
|
165
165
|
- lib/metamodel/version.rb
|
166
|
-
homepage: https://github.com/
|
166
|
+
homepage: https://github.com/MModel/MetaModel
|
167
167
|
licenses:
|
168
168
|
- MIT
|
169
169
|
metadata: {}
|