hemera 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f672cbb8d185ddc997c9ae2be5147abbceb5fb57995e03212741902ca703606f
4
- data.tar.gz: 1328988b2462e8376f74e877c8579aa85efe33ab4684da8e9222cab334b4e080
3
+ metadata.gz: 510d243743aa15227ce2703b772165e1ad33d0a9ee7b604a3de3be28d66a59fa
4
+ data.tar.gz: e882a37f54301b1d8b16a213e635ab53c689a22ee19b9eb16360c06b02882c37
5
5
  SHA512:
6
- metadata.gz: 002f1b2303b4010c399b06ada618f07f6d77bab8e2a1ddad5f6efd6aa93d0992f60068995bd52e868ea5604a6cf9ef00f00d24afb894091faa2404b13df1fb9a
7
- data.tar.gz: f9594ca651300bbe80e2fb0a5f2193caabf93ddd01477d26bed0002b5769539ba03622fc742b1ba15401704171b7c7d4724e22d1ce49026b120242186a1e750c
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 Hemera
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 in future, not support for the time being.
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 [global options] meta img
47
+ hm meta img <fileName> <path>
48
48
 
49
49
  COMMANDS
50
50
  img, i - generate img code
51
51
  ```
52
+ ![command_meta](resource/meta_command.gif)
52
53
 
53
54
  use xcode subcommand can open/clean workspace
54
55
 
@@ -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, _options, args|
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
  只接受文件名及路径参数,路径参数不填默认在当前文件夹,不支持多文件夹路径
@@ -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
- require 'pathname'
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 # (is_swift)
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
- interface_file_path = @path + '/' + @class_name + '.h'
71
- implementent_file_path = @path + '/' + @class_name + '.m'
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
@@ -2,7 +2,7 @@
2
2
  * generate from Hemera
3
3
  * https://github.com/JianweiWangs/Hemera.git
4
4
  * JianweiWangs
5
- * <%=@class_name%>.h
5
+ * <%=@class_name%>.m
6
6
  */
7
7
 
8
8
  <%= "#import \"#{@class_name}.h\"" %>
@@ -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
+ }
@@ -1,3 +1,3 @@
1
1
  module Hemera
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
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.2.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-13 00:00:00.000000000 Z
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