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 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