objc-referee 0.1.1 → 0.2.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
  SHA1:
3
- metadata.gz: 36c9f2903bc7f510e0a34800fce52cf0a878f39d
4
- data.tar.gz: ced79e3acb02c3044e7b8dd26c6e19a7dfc10088
3
+ metadata.gz: f60008ff9e0157920cdbf6c4404e6414e56893a8
4
+ data.tar.gz: cde3171f49c6a231cb1df75c098fe3672151c016
5
5
  SHA512:
6
- metadata.gz: 20f102e50fcc1886f61ba630cb8676ded8b29587fa223176fb84d267cbeeaf45332fb9c85e12be6870416c886e8ad7769f07981df54d693fd283cdafd30ee850
7
- data.tar.gz: b9f6a89b2a98626348b7b8cbc8dd7fa91b8bf610c25c24f7f9e0c3f51e682b9932175d163a082eff47fb9612414ba35bfe6c01f4470d5a9bff3934ed576df1fe
6
+ metadata.gz: 52d9458d5bc961f6d7aebcdb5dd5e90f81b1fd93cd45b64a8cb6f4f31240df2b92cbcdd7cbde8db1792bd77e026323df646aa0c2ed2c394103b1890070b3d30b
7
+ data.tar.gz: 5361f120a1d0acd261a9011b856696f66b963490febcffcf86b4e30f8b4a77d146a763b05d505640fc9e4187d3bc60c8ea427b2928f93ccb88f8918877e8c37c
data/.rubocop.yml CHANGED
@@ -7,7 +7,7 @@ AllCops:
7
7
 
8
8
  # Give us... a little more room.
9
9
  Metrics/LineLength:
10
- Max: 120
10
+ Max: 140
11
11
 
12
12
  # This cop seems to produce a few false-positives.
13
13
  Style/Next:
data/.rubocop_todo.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2015-08-20 17:16:11 -0400 using RuboCop version 0.33.0.
3
+ # on 2015-11-04 13:39:32 -0500 using RuboCop version 0.33.0.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
@@ -8,9 +8,27 @@
8
8
 
9
9
  # Offense count: 3
10
10
  Metrics/AbcSize:
11
- Max: 23
11
+ Max: 33
12
+
13
+ # Offense count: 1
14
+ Metrics/CyclomaticComplexity:
15
+ Max: 11
16
+
17
+ # Offense count: 2
18
+ # Configuration parameters: AllowURI, URISchemes.
19
+ Metrics/LineLength:
20
+ Max: 138
12
21
 
13
22
  # Offense count: 3
14
23
  # Configuration parameters: CountComments.
15
24
  Metrics/MethodLength:
16
- Max: 32
25
+ Max: 40
26
+
27
+ # Offense count: 1
28
+ # Configuration parameters: CountKeywordArgs.
29
+ Metrics/ParameterLists:
30
+ Max: 6
31
+
32
+ # Offense count: 1
33
+ Metrics/PerceivedComplexity:
34
+ Max: 11
data/CHANGELOG.md CHANGED
@@ -2,7 +2,21 @@
2
2
  All notable changes to this project will be documented in this file.
