metamodel 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
![
|
107
|
+
![integrate-metamodel-framework](images/integrate-metamodel-framework.png)
|
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: {}
|