hemera 0.2.0 → 0.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/README.md +4 -3
- data/lib/hemera/command/meta.rb +5 -3
- data/lib/hemera/source/meta.rb +2 -2
- data/lib/hemera/source/meta/image/image_generator.rb +18 -17
- data/lib/hemera/source/meta/image/swift.rb +15 -0
- data/lib/hemera/source/meta/image/template/image.m.erb +1 -1
- data/lib/hemera/source/meta/image/template/image_swift.erb +27 -0
- data/lib/hemera/version.rb +1 -1
- data/resource/meta_command.gif +0 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 510d243743aa15227ce2703b772165e1ad33d0a9ee7b604a3de3be28d66a59fa
|
4
|
+
data.tar.gz: e882a37f54301b1d8b16a213e635ab53c689a22ee19b9eb16360c06b02882c37
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c3e228bf2c48c18229dde396240a0cebf647fc77bd75cd7ef9bf1c1e96393b9579c7f30151a13c11e2e3a913ac77628486e2bce2db6bdd11b0b19c6951e4db79
|
7
|
+
data.tar.gz: e264289a869b5046a7a4c6f240fad0b1842ccc3c5de6d975a27ed9846822820181aed458fb19ea9b3a725a32a421839c29daf396bd4157b94e9dec252b285b5e
|
data/README.md
CHANGED
@@ -7,7 +7,7 @@ Hemera is a development tool.
|
|
7
7
|
use gem
|
8
8
|
|
9
9
|
```
|
10
|
-
gem install
|
10
|
+
gem install hemera
|
11
11
|
```
|
12
12
|
|
13
13
|
## Usage
|
@@ -36,7 +36,7 @@ COMMANDS
|
|
36
36
|
pod, p - cocoapods
|
37
37
|
xcode, x - Xcode
|
38
38
|
```
|
39
|
-
use meta to generate code
|
39
|
+
use meta to generate code
|
40
40
|
```
|
41
41
|
hm meta
|
42
42
|
|
@@ -44,11 +44,12 @@ NAME
|
|
44
44
|
meta - metaprogramming
|
45
45
|
|
46
46
|
SYNOPSIS
|
47
|
-
hm
|
47
|
+
hm meta img <fileName> <path>
|
48
48
|
|
49
49
|
COMMANDS
|
50
50
|
img, i - generate img code
|
51
51
|
```
|
52
|
+

|
52
53
|
|
53
54
|
use xcode subcommand can open/clean workspace
|
54
55
|
|
data/lib/hemera/command/meta.rb
CHANGED
@@ -3,12 +3,14 @@ require 'hemera/tool/log'
|
|
3
3
|
desc 'metaprogramming'
|
4
4
|
command :meta, :m do |c|
|
5
5
|
c.desc 'generate img code'
|
6
|
+
c.switch :o
|
6
7
|
c.command :img, :i do |command|
|
7
|
-
command.action do |_global_options,
|
8
|
+
command.action do |_global_options, options, args|
|
9
|
+
is_swift = !options[:o]
|
8
10
|
if args.count == 1
|
9
|
-
Hemera::Meta.generate(args[0])
|
11
|
+
Hemera::Meta.generate(args[0], is_swift)
|
10
12
|
elsif args.count == 2
|
11
|
-
Hemera::Meta.generate(args[0], args[1])
|
13
|
+
Hemera::Meta.generate(args[0], is_swift, args[1])
|
12
14
|
else
|
13
15
|
Hemera.log <<-LOG
|
14
16
|
只接受文件名及路径参数,路径参数不填默认在当前文件夹,不支持多文件夹路径
|
data/lib/hemera/source/meta.rb
CHANGED
@@ -2,8 +2,8 @@ require 'hemera/source/meta/image/image_generator'
|
|
2
2
|
module Hemera
|
3
3
|
module Meta
|
4
4
|
class << self
|
5
|
-
def generate(file_name, path = '.')
|
6
|
-
Hemera::Generator::ImageGenerator.new(file_name, path).generate
|
5
|
+
def generate(file_name, is_swift, path = '.')
|
6
|
+
Hemera::Generator::ImageGenerator.new(file_name, path).generate is_swift
|
7
7
|
end
|
8
8
|
end
|
9
9
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'erb'
|
2
|
-
|
2
|
+
require_relative 'swift'
|
3
3
|
module Hemera
|
4
4
|
module Generator
|
5
5
|
class ImageModel
|
@@ -59,25 +59,26 @@ module Hemera
|
|
59
59
|
ERB.new(File.read(File.expand_path('template/image.m.erb', __dir__))).result(binding)
|
60
60
|
end
|
61
61
|
|
62
|
-
def generate
|
63
|
-
# if is_swift
|
64
|
-
# puts is_swift
|
65
|
-
# else
|
66
|
-
# end
|
67
|
-
|
62
|
+
def generate(is_swift = true)
|
68
63
|
puts 'generating 😊'
|
64
|
+
if is_swift
|
65
|
+
swift_file_path = @path + '/' + @class_name + '.swift'
|
66
|
+
puts " #{swift_file_path} generating!"
|
67
|
+
File.open(swift_file_path, 'w') do |f|
|
68
|
+
f.puts SwiftImageGenerator.new(@class_name, @images).swift_file
|
69
|
+
end
|
70
|
+
else
|
71
|
+
interface_file_path = @path + '/' + @class_name + '.h'
|
72
|
+
implementent_file_path = @path + '/' + @class_name + '.m'
|
73
|
+
puts " #{interface_file_path} and #{implementent_file_path} generating!"
|
74
|
+
File.open(interface_file_path, 'w') do |f|
|
75
|
+
f.puts interface_file
|
76
|
+
end
|
69
77
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
File.open(interface_file_path, 'w') do |f|
|
74
|
-
f.puts interface_file
|
75
|
-
end
|
76
|
-
|
77
|
-
File.open(implementent_file_path, 'w') do |f|
|
78
|
-
f.puts implementent_file
|
78
|
+
File.open(implementent_file_path, 'w') do |f|
|
79
|
+
f.puts implementent_file
|
80
|
+
end
|
79
81
|
end
|
80
|
-
|
81
82
|
puts 'generating done! 🎉'
|
82
83
|
end
|
83
84
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'erb'
|
2
|
+
module Hemera
|
3
|
+
module Generator
|
4
|
+
class SwiftImageGenerator
|
5
|
+
def initialize(struct_name, images)
|
6
|
+
@struct_name = struct_name
|
7
|
+
@images = images
|
8
|
+
end
|
9
|
+
|
10
|
+
def swift_file
|
11
|
+
ERB.new(File.read(File.expand_path('template/image_swift.erb', __dir__))).result(binding)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
/**
|
2
|
+
* generate from Hemera
|
3
|
+
* https://github.com/JianweiWangs/Hemera.git
|
4
|
+
* JianweiWangs
|
5
|
+
* <%=@struct_name%>.swift
|
6
|
+
*/
|
7
|
+
|
8
|
+
import UIKit
|
9
|
+
struct <%= @struct_name %> {
|
10
|
+
private(set) lazy var dark: UIImage = {
|
11
|
+
return UIImage(named: darkName)!
|
12
|
+
}()
|
13
|
+
private(set) lazy var light: UIImage = {
|
14
|
+
return UIImage(named: lightName)!
|
15
|
+
}()
|
16
|
+
private let darkName: String
|
17
|
+
private let lightName: String
|
18
|
+
private init(darkName: String, lightName: String) {
|
19
|
+
self.darkName = darkName
|
20
|
+
self.lightName = lightName
|
21
|
+
}
|
22
|
+
<% for @image in @images %>
|
23
|
+
<%= "public static var #{@image.name}: #{@struct_name} = {" %>
|
24
|
+
<%= "\treturn #{@struct_name}(darkName: \"#{@image.name_dark}\", lightName:\"#{@image.name_light}\")" %>
|
25
|
+
<%= "}()" %>
|
26
|
+
<% end %>
|
27
|
+
}
|
data/lib/hemera/version.rb
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hemera
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- JianweiWangs
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-11-
|
11
|
+
date: 2018-11-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -115,10 +115,12 @@ files:
|
|
115
115
|
- lib/hemera/source/meta/image/swift.rb
|
116
116
|
- lib/hemera/source/meta/image/template/image.h.erb
|
117
117
|
- lib/hemera/source/meta/image/template/image.m.erb
|
118
|
+
- lib/hemera/source/meta/image/template/image_swift.erb
|
118
119
|
- lib/hemera/source/pod.rb
|
119
120
|
- lib/hemera/source/xcode.rb
|
120
121
|
- lib/hemera/tool/log.rb
|
121
122
|
- lib/hemera/version.rb
|
123
|
+
- resource/meta_command.gif
|
122
124
|
homepage: https://github.com/JianweiWangs/Hemera
|
123
125
|
licenses:
|
124
126
|
- MIT
|