3
3
  This project adheres to [Semantic Versioning](http://semver.org/) and this file attempts to follow the guidelines provided by [Keep a CHANGELOG](http://keepachangelog.com/).
4
4
 
5
+ ## [Unreleased][unreleased]
6
+ Coming soon.
7
+
8
+ ## [0.2.0] - 2015-09-02
9
+ ### Added
10
+ - Ensures Gemspec has a minimum Ruby version. Choosing 2.x, as this is default on Yosemite machines.
11
+ - Adds in Swift code generation via `--language swift`. To keep compatibility with older versions, the default is still `objc`. Swift code generation will output a file `Resources.swift`.
12
+ - An autogeneration warning has been added to the output files. Notes that changes to the given files will eventually be lost.
13
+ - Ability to specify the `NSBundle` the resources should be accessed from. Handy for developing frameworks with resources.
14
+ - By default (if no bundle is specified) the main bundle will be used.
15
+ - The `--bundle-id` flag can set a custom bundle ID.
16
+
5
17
  ## [0.1.1] - 2015-09-02
6
18
  Initial public release.
7
19
 
8
- [0.1.1]: https://github.com/dynamit/referee/v0.1.1
20
+ [unreleased]: https://github.com/dynamit/referee/compare/0.2.0...HEAD
21
+ [0.2.0]: https://github.com/dynamit/referee/compare/0.2.0...HEAD
22
+ [0.1.1]: https://github.com/Dynamit/referee/tree/0.1.1
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- objc-referee (0.1.0)
4
+ objc-referee (0.1.1)
5
5
  mustache (~> 1.0, >= 1.0.2)
6
6
  nokogiri (~> 1.6, >= 1.6.6.2)
7
7
  xcodeproj (~> 0.20.1)
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![Build Status](https://travis-ci.org/Dynamit/referee.svg?branch=master)](https://travis-ci.org/Dynamit/referee) [![Gem Version](https://badge.fury.io/rb/objc-referee.svg)](http://badge.fury.io/rb/objc-referee)
4
4
 
5
- Referee is a script that generates Objective-C classes and macros for easily referencing your resources in code, providing IDE auto-complete and compile-time safety for your app.
5
+ Referee is a script that generates Objective-C or Swift objects for easily referencing your resources in code, providing IDE auto-complete and compile-time safety for your app.
6
6
 
7
7
  The currently supported resource types are:
8
8
 
@@ -31,6 +31,13 @@ UIViewController *someViewController = TSTResources.viewControllers.SomeViewCont
31
31
  [someViewController performSegue:TSTResources.segues.SomeSegue];
32
32
  ```
33
33
 
34
+ Using Swift, this code will look like:
35
+
36
+ ```swift
37
+ let someViewController = Resources.ViewControllers.SomeViewController()
38
+ someViewController.performSegue(Resources.Segues.SomeSegue)
39
+ ```
40
+
34
41
  Now, if you change an identifier in your storyboard, your code won't compile unless it matches as well, providing you with the confidence that your code and UI are in sync.
35
42
 
36
43
  ## Installation
@@ -61,18 +68,24 @@ Finally, if you are using a `Gemfile` to manage Ruby dependencies for your app o
61
68
  ## Xcode Integration
62
69
  This script was designed to be easily integrated into your Xcode project workflow.
63
70
 
64
- Begin by adding a Run Script to your Build Phases. For the script portion, enter:
71
+ Begin by adding a Run Script to your Build Phases. For the script portion, enter one of the following:
65
72
 
66
- /usr/local/bin/referee --prefix <your class prefix>
73
+ /usr/local/bin/referee --prefix <your class prefix> # for Objective-C
74
+ /usr/local/bin/referee --language swift # for Swift
67
75
 
68
76
  _**Ensure that this Run Script runs before the Compile Sources step. Otherwise, your new changes won't get compiled!**_
69
77
 
70
- Build the project and open your source folder. By default, at the root of that folder there should be two new files: `<Prefix>Resources.h` and `<Prefix>Resources.m`. Add these files to the Xcode project, ensuring "Copy Files" is _not_ selected.
78
+ Build the project and open your source folder. When using Objective-C, there should be two new files at the root of that folder: `<Prefix>Resources.h` and `<Prefix>Resources.m`. Add these files to the Xcode project, ensuring "Copy Files" is _not_ selected. When using Swift, a single file called `Resources.swift` will be generated. Follow the same steps to add the files to Xcode.
71
79
 
72
80
  From now on, when you make changes in your Storyboard files, they will be reflected in these source files upon compiling.
73
81
 
74
82
  If you need to setup different paths or configure `referee` further, check the `--help` flag for more information and documentation.
75
83
 
84
+ ## Custom Frameworks
85
+ It is possible to generate resource accessors for a custom `.framework` with embedded resources simply by switching the generated code's accessed Bundle.
86
+
87
+ By default, all resources will be accessed from the Main Bundle, however, the `--bundle-id com.example.bundle-id` flag allows setting a custom Bundle Identifier. This allows you to access resources inside of a custom, third-party framework.
88
+
76
89
  ## Development
77
90
 
78
91
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment.
data/lib/referee/cli.rb CHANGED
@@ -24,6 +24,8 @@ module Referee
24
24
  prefix: nil,
25
25
  output: default_output_directory,
26
26
  error_on_missing_storyboard_ids: false,
27
+ language: 'objc',
28
+ bundle_id: nil,
27
29
  verbose: false }
28
30
 
29
31
  optparse = OptionParser.new do |opts|
@@ -43,6 +45,14 @@ module Referee
43
45
  options[:error_on_missing_storyboard_ids] = true
44
46
  end
45
47
 
48
+ opts.on('-l', '--language LANGUAGE', 'Toggle language between objc and swift') do |language|
49
+ options[:language] = language.downcase
50
+ end
51
+
52
+ opts.on('-b', '--bundle-id IDENTIFIER', 'Set the bundle identifier in the generated code (Main bundle by default)') do |bundle_id|
53
+ options[:bundle_id] = bundle_id
54
+ end
55
+
46
56
  opts.on('-v', '--verbose', 'Enable verbose mode') do
47
57
  options[:verbose] = true
48
58
  end
@@ -63,12 +73,23 @@ module Referee
63
73
  Configuration.new(options)
64
74
  end
65
75
 
76
+ def validate_bundle_id(bundle_id)
77
+ # Note: `nil` bundle ID will indicate main bundle default.
78
+ # We'll accept nil or a "<something>.<something>..." format.
79
+ bundle_regex = /[-a-zA-Z0-9]+(\.[-a-zA-Z0-9])+/
80
+ (!bundle_id || bundle_id.match(bundle_regex))
81
+ end
82
+
66
83
  def validate_config
84
+ is_swift = (@config.language == 'swift')
67
85
  output_valid = File.exist?(@config.output) && File.writable?(@config.output)
68
- build_output.die 'Class prefix must be provided' unless @config.prefix
86
+ build_output.die 'Class prefix must be provided' unless is_swift || @config.prefix
87
+ build_output.info 'Class prefix will ignored...' if is_swift && @config.prefix
69
88
  build_output.die 'Output directory must exist and be writable' unless output_valid
70
89
  build_output.die 'An Xcode project is required!' unless @config.project
71
90
  build_output.die 'Xcode project must exist!' unless File.exist?(@config.project)
91
+ build_output.die 'Invalid language specified!' unless %w(swift objc).index(@config.language)
92
+ build_output.die 'Invalid bundle identifier' unless validate_bundle_id(@config.bundle_id)
72
93
  build_output.info 'Loaded and validated configuration...'
73
94
  end
74
95
 
@@ -9,6 +9,16 @@ module Referee
9
9
  public
10
10
 
11
11
  def generate!
12
+ if @config.language == 'objc'
13
+ generate_objc!
14
+ else
15
+ generate_swift!
16
+ end
17
+ end
18
+
19
+ private
20
+
21
+ def generate_objc!
12
22
  # Substitute out template information.
13
23
  iface = renderer.render_interface(dictionary_representation)
14
24
  impl = renderer.render_implementation(dictionary_representation)
@@ -22,7 +32,16 @@ module Referee
22
32
  File.write(implementation_path, impl)
23
33
  end
24
34
 
25
- private
35
+ def generate_swift!
36
+ # Substitute out template information.
37
+ swift_impl = renderer.render_swift_implementation(dictionary_representation)
38
+
39
+ # Generate path.
40
+ file_path = resource_file('swift')
41
+
42
+ # Write to file.
43
+ File.write(file_path, swift_impl)
44
+ end
26
45
 
27
46
  def dictionary_representation
28
47
  @dictionary_representation ||= create_dictionary_representation
@@ -49,8 +68,13 @@ module Referee
49
68
  end
50
69
 
51
70
  def resource_file(extension)
52
- filename = "#{@config.prefix}Resources.#{extension}"
53
- File.join(@config.output, filename)
71
+ if @config.language == 'objc'
72
+ filename = "#{@config.prefix}Resources.#{extension}"
73
+ File.join(@config.output, filename)
74
+ else
75
+ filename = "Resources.#{extension}"
76
+ File.join(@config.output, filename)
77
+ end
54
78
  end
55
79
 
56
80
  def renderer
@@ -1,7 +1,8 @@
1
1
  module Referee
2
2
  # Configuration container.
3
3
  class Configuration
4
- attr_accessor :project, :prefix, :output, :error_on_missing_storyboard_ids, :verbose
4
+ attr_accessor :project, :prefix, :output, :error_on_missing_storyboard_ids, :verbose, :language,
5
+ :bundle_id
5
6
 
6
7
  def initialize(config)
7
8
  config.each do |key, value|
@@ -37,7 +37,7 @@ module Referee
37
37
  segues = segues(xml)
38
38
 
39
39
  # Add to resources collection
40
- group = ResourceGroup.new(storyboard, table_cells, collection_cells, non_empty_view_controllers, segues)
40
+ group = ResourceGroup.new(storyboard, table_cells, collection_cells, non_empty_view_controllers, segues, @config)
41
41
  @resources << group
42
42
 
43
43
  # Check for missing view controller IDs in this storyboard.
@@ -1,7 +1,7 @@
1
1
  module Referee
2
2
  # Abstract class defining how renderable resources must behave.
3
3
  class Renderable
4
- attr_accessor :type
4
+ attr_accessor :type, :swift_type
5
5
 
6
6
  def initialize
7
7
  fail 'Abstract class Renderable may not be instantiated!'
@@ -17,6 +17,27 @@ module Referee
17
17
  fail 'Subclasses must implement implementation()!'
18
18
  end
19
19
 
20
+ # NOTE: Subclasses must implement this method.
21
+ def swift_implementation
22
+ fail 'Subclasses must implement swift_implementation()!'
23
+ end
24
+
25
+ def bundle_accessor(bundle_id)
26
+ if bundle_id
27
+ "[NSBundle bundleWithIdentifier:\"#{bundle_id}\"]"
28
+ else
29
+ '[NSBundle mainBundle]'
30
+ end
31
+ end
32
+
33
+ def swift_bundle_accessor(bundle_id)
34
+ if bundle_id
35
+ "NSBundle(identifier: \"#{bundle_id}\")"
36
+ else
37
+ 'NSBundle.mainBundle()'
38
+ end
39
+ end
40
+
20
41
  def methodize_name(name)
21
42
  name.gsub(/[^a-zA-Z0-9]/, '')
22
43
  end
@@ -30,5 +51,15 @@ module Referee
30
51
  clean_name = methodize_name(name)
31
52
  "- (#{@type})#{clean_name}\n{\n\treturn #{body};\n}"
32
53
  end
54
+
55
+ def simple_swift_method(name, body)
56
+ clean_name = methodize_name(name)
57
+ "func #{clean_name}() -> #{@swift_type} {\n\t\t\treturn #{body}\n\t\t}"
58
+ end
59
+
60
+ def simple_swift_string_case(name)
61
+ clean_name = methodize_name(name)
62
+ "case #{clean_name} = \"#{name}\""
63
+ end
33
64
  end
34
65
  end
@@ -4,6 +4,7 @@ module Referee
4
4
  def initialize(identifier)
5
5
  @identifier = identifier
6
6
  @type = 'NSString *'
7
+ @swift_type = 'String'
7
8
  end
8
9
 
9
10
  def declaration
@@ -13,5 +14,9 @@ module Referee
13
14
  def implementation
14
15
  simple_method_implementation @identifier, "@\"#{@identifier}\""
15
16
  end
17
+
18
+ def swift_implementation
19
+ simple_swift_string_case @identifier
20
+ end
16
21
  end
17
22
  end
@@ -4,6 +4,7 @@ module Referee
4
4
  def initialize(identifier)
5
5
  @identifier = identifier
6
6
  @type = 'NSString *'
7
+ @swift_type = 'String'
7
8
  end
8
9
 
9
10
  def declaration
@@ -13,5 +14,9 @@ module Referee
13
14
  def implementation
14
15
  simple_method_implementation @identifier, "@\"#{@identifier}\""
15
16
  end
17
+
18
+ def swift_implementation
19
+ simple_swift_string_case @identifier
20
+ end
16
21
  end
17
22
  end
@@ -1,9 +1,13 @@
1
1
  module Referee
2
2
  # Renderable implementation for UIStoryboards in a project.
3
3
  class Storyboard < Renderable
4
- def initialize(name)
4
+ attr_accessor :name, :config
5
+
6
+ def initialize(name, config)
5
7
  @name = name
6
8
  @type = 'UIStoryboard *'
9
+ @swift_type = 'UIStoryboard'
10
+ @config = config
7
11
  end
8
12
 
9
13
  def declaration
@@ -11,8 +15,15 @@ module Referee
11
15
  end
12
16
 
13
17
  def implementation
14
- body = "[UIStoryboard storyboardWithName:@\"#{@name}\" bundle:[NSBundle mainBundle]]"
18
+ bundle = bundle_accessor(@config.bundle_id)
19
+ body = "[UIStoryboard storyboardWithName:@\"#{@name}\" bundle:#{bundle}]"
15
20
  simple_method_implementation @name, body
16
21
  end
22
+
23
+ def swift_implementation
24
+ bundle = swift_bundle_accessor(@config.bundle_id)
25
+ body = "UIStoryboard(name: \"#{@name}\", bundle: #{bundle})"
26
+ simple_swift_method @name, body
27
+ end
17
28
  end
18
29
  end
@@ -4,6 +4,7 @@ module Referee
4
4
  def initialize(identifier)
5
5
  @identifier = identifier
6
6
  @type = 'NSString *'
7
+ @swift_type = 'String'
7
8
  end
8
9
 
9
10
  def declaration
@@ -13,5 +14,9 @@ module Referee
13
14
  def implementation
14
15
  simple_method_implementation @identifier, "@\"#{@identifier}\""
15
16
  end
17
+
18
+ def swift_implementation
19
+ simple_swift_string_case @identifier
20
+ end
16
21
  end
17
22
  end
@@ -1,12 +1,14 @@
1
1
  module Referee
2
2
  # Renderable implementation for UIViewControllers embedded in storyboards.
3
3
  class ViewController < Renderable
4
- attr_accessor :name, :storyboard
4
+ attr_accessor :name, :storyboard, :config
5
5
 
6
- def initialize(name, storyboard)
6
+ def initialize(name, storyboard, config)
7
7
  @name = name
8
8
  @storyboard = storyboard
9
9
  @type = 'UIViewController *'
10
+ @swift_type = 'UIViewController'
11
+ @config = config
10
12
  end
11
13
 
12
14
  def declaration
@@ -14,9 +16,17 @@ module Referee
14
16
  end
15
17
 
16
18
  def implementation
17
- body = "[[UIStoryboard storyboardWithName:@\"#{@storyboard}\" bundle:[NSBundle mainBundle]] " \
19
+ bundle = bundle_accessor(@config.bundle_id)
20
+ body = "[[UIStoryboard storyboardWithName:@\"#{@storyboard}\" bundle:#{bundle}] " \
18
21
  "instantiateViewControllerWithIdentifier:@\"#{@name}\"]"
19
22
  simple_method_implementation @name, body
20
23
  end
24
+
25
+ def swift_implementation
26
+ bundle = swift_bundle_accessor(@config.bundle_id)
27
+ body = "UIStoryboard(name: \"#{@name}\", bundle: #{bundle})." \
28
+ "instantiateViewControllerWithIdentifier(\"#{@name}\")"
29
+ simple_swift_method @name, body
30
+ end
21
31
  end
22
32
  end
@@ -1,14 +1,15 @@
1
1
  module Referee
2
2
  # Representation of all of the resources contained in a given storyboard.
3
3
  class ResourceGroup
4
- attr_accessor :storyboard, :table_cells, :collection_cells, :view_controllers, :segues
4
+ attr_accessor :storyboard, :table_cells, :collection_cells, :view_controllers, :segues, :config
5
5
 
6
- def initialize(storyboard, table_cells, collection_cells, view_controllers, segues)
6
+ def initialize(storyboard, table_cells, collection_cells, view_controllers, segues, config)
7
7
  @storyboard = storyboard
8
8
  @table_cells = table_cells
9
9
  @collection_cells = collection_cells
10
10
  @view_controllers = view_controllers
11
11
  @segues = segues
12
+ @config = config
12
13
  end
13
14
 
14
15
  def storyboard_name
@@ -17,7 +18,7 @@ module Referee
17
18
  end
18
19
 
19
20
  def storyboard
20
- Storyboard.new(storyboard_name)
21
+ Storyboard.new(storyboard_name, @config)
21
22
  end
22
23
 
23
24
  def table_cells
@@ -29,7 +30,7 @@ module Referee
29
30
  end
30
31
 
31
32
  def view_controllers
32
- @view_controllers.map { |c| ViewController.new(c, storyboard_name) }
33
+ @view_controllers.map { |c| ViewController.new(c, storyboard_name, @config) }
33
34
  end
34
35
 
35
36
  def segues
@@ -3,6 +3,7 @@ module Referee
3
3
  class TemplateRenderer
4
4
  INTERFACE_TEMPLATE_NAME = 'interface.h'
5
5
  IMPLEMENTATION_TEMPLATE_NAME = 'implementation.m'
6
+ SWIFT_TEMPLATE_NAME = 'default.swift'
6
7
 
7
8
  private
8
9
 
@@ -28,5 +29,10 @@ module Referee
28
29
  def render_interface(dict)
29
30
  template(INTERFACE_TEMPLATE_NAME).call(dict)
30
31
  end
32
+
33
+ # Renders the Swift implementation file as a string.
34
+ def render_swift_implementation(dict)
35
+ template(SWIFT_TEMPLATE_NAME).call(dict)
36
+ end
31
37
  end
32
38
  end
@@ -1,4 +1,4 @@
1
1
  # Version information.
2
2
  module Referee
3
- VERSION = '0.1.1'
3
+ VERSION = '0.2.0'
4
4
  end
data/objc-referee.gemspec CHANGED
@@ -20,6 +20,8 @@ Gem::Specification.new do |spec|
20
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
21
  spec.require_paths = ['lib']
22
22
 
23
+ spec.required_ruby_version = '~> 2.0'
24
+
23
25
  spec.add_development_dependency 'bundler', '~> 1.8'
24
26
  spec.add_development_dependency 'rake', '~> 10.0'
25
27
  spec.add_development_dependency 'rubocop', '~> 0.33.0'
@@ -0,0 +1,43 @@
1
+ /** THIS FILE IS AUTOGENERATED. DO NOT EDIT. CHANGES WILL BE DESTROYED. */
2
+
3
+ import Foundation
4
+ import UIKit
5
+
6
+ struct Resources {
7
+ static let Storyboards = _Storyboards()
8
+ static let ViewControllers = _ViewControllers()
9
+
10
+ /// UIStoryboard accessors.
11
+ struct _Storyboards {
12
+ {{# storyboards #}}
13
+ {{{ swift_implementation }}}
14
+ {{/ storyboards }}
15
+ }
16
+
17
+ {{# table_cells #}}
18
+ /// UITableViewCell identifier accessors.
19
+ enum TableViewCells: String {
20
+ {{{ swift_implementation }}}
21
+ }
22
+ {{/ table_cells }}
23
+
24
+ {{# collection_cells #}}
25
+ enum CollectionViewCells: String {
26
+ {{{ swift_implementation }}}
27
+ }
28
+ {{/ collection_cells }}
29
+
30
+ /// UIViewController accessors.
31
+ struct _ViewControllers {
32
+ {{# view_controllers #}}
33
+ {{{ swift_implementation }}}
34
+ {{/ view_controllers }}
35
+ }
36
+
37
+ {{# segues #}}
38
+ /// Segue accessors.
39
+ enum Segues: String {
40
+ {{{ swift_implementation }}}
41
+ }
42
+ {{/ segues }}
43
+ }
@@ -1,3 +1,5 @@
1
+ /** THIS FILE IS AUTOGENERATED. DO NOT EDIT. CHANGES WILL BE DESTROYED. */
2
+
1
3
  #import "{{ prefix }}Resources.h"
2
4
 
3
5
  /** UIStoryboard accessors. */
@@ -1,3 +1,5 @@
1
+ /** THIS FILE IS AUTOGENERATED. DO NOT EDIT. CHANGES WILL BE DESTROYED. */
2
+
1
3
  @import UIKit;
2
4
 
3
5
  /** ATTENTION: Use this macro to access resources. */
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: objc-referee
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Colin Drake
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-09-02 00:00:00.000000000 Z
11
+ date: 2015-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -172,6 +172,7 @@ files:
172
172
  - lib/referee/templaterenderer.rb
173
173
  - lib/referee/version.rb
174
174
  - objc-referee.gemspec
175
+ - resources/default.swift
175
176
  - resources/implementation.m
176
177
  - resources/interface.h
177
178
  homepage: http://dynamit.com
@@ -184,9 +185,9 @@ require_paths:
184
185
  - lib
185
186
  required_ruby_version: !ruby/object:Gem::Requirement
186
187
  requirements:
187
- - - ">="
188
+ - - "~>"
188
189
  - !ruby/object:Gem::Version
189
- version: '0'
190
+ version: '2.0'
190
191
  required_rubygems_version: !ruby/object:Gem::Requirement
191
192
  requirements:
192
193
  - - ">="