objc-referee 0.2.4 → 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/.rspec +2 -0
- data/.rubocop.yml +1 -0
- data/.travis.yml +3 -1
- data/CHANGELOG.md +10 -2
- data/Gemfile.lock +13 -0
- data/LICENSE.txt +1 -1
- data/README.md +2 -2
- data/lib/referee/project.rb +22 -1
- data/lib/referee/renderables/viewcontroller.rb +13 -5
- data/lib/referee/resourcegroup.rb +5 -1
- data/lib/referee/version.rb +1 -1
- data/objc-referee.gemspec +3 -0
- metadata +45 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ab33621de6d2c048a7941e38fc2829ef73f41ba2
|
4
|
+
data.tar.gz: 87c5d7583369eaa5c8ff4644025d737751e51f62
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: af7c0a621f8d1eb67f329824f03bb3df95c9f2fa95060a9225702c1a61cfed8baa473eb1cace69d1efbc0022425883f2fdeb00d4044d602a7ba602f8e2d82423
|
7
|
+
data.tar.gz: f4abbde63f073771b68d3ca791c893504cc45d2b8326ac0a7e328f327feca811a7a43ba5529f8af0479d4c353385d70e58bf5a16502aafa5b8ecaedce081d802
|
data/.rspec
ADDED
data/.rubocop.yml
CHANGED
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -3,7 +3,14 @@ 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
5
|
## [Unreleased]
|
6
|
-
|
6
|
+
TODO
|
7
|
+
|
8
|
+
## [0.3.0] - 2016-03-08
|
9
|
+
### Added
|
10
|
+
- View controllers are now returned as the type they were defined to be in Interface Builder [(#2)](https://github.com/Dynamit/referee/issues/2).
|
11
|
+
- This removes the `as! FooViewController`-type code that was required in the past.
|
12
|
+
- As an update, to remove Xcode build warnings, you'll want to remove these forced casts from your own code. Regardless, existing code should still compile without an _error_, at least.
|
13
|
+
- Test suite to reduce regression errors. Travis-CI is running these against `master`.
|
7
14
|
|
8
15
|
## [0.2.4] - 2016-01-15
|
9
16
|
### Added
|
@@ -34,7 +41,8 @@ Forthcoming.
|
|
34
41
|
## [0.1.1] - 2015-09-02
|
35
42
|
Initial public release.
|
36
43
|
|
37
|
-
[unreleased]: https://github.com/dynamit/referee/compare/v0.
|
44
|
+
[unreleased]: https://github.com/dynamit/referee/compare/v0.3.0...HEAD
|
45
|
+
[0.3.0]: https://github.com/Dynamit/referee/tree/v0.3.0
|
38
46
|
[0.2.4]: https://github.com/Dynamit/referee/tree/v0.2.4
|
39
47
|
[0.2.3]: https://github.com/Dynamit/referee/tree/v0.2.3
|
40
48
|
[0.2.2]: https://github.com/Dynamit/referee/tree/v0.2.2
|
data/Gemfile.lock
CHANGED
@@ -20,6 +20,7 @@ GEM
|
|
20
20
|
parser (~> 2.2)
|
21
21
|
coderay (1.1.0)
|
22
22
|
colored (1.2)
|
23
|
+
diff-lcs (1.2.5)
|
23
24
|
i18n (0.7.0)
|
24
25
|
json (1.8.3)
|
25
26
|
method_source (0.8.2)
|
@@ -37,6 +38,15 @@ GEM
|
|
37
38
|
slop (~> 3.4)
|
38
39
|
rainbow (2.0.0)
|
39
40
|
rake (10.4.2)
|
41
|
+
rspec-core (3.4.1)
|
42
|
+
rspec-support (~> 3.4.0)
|
43
|
+
rspec-expectations (3.4.0)
|
44
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
45
|
+
rspec-support (~> 3.4.0)
|
46
|
+
rspec-mocks (3.4.1)
|
47
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
48
|
+
rspec-support (~> 3.4.0)
|
49
|
+
rspec-support (3.4.1)
|
40
50
|
rubocop (0.33.0)
|
41
51
|
astrolabe (~> 1.3)
|
42
52
|
parser (>= 2.2.2.5, < 3.0)
|
@@ -61,6 +71,9 @@ DEPENDENCIES
|
|
61
71
|
objc-referee!
|
62
72
|
pry (~> 0.10.1)
|
63
73
|
rake (~> 10.0)
|
74
|
+
rspec-core (~> 3.4)
|
75
|
+
rspec-expectations (~> 3.4)
|
76
|
+
rspec-mocks (~> 3.4)
|
64
77
|
rubocop (~> 0.33.0)
|
65
78
|
rubygems-tasks (~> 0.2.4)
|
66
79
|
|
data/LICENSE.txt
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
The MIT License (MIT)
|
2
2
|
|
3
|
-
Copyright (c) 2015 Dynamit, LLC
|
3
|
+
Copyright (c) 2015-2016 Dynamit Technologies, LLC
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
data/README.md
CHANGED
@@ -20,14 +20,14 @@ Without `referee`, you can either maintain your own constants file in parallel w
|
|
20
20
|
|
21
21
|
```objc
|
22
22
|
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
|
23
|
-
|
23
|
+
SomeViewController *someViewController = [mainStoryboard instantiateViewControllerWithIdentifier:@"Some View Controller"];
|
24
24
|
[someViewController performSegue:@"Some Segue"];
|
25
25
|
```
|
26
26
|
|
27
27
|
With `referee`, you can replace this with references to a few automatically generated classes:
|
28
28
|
|
29
29
|
```objc
|
30
|
-
|
30
|
+
SomeViewController *someViewController = TSTResources.viewControllers.SomeViewController;
|
31
31
|
[someViewController performSegue:TSTResources.segues.SomeSegue];
|
32
32
|
```
|
33
33
|
|
data/lib/referee/project.rb
CHANGED
@@ -13,6 +13,20 @@ module Referee
|
|
13
13
|
avPlayerViewController
|
14
14
|
tabBarController)
|
15
15
|
|
16
|
+
DEFAULT_VIEW_CONTROLLER_TYPES = %w(
|
17
|
+
UIViewController
|
18
|
+
UITableViewController
|
19
|
+
UINavigationController
|
20
|
+
GLKViewController
|
21
|
+
UIPageViewController
|
22
|
+
UICollectionViewController
|
23
|
+
UISplitViewController
|
24
|
+
AVPlayerViewController
|
25
|
+
UITabBarController
|
26
|
+
)
|
27
|
+
|
28
|
+
VIEW_CONTROLLER_TYPE_MAP = Hash[VIEW_CONTROLLER_TAGS.zip(DEFAULT_VIEW_CONTROLLER_TYPES)]
|
29
|
+
|
16
30
|
attr_accessor :config, :resources
|
17
31
|
|
18
32
|
# Instantiate a new `Project` instance given a `Configuration`.
|
@@ -79,7 +93,14 @@ module Referee
|
|
79
93
|
def view_controllers(xml)
|
80
94
|
selector = VIEW_CONTROLLER_TAGS.join(',')
|
81
95
|
controllers = xml.css(selector)
|
82
|
-
controllers.map
|
96
|
+
controllers_list = controllers.map do |n|
|
97
|
+
tag_name = n.name
|
98
|
+
identifier = n['storyboardIdentifier']
|
99
|
+
klass = n['customClass'] || VIEW_CONTROLLER_TYPE_MAP[tag_name]
|
100
|
+
{ identifier: identifier, class: klass }
|
101
|
+
end
|
102
|
+
controllers_list.delete_if { |c| c[:identifier].nil? || c[:identifier].strip.empty? }
|
103
|
+
controllers_list
|
83
104
|
end
|
84
105
|
|
85
106
|
def segues(xml)
|
@@ -3,11 +3,12 @@ module Referee
|
|
3
3
|
class ViewController < Renderable
|
4
4
|
attr_accessor :name, :storyboard, :config
|
5
5
|
|
6
|
-
def initialize(name, storyboard, config)
|
6
|
+
def initialize(name, klass, storyboard, config)
|
7
7
|
@name = name
|
8
|
+
@class = klass
|
8
9
|
@storyboard = storyboard
|
9
|
-
@type =
|
10
|
-
@swift_type =
|
10
|
+
@type = "#{@class} *"
|
11
|
+
@swift_type = @class
|
11
12
|
@config = config
|
12
13
|
end
|
13
14
|
|
@@ -17,15 +18,22 @@ module Referee
|
|
17
18
|
|
18
19
|
def implementation
|
19
20
|
bundle = bundle_accessor(@config.bundle_id)
|
20
|
-
body = "[[UIStoryboard storyboardWithName:@\"#{@storyboard}\" bundle:#{bundle}] " \
|
21
|
+
body = "(#{@type})[[UIStoryboard storyboardWithName:@\"#{@storyboard}\" bundle:#{bundle}] " \
|
21
22
|
"instantiateViewControllerWithIdentifier:@\"#{@name}\"]"
|
22
23
|
simple_method_implementation @name, body
|
23
24
|
end
|
24
25
|
|
25
26
|
def swift_implementation
|
26
27
|
bundle = swift_bundle_accessor(@config.bundle_id)
|
28
|
+
|
29
|
+
if @swift_type == 'UIViewController'
|
30
|
+
cast = ''
|
31
|
+
else
|
32
|
+
cast = " as! #{@swift_type}"
|
33
|
+
end
|
34
|
+
|
27
35
|
body = "UIStoryboard(name: \"#{@storyboard}\", bundle: #{bundle})." \
|
28
|
-
"instantiateViewControllerWithIdentifier(\"#{@name}\")"
|
36
|
+
"instantiateViewControllerWithIdentifier(\"#{@name}\")#{cast}"
|
29
37
|
simple_swift_method @name, body
|
30
38
|
end
|
31
39
|
end
|
@@ -30,7 +30,11 @@ module Referee
|
|
30
30
|
end
|
31
31
|
|
32
32
|
def view_controllers
|
33
|
-
@view_controllers.map
|
33
|
+
@view_controllers.map do |c|
|
34
|
+
identifier = c[:identifier]
|
35
|
+
klass = c[:class]
|
36
|
+
ViewController.new(identifier, klass, storyboard_name, @config)
|
37
|
+
end
|
34
38
|
end
|
35
39
|
|
36
40
|
def segues
|
data/lib/referee/version.rb
CHANGED
data/objc-referee.gemspec
CHANGED
@@ -27,6 +27,9 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.add_development_dependency 'rubocop', '~> 0.33.0'
|
28
28
|
spec.add_development_dependency 'pry', '~> 0.10.1'
|
29
29
|
spec.add_development_dependency 'rubygems-tasks', '~> 0.2.4'
|
30
|
+
spec.add_development_dependency 'rspec-core', '~> 3.4'
|
31
|
+
spec.add_development_dependency 'rspec-expectations', '~> 3.4'
|
32
|
+
spec.add_development_dependency 'rspec-mocks', '~> 3.4'
|
30
33
|
|
31
34
|
spec.add_runtime_dependency 'xcodeproj', '~> 0.20.1'
|
32
35
|
spec.add_runtime_dependency 'mustache', '~> 1.0', '>= 1.0.2'
|
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.
|
4
|
+
version: 0.3.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: 2016-
|
11
|
+
date: 2016-03-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -80,6 +80,48 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 0.2.4
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rspec-core
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '3.4'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '3.4'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec-expectations
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '3.4'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '3.4'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rspec-mocks
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '3.4'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '3.4'
|
83
125
|
- !ruby/object:Gem::Dependency
|
84
126
|
name: xcodeproj
|
85
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -144,6 +186,7 @@ extensions: []
|
|
144
186
|
extra_rdoc_files: []
|
145
187
|
files:
|
146
188
|
- ".gitignore"
|
189
|
+
- ".rspec"
|
147
190
|
- ".rubocop.yml"
|
148
191
|
- ".rubocop_todo.yml"
|
149
192
|
- ".travis.yml"
|