hemera 0.4.0 → 0.5.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/.travis.yml +1 -1
- data/Gemfile.lock +2 -2
- data/README.md +2 -1
- data/lib/hemera/source/meta/image/image_generator.rb +7 -6
- data/lib/hemera/source/meta/image/objc.rb +2 -2
- data/lib/hemera/source/meta/image/swift.rb +2 -1
- data/lib/hemera/source/meta/image/template/image.m.erb +18 -3
- data/lib/hemera/source/meta/image/template/image_swift.erb +20 -3
- data/lib/hemera/version.rb +1 -1
- metadata +9 -10
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 74c81fc14b8105c9152c240b0fd1a86789aa5a98323cc6927567787096db32a5
         | 
| 4 | 
            +
              data.tar.gz: ca196b1b0c7048a12bff91511a5a92d9c0e22fdc6a5d627d06bccd153440ccc3
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: a6ad4566d9f99d7ac4b6c20b7127a36b87c1eacf19f84aecdf58528a681b2c659d82264d1f2a736c20ec7fc78c54d44d142086989fbee4832a8d9bc68a6aee59
         | 
| 7 | 
            +
              data.tar.gz: 0bc05792d9f0149db8c9b3cf97073a340a4d8e007e389603cc5faf63932dd28d4928b0450a824a849d82c85724443e5e034e6c99bd929b116b884058ca560d24
         | 
    
        data/.travis.yml
    CHANGED
    
    
    
        data/Gemfile.lock
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -1,6 +1,7 @@ | |
| 1 1 | 
             
            # Hemera
         | 
| 2 2 |  | 
| 3 3 | 
             
            [](https://discordapp.com/invite/RF2rWZ)
         | 
| 4 | 
            +
            [](https://badge.fury.io/rb/hemera)
         | 
| 4 5 | 
             
            [](https://travis-ci.org/JianweiWangs/Hemera)
         | 
| 5 6 | 
             
            [](https://codecov.io/gh/JianweiWangs/Hemera)
         | 
| 6 7 |  | 
| @@ -55,7 +56,7 @@ SYNOPSIS | |
| 55 56 | 
             
            COMMANDS
         | 
| 56 57 | 
             
                img, i - generate img code
         | 
| 57 58 | 
             
            ```
         | 
| 58 | 
            -
            
         | 
| 59 60 |  | 
| 60 61 | 
             
            use xcode subcommand can open/clean workspace
         | 
| 61 62 |  | 
| @@ -21,6 +21,8 @@ module Hemera | |
| 21 21 | 
             
                    @class_name = output_file_name
         | 
| 22 22 | 
             
                    @path = path
         | 
| 23 23 | 
             
                    @images = image_model_of_names
         | 
| 24 | 
            +
                    @bundle = path[/[A-Z, a-z, 0-9]+(?=\.bundle)/]
         | 
| 25 | 
            +
                    @bundle_path = path.gsub(@bundle + '.bundle', '') if @bundle
         | 
| 24 26 | 
             
                  end
         | 
| 25 27 |  | 
| 26 28 | 
             
                  def find_paths_of_png(path = @path)
         | 
| @@ -52,18 +54,17 @@ module Hemera | |
| 52 54 | 
             
                  end
         | 
| 53 55 |  | 
| 54 56 | 
             
                  def generate(is_swift = true)
         | 
| 55 | 
            -
                    puts 'generating 😊'
         | 
| 56 57 | 
             
                    if is_swift
         | 
| 57 | 
            -
                      swift_file_path = @path + '/' | 
| 58 | 
            +
                      swift_file_path = (@bundle_path ? @bundle_path : @path + '/')  + @class_name + '.swift'
         | 
| 58 59 | 
             
                      puts " #{swift_file_path} generating!"
         | 
| 59 60 | 
             
                      File.open(swift_file_path, 'w') do |f|
         | 
| 60 | 
            -
                        f.puts SwiftImageGenerator.new(@class_name, @images).swift_file
         | 
| 61 | 
            +
                        f.puts SwiftImageGenerator.new(@class_name, @images, @bundle).swift_file
         | 
| 61 62 | 
             
                      end
         | 
| 62 63 | 
             
                    else
         | 
| 63 | 
            -
                      interface_file_path = @path + '/' | 
| 64 | 
            -
                      implementent_file_path = @path + '/' + @class_name + '.m'
         | 
| 64 | 
            +
                      interface_file_path = (@bundle_path ? @bundle_path : @path + '/')  + @class_name + '.h'
         | 
| 65 | 
            +
                      implementent_file_path = (@bundle_path ? @bundle_path : @path + '/') + @class_name + '.m'
         | 
| 65 66 | 
             
                      puts " #{interface_file_path} and #{implementent_file_path} generating!"
         | 
| 66 | 
            -
                      objc_image_generator = ObjCImageGenerator.new(@class_name, @images)
         | 
| 67 | 
            +
                      objc_image_generator = ObjCImageGenerator.new(@class_name, @images, @bundle)
         | 
| 67 68 | 
             
                      File.open(interface_file_path, 'w') do |f|
         | 
| 68 69 | 
             
                        f.puts objc_image_generator.interface_file
         | 
| 69 70 | 
             
                      end
         | 
| @@ -2,9 +2,10 @@ require 'erb' | |
| 2 2 | 
             
            module Hemera
         | 
| 3 3 | 
             
              module Generator
         | 
| 4 4 | 
             
                class ObjCImageGenerator
         | 
| 5 | 
            -
                  def initialize(class_name, images)
         | 
| 5 | 
            +
                  def initialize(class_name, images, bundle_name)
         | 
| 6 6 | 
             
                    @class_name = class_name
         | 
| 7 7 | 
             
                    @images = images
         | 
| 8 | 
            +
                    @bundle_name = bundle_name
         | 
| 8 9 | 
             
                  end
         | 
| 9 10 |  | 
| 10 11 | 
             
                  def interface_file
         | 
| @@ -14,7 +15,6 @@ module Hemera | |
| 14 15 | 
             
                  def implementent_file
         | 
| 15 16 | 
             
                    ERB.new(File.read(File.expand_path('template/image.m.erb', __dir__))).result(binding)
         | 
| 16 17 | 
             
                  end
         | 
| 17 | 
            -
             | 
| 18 18 | 
             
                end
         | 
| 19 19 | 
             
              end
         | 
| 20 20 | 
             
            end
         | 
| @@ -2,9 +2,10 @@ require 'erb' | |
| 2 2 | 
             
            module Hemera
         | 
| 3 3 | 
             
              module Generator
         | 
| 4 4 | 
             
                class SwiftImageGenerator
         | 
| 5 | 
            -
                  def initialize(struct_name, images)
         | 
| 5 | 
            +
                  def initialize(struct_name, images, bundle_name)
         | 
| 6 6 | 
             
                    @struct_name = struct_name
         | 
| 7 7 | 
             
                    @images = images
         | 
| 8 | 
            +
                    @bundle_name = bundle_name
         | 
| 8 9 | 
             
                  end
         | 
| 9 10 |  | 
| 10 11 | 
             
                  def swift_file
         | 
| @@ -7,6 +7,21 @@ | |
| 7 7 |  | 
| 8 8 | 
             
            <%= "#import \"#{@class_name}.h\"" %>
         | 
| 9 9 |  | 
| 10 | 
            +
            <%= "@implementation UIImage (#{@class_name})" %>
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            <%= "+ (UIImage *)#{@class_name.downcase}_imageNamed:(NSString *)name {" %>
         | 
| 13 | 
            +
            <% unless @bundle_name %>
         | 
| 14 | 
            +
              <%= "\treturn [UIImage imageNamed:name];" %>
         | 
| 15 | 
            +
              <% else %>
         | 
| 16 | 
            +
              <%= "\tNSBundle *bundle = [NSBundle bundleForClass:self];"%>
         | 
| 17 | 
            +
              <%= "\tNSURL *URL = [bundle URLForResource:@\"#{@bundle_name}\" withExtension:@\"bundle\"];"%>
         | 
| 18 | 
            +
              <%= "\tNSBundle *resourceBundle = [NSBundle bundleWithURL:URL];" %>
         | 
| 19 | 
            +
              <%= "\treturn [self imageNamed:name inBundle:resourceBundle compatibleWithTraitCollection:nil];"%>
         | 
| 20 | 
            +
              <% end %>available
         | 
| 21 | 
            +
            <%= "}" %>
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            @end
         | 
| 24 | 
            +
             | 
| 10 25 | 
             
            <%= "@interface #{@class_name} ()" %>
         | 
| 11 26 |  | 
| 12 27 | 
             
            @property (nonatomic, readwrite) UIImage *light;
         | 
| @@ -19,10 +34,10 @@ | |
| 19 34 | 
             
            <% for @image in @images %>
         | 
| 20 35 | 
             
            <%= "+ (#{@class_name} *)#{@image.name} {"%>
         | 
| 21 36 | 
             
            <%= "\t#{@class_name} *model = [#{@class_name} new];" %>
         | 
| 22 | 
            -
            <%= "\tmodel.light = [UIImage  | 
| 23 | 
            -
            <%= "\tmodel.dark = [UIImage  | 
| 37 | 
            +
            <%= "\tmodel.light = [UIImage #{@class_name.downcase}_imageNamed:@\"#{@image.name_light}\"];" %>
         | 
| 38 | 
            +
            <%= "\tmodel.dark = [UIImage #{@class_name.downcase}_imageNamed:@\"#{@image.name_dark}\"];" %>
         | 
| 24 39 | 
             
            <%= "\treturn model;" %>
         | 
| 25 40 | 
             
            <%= "}" %>
         | 
| 26 41 | 
             
            <% end %>
         | 
| 27 | 
            -
            @end
         | 
| 42 | 
            +
            <%= "@end" %>
         | 
| 28 43 |  | 
| @@ -6,12 +6,28 @@ | |
| 6 6 | 
             
             */
         | 
| 7 7 |  | 
| 8 8 | 
             
            import UIKit
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            extension UIImage {
         | 
| 11 | 
            +
            <%= "\tpublic convenience init?(#{@struct_name.downcase} name: String) {"%>
         | 
| 12 | 
            +
            <% unless @bundle_name %>
         | 
| 13 | 
            +
              <%= "\treturn UIImage(named: name)" %>
         | 
| 14 | 
            +
            <% else %>
         | 
| 15 | 
            +
              <%= "\t\tlet bundle = Bundle(for: #{@struct_name}.Helper.self)" %>
         | 
| 16 | 
            +
              <%= "\t\tlet url = bundle.url(forResource: \"#{@bundle_name}\", withExtension: \"bundle\")" %>
         | 
| 17 | 
            +
              <%= "\t\tguard let availableURL = url else { return nil }" %>
         | 
| 18 | 
            +
              <%= "\t\tlet resourceBundle = Bundle(url: availableURL)" %>
         | 
| 19 | 
            +
              <%= "\t\tself.init(named: name, in: resourceBundle, compatibleWith: nil)" %>
         | 
| 20 | 
            +
            <% end %>
         | 
| 21 | 
            +
                }
         | 
| 22 | 
            +
            }
         | 
| 23 | 
            +
             | 
| 9 24 | 
             
            struct <%= @struct_name %> {
         | 
| 25 | 
            +
                fileprivate class Helper {}
         | 
| 10 26 | 
             
                private(set) lazy var dark: UIImage = {
         | 
| 11 | 
            -
                    return UIImage( | 
| 27 | 
            +
                    return UIImage(<%= "#{@struct_name.downcase}" %>: darkName)!
         | 
| 12 28 | 
             
                }()
         | 
| 13 29 | 
             
                private(set) lazy var light: UIImage = {
         | 
| 14 | 
            -
                    return UIImage( | 
| 30 | 
            +
                    return UIImage(<%= "#{@struct_name.downcase}" %>: lightName)!
         | 
| 15 31 | 
             
                }()
         | 
| 16 32 | 
             
                private let darkName: String
         | 
| 17 33 | 
             
                private let lightName: String
         | 
| @@ -24,4 +40,5 @@ struct <%= @struct_name %> { | |
| 24 40 | 
             
                <%= "\treturn #{@struct_name}(darkName: \"#{@image.name_dark}\", lightName:\"#{@image.name_light}\")" %>
         | 
| 25 41 | 
             
                <%= "}()" %>
         | 
| 26 42 | 
             
            <% end %>
         | 
| 27 | 
            -
            }
         | 
| 43 | 
            +
            }
         | 
| 44 | 
            +
             | 
    
        data/lib/hemera/version.rb
    CHANGED
    
    
    
        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.5.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - JianweiWangs
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2019-01-21 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| @@ -28,22 +28,22 @@ dependencies: | |
| 28 28 | 
             
              name: cocoapods
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 30 | 
             
                requirements:
         | 
| 31 | 
            -
                - - "~>"
         | 
| 32 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            -
                    version: '1.5'
         | 
| 34 31 | 
             
                - - ">="
         | 
| 35 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| 36 33 | 
             
                    version: 1.5.0
         | 
| 34 | 
            +
                - - "~>"
         | 
| 35 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 36 | 
            +
                    version: '1.5'
         | 
| 37 37 | 
             
              type: :development
         | 
| 38 38 | 
             
              prerelease: false
         | 
| 39 39 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 40 40 | 
             
                requirements:
         | 
| 41 | 
            -
                - - "~>"
         | 
| 42 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 43 | 
            -
                    version: '1.5'
         | 
| 44 41 | 
             
                - - ">="
         | 
| 45 42 | 
             
                  - !ruby/object:Gem::Version
         | 
| 46 43 | 
             
                    version: 1.5.0
         | 
| 44 | 
            +
                - - "~>"
         | 
| 45 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 46 | 
            +
                    version: '1.5'
         | 
| 47 47 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 48 48 | 
             
              name: rake
         | 
| 49 49 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -155,8 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 155 155 | 
             
                - !ruby/object:Gem::Version
         | 
| 156 156 | 
             
                  version: '0'
         | 
| 157 157 | 
             
            requirements: []
         | 
| 158 | 
            -
             | 
| 159 | 
            -
            rubygems_version: 2.7.6
         | 
| 158 | 
            +
            rubygems_version: 3.0.1
         | 
| 160 159 | 
             
            signing_key: 
         | 
| 161 160 | 
             
            specification_version: 4
         | 
| 162 161 | 
             
            summary: development tool
         |