redbreast 0.1.0 → 1.0.2

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.
Files changed (43) hide show
  1. checksums.yaml +5 -5
  2. data/.DS_Store +0 -0
  3. data/.rubocop.yml +5 -0
  4. data/README.md +102 -4
  5. data/Rakefile +3 -3
  6. data/bin/console +3 -3
  7. data/exe/redbreast +17 -5
  8. data/lib/.DS_Store +0 -0
  9. data/lib/redbreast.rb +25 -17
  10. data/lib/redbreast/.DS_Store +0 -0
  11. data/lib/redbreast/commands/color_generator.rb +54 -0
  12. data/lib/redbreast/commands/color_test_generator.rb +57 -0
  13. data/lib/redbreast/commands/configuration_installer.rb +37 -0
  14. data/lib/redbreast/commands/image_generator.rb +49 -47
  15. data/lib/redbreast/commands/image_test_generator.rb +57 -0
  16. data/lib/redbreast/commands/setup.rb +139 -91
  17. data/lib/redbreast/crawlers/color_crawler.rb +38 -0
  18. data/lib/redbreast/crawlers/image_crawler.rb +30 -10
  19. data/lib/redbreast/error_handler.rb +7 -6
  20. data/lib/redbreast/helpers/general.rb +73 -63
  21. data/lib/redbreast/helpers/hash.rb +8 -8
  22. data/lib/redbreast/helpers/terminal.rb +2 -3
  23. data/lib/redbreast/io/config.rb +14 -15
  24. data/lib/redbreast/serializers/objc_serializer.rb +66 -19
  25. data/lib/redbreast/serializers/serializer.rb +17 -16
  26. data/lib/redbreast/serializers/swift_serializer.rb +90 -2
  27. data/lib/redbreast/template_generators/.DS_Store +0 -0
  28. data/lib/redbreast/template_generators/colors/objc_colors_template_generator.rb +35 -0
  29. data/lib/redbreast/template_generators/colors/swift_colors_template_generator.rb +22 -0
  30. data/lib/redbreast/template_generators/images/objc_images_template_generator.rb +27 -41
  31. data/lib/redbreast/template_generators/images/swift_images_template_generator.rb +16 -21
  32. data/lib/redbreast/template_generators/objc_template_generator.rb +19 -19
  33. data/lib/redbreast/template_generators/swift_template_generator.rb +9 -10
  34. data/lib/redbreast/template_generators/tests/colors/objc_colors_tests_template_generator.rb +35 -0
  35. data/lib/redbreast/template_generators/tests/colors/swift_colors_tests_template_generator.rb +27 -0
  36. data/lib/redbreast/template_generators/tests/images/objc_images_tests_template_generator.rb +36 -0
  37. data/lib/redbreast/template_generators/tests/images/swift_images_tests_template_generator.rb +27 -0
  38. data/lib/redbreast/version.rb +1 -1
  39. data/redbreast.gemspec +22 -22
  40. metadata +54 -15
  41. data/lib/redbreast/commands/test_generator.rb +0 -56
  42. data/lib/redbreast/template_generators/tests/objc_tests_template_generator.rb +0 -39
  43. data/lib/redbreast/template_generators/tests/swift_tests_template_generator.rb +0 -31
@@ -1,28 +1,23 @@
1
- require_relative '../swift_template_generator'
1
+ require_relative '../swift_template_generator'
2
2
 
3
3
  module Redbreast
4
- module TemplateGenerator
5
- module Image
6
- class Swift < TemplateGenerator::Swift
7
- include ERB::Util
4
+ module TemplateGenerator
5
+ module Image
6
+ # Used for creating images in swift.
7
+ class Swift < TemplateGenerator::Swift
8
+ include ERB::Util
8
9
 
9
- def template()
10
- <<-TEMPLATE
10
+ def template
11
+ <<~TEMPLATE
12
+ import UIKit
11
13
 
12
- import UIKit
13
-
14
- //THIS FILE IS AUTOGENERATED, DO NOT EDIT BY HAND
15
- extension UIImage {
16
-
17
- <%- image_names.each do |name| -%>
18
- static var <%= clean_variable_name(name) %>: UIImage { return UIImage(named: "<%= name %>", in: <%= bundle[:reference] %>, compatibleWith: nil)! }
19
- <%- end -%>
20
-
21
- }
22
-
23
- TEMPLATE
24
- end
25
- end
14
+ //THIS FILE IS AUTOGENERATED, DO NOT EDIT BY HAND
15
+ <%= generate_extension('UIImage', app_name) %>
16
+ <%= generate_file_swift(names: asset_names, variable: 'static var %s: UIImage { return UIImage(named: "%s", in: %s, compatibleWith: nil)! }', bundle: bundle) %>
17
+ }
18
+ TEMPLATE
26
19
  end
20
+ end
27
21
  end
22
+ end
28
23
  end
@@ -1,24 +1,24 @@
1
+
1
2
  module Redbreast
2
- module TemplateGenerator
3
- class ObjC
4
- include ERB::Util
5
-
6
- def h_filename()
7
- fail NotImplementedError, 'Abstract Method'
8
- end
3
+ module TemplateGenerator
4
+ # Class for creating ObjC templates
5
+ class ObjC
6
+ include ERB::Util
7
+ def h_filename
8
+ raise NotImplementedError, 'Abstract Method'
9
+ end
9
10
 
10
- def m_filename()
11
- fail NotImplementedError, 'Abstract Method'
12
- end
11
+ def m_filename
12
+ raise NotImplementedError, 'Abstract Method'
13
+ end
13
14
 
14
- def h_template()
15
- fail NotImplementedError, 'Abstract Method'
16
- end
15
+ def h_template
16
+ raise NotImplementedError, 'Abstract Method'
17
+ end
17
18
 
18
- def m_template()
19
- fail NotImplementedError, 'Abstract Method'
20
- end
21
-
22
- end
19
+ def m_template
20
+ raise NotImplementedError, 'Abstract Method'
21
+ end
23
22
  end
24
- end
23
+ end
24
+ end
@@ -1,12 +1,11 @@
1
1
  module Redbreast
2
- module TemplateGenerator
3
- class Swift
4
- include ERB::Util
5
-
6
- def template()
7
- fail NotImplementedError, 'Abstract Method'
8
- end
9
-
10
- end
2
+ module TemplateGenerator
3
+ # Class for creating Swift templates
4
+ class Swift
5
+ include ERB::Util
6
+ def template
7
+ raise NotImplementedError, 'Abstract Method'
8
+ end
11
9
  end
12
- end
10
+ end
11
+ end
@@ -0,0 +1,35 @@
1
+ require 'redbreast/template_generators/objc_template_generator'
2
+
3
+ module Redbreast
4
+ module TemplateGenerator
5
+ module ColorTest
6
+ # Used for creating color tests in objective-c.
7
+ class ObjC < TemplateGenerator::ObjC
8
+ include ERB::Util
9
+ def h_template
10
+ nil
11
+ end
12
+
13
+ def m_template
14
+ <<~TEMPLATE
15
+
16
+ #import <XCTest/XCTest.h>
17
+ #import "UIColor+<%= app_name.nil? ? "Common" : app_name %>.h"
18
+
19
+ @interface <%= File.basename(bundle[:outputTestPathColors]) %> : XCTestCase
20
+
21
+ @end
22
+
23
+ @implementation Test
24
+
25
+ - (void)testExample
26
+ {<%= create_objc_test_cases(names: asset_names, variable: '\n\t[UIColor %s];')%>
27
+ }
28
+
29
+ @end
30
+ TEMPLATE
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,27 @@
1
+ require 'redbreast/template_generators/swift_template_generator'
2
+
3
+ module Redbreast
4
+ module TemplateGenerator
5
+ module ColorTest
6
+ # Used for creating color tests in swift.
7
+ class Swift < TemplateGenerator::Swift
8
+ include ERB::Util
9
+ def template
10
+ <<~TEMPLATE
11
+ import UIKit
12
+ import XCTest
13
+ @testable import <%= bundle[:testableImport] %>
14
+
15
+ //THIS FILE IS AUTOGENERATED, DO NOT EDIT BY HAND
16
+ class <%= File.basename(bundle[:outputTestPathColors], ".*") %>: XCTestCase {
17
+
18
+ func testIfColorsArePresent() {
19
+ <%= create_swift_test_cases(names: asset_names, declaration: '_ = UIColor.', app_name: app_name) %>
20
+ }
21
+ }
22
+ TEMPLATE
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,36 @@
1
+ require 'redbreast/template_generators/objc_template_generator'
2
+
3
+ module Redbreast
4
+ module TemplateGenerator
5
+ module ImageTest
6
+ # Used for creating image tests in objective-c.
7
+ class ObjC < TemplateGenerator::ObjC
8
+ include ERB::Util
9
+ def h_template
10
+ nil
11
+ end
12
+
13
+ def m_template
14
+ <<~TEMPLATE
15
+
16
+ #import <XCTest/XCTest.h>
17
+ #import "UIImage+<%= app_name.nil? ? "Common" : app_name %>.h"
18
+
19
+ @interface <%= File.basename(bundle[:outputTestPathImages]) %> : XCTestCase
20
+
21
+ @end
22
+
23
+ @implementation Test
24
+
25
+ - (void)testExample
26
+ {<%= create_objc_test_cases(names: asset_names, variable: '\n\t[UIImage %s];')%>
27
+ }
28
+
29
+ @end
30
+ TEMPLATE
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+
@@ -0,0 +1,27 @@
1
+ require 'redbreast/template_generators/swift_template_generator'
2
+
3
+ module Redbreast
4
+ module TemplateGenerator
5
+ module ImageTest
6
+ # Used for creating image tests in swift.
7
+ class Swift < TemplateGenerator::Swift
8
+ include ERB::Util
9
+ def template
10
+ <<~TEMPLATE
11
+ import UIKit
12
+ import XCTest
13
+ @testable import <%= bundle[:testableImport] %>
14
+
15
+ //THIS FILE IS AUTOGENERATED, DO NOT EDIT BY HAND
16
+ class <%= File.basename(bundle[:outputTestPathImages], ".*") %>: XCTestCase {
17
+
18
+ func testIfImagesArePresent() {
19
+ <%= create_swift_test_cases(names: asset_names, declaration: '_ = UIImage.', app_name: app_name) %>
20
+ }
21
+ }
22
+ TEMPLATE
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -1,3 +1,3 @@
1
1
  module Redbreast
2
- VERSION = "0.1.0"
2
+ VERSION = '1.0.2'
3
3
  end
data/redbreast.gemspec CHANGED
@@ -1,40 +1,40 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
1
+ lib = File.expand_path('lib', __dir__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require 'redbreast/version'
5
4
 
6
5
  Gem::Specification.new do |spec|
7
- spec.name = "redbreast"
8
- spec.version = Redbreast::VERSION
9
- spec.authors = ["Vlaho"]
10
- spec.email = ["vlaho.poluta@infinum.hr"]
6
+ spec.name = 'redbreast'
7
+ spec.version = Redbreast::VERSION
8
+ spec.authors = ['Maroje']
9
+ spec.email = ['maroje.marcelic@infinum.com']
11
10
 
12
- spec.summary = "A CLI for safe and strongly typed resources"
13
- spec.homepage = "https://github.com/infinum/redbreast"
14
- spec.license = "MIT"
11
+ spec.summary = 'A CLI for safe and strongly typed resources'
12
+ spec.homepage = 'https://github.com/infinum/redbreast'
13
+ spec.license = 'MIT'
15
14
 
16
15
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
17
16
  # to allow pushing to a single host or delete this section to allow pushing to any host.
18
17
  if spec.respond_to?(:metadata)
19
- spec.metadata['allowed_push_host'] = "https://rubygems.org"
18
+ spec.metadata['allowed_push_host'] = 'https://rubygems.org'
20
19
  else
21
- raise "RubyGems 2.0 or newer is required to protect against " \
22
- "public gem pushes."
20
+ raise 'RubyGems 2.0 or newer is required to protect against ' \
21
+ 'public gem pushes.'
23
22
  end
24
23
 
25
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
24
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
26
25
  f.match(%r{^(test|spec|features)/})
27
26
  end
28
- spec.bindir = "exe"
29
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
30
- spec.require_paths = ["lib"]
27
+ spec.bindir = 'exe'
28
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
29
+ spec.require_paths = ['lib']
31
30
 
32
- spec.add_development_dependency "bundler", "~> 1.14"
33
- spec.add_development_dependency "rake", "~> 10.0"
34
- spec.add_development_dependency "rspec", "~> 3.0"
31
+ spec.add_development_dependency 'bundler', '~> 1.14'
32
+ spec.add_development_dependency 'rake', '~> 10.0'
33
+ spec.add_development_dependency 'rspec', '~> 3.0'
34
+ spec.add_development_dependency 'rubocop', '~> 0.77'
35
35
 
36
- spec.add_dependency 'tty-prompt'
37
- spec.add_dependency 'commander'
38
36
  spec.add_dependency 'activesupport'
39
-
37
+ spec.add_dependency 'commander'
38
+ spec.add_dependency 'tty-prompt'
39
+ spec.add_dependency 'xcodeproj'
40
40
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redbreast
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
- - Vlaho
8
- autorequire:
7
+ - Maroje
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-05-31 00:00:00.000000000 Z
11
+ date: 2021-04-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -53,7 +53,21 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: tty-prompt
56
+ name: rubocop
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.77'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.77'
69
+ - !ruby/object:Gem::Dependency
70
+ name: activesupport
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
73
  - - ">="
@@ -81,7 +95,21 @@ dependencies:
81
95
  - !ruby/object:Gem::Version
82
96
  version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
- name: activesupport
98
+ name: tty-prompt
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: xcodeproj
85
113
  requirement: !ruby/object:Gem::Requirement
86
114
  requirements:
87
115
  - - ">="
@@ -94,9 +122,9 @@ dependencies:
94
122
  - - ">="
95
123
  - !ruby/object:Gem::Version
96
124
  version: '0'
97
- description:
125
+ description:
98
126
  email:
99
- - vlaho.poluta@infinum.hr
127
+ - maroje.marcelic@infinum.com
100
128
  executables:
101
129
  - redbreast
102
130
  extensions: []
@@ -105,6 +133,7 @@ files:
105
133
  - ".DS_Store"
106
134
  - ".gitignore"
107
135
  - ".rspec"
136
+ - ".rubocop.yml"
108
137
  - ".travis.yml"
109
138
  - CODE_OF_CONDUCT.md
110
139
  - Gemfile
@@ -114,10 +143,16 @@ files:
114
143
  - bin/console
115
144
  - bin/setup
116
145
  - exe/redbreast
146
+ - lib/.DS_Store
117
147
  - lib/redbreast.rb
148
+ - lib/redbreast/.DS_Store
149
+ - lib/redbreast/commands/color_generator.rb
150
+ - lib/redbreast/commands/color_test_generator.rb
151
+ - lib/redbreast/commands/configuration_installer.rb
118
152
  - lib/redbreast/commands/image_generator.rb
153
+ - lib/redbreast/commands/image_test_generator.rb
119
154
  - lib/redbreast/commands/setup.rb
120
- - lib/redbreast/commands/test_generator.rb
155
+ - lib/redbreast/crawlers/color_crawler.rb
121
156
  - lib/redbreast/crawlers/image_crawler.rb
122
157
  - lib/redbreast/error_handler.rb
123
158
  - lib/redbreast/helpers/general.rb
@@ -127,12 +162,17 @@ files:
127
162
  - lib/redbreast/serializers/objc_serializer.rb
128
163
  - lib/redbreast/serializers/serializer.rb
129
164
  - lib/redbreast/serializers/swift_serializer.rb
165
+ - lib/redbreast/template_generators/.DS_Store
166
+ - lib/redbreast/template_generators/colors/objc_colors_template_generator.rb
167
+ - lib/redbreast/template_generators/colors/swift_colors_template_generator.rb
130
168
  - lib/redbreast/template_generators/images/objc_images_template_generator.rb
131
169
  - lib/redbreast/template_generators/images/swift_images_template_generator.rb
132
170
  - lib/redbreast/template_generators/objc_template_generator.rb
133
171
  - lib/redbreast/template_generators/swift_template_generator.rb
134
- - lib/redbreast/template_generators/tests/objc_tests_template_generator.rb
135
- - lib/redbreast/template_generators/tests/swift_tests_template_generator.rb
172
+ - lib/redbreast/template_generators/tests/colors/objc_colors_tests_template_generator.rb
173
+ - lib/redbreast/template_generators/tests/colors/swift_colors_tests_template_generator.rb
174
+ - lib/redbreast/template_generators/tests/images/objc_images_tests_template_generator.rb
175
+ - lib/redbreast/template_generators/tests/images/swift_images_tests_template_generator.rb
136
176
  - lib/redbreast/version.rb
137
177
  - redbreast.gemspec
138
178
  homepage: https://github.com/infinum/redbreast
@@ -140,7 +180,7 @@ licenses:
140
180
  - MIT
141
181
  metadata:
142
182
  allowed_push_host: https://rubygems.org
143
- post_install_message:
183
+ post_install_message:
144
184
  rdoc_options: []
145
185
  require_paths:
146
186
  - lib
@@ -155,9 +195,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
155
195
  - !ruby/object:Gem::Version
156
196
  version: '0'
157
197
  requirements: []
158
- rubyforge_project:
159
- rubygems_version: 2.6.11
160
- signing_key:
198
+ rubygems_version: 3.0.6
199
+ signing_key:
161
200
  specification_version: 4
162
201
  summary: A CLI for safe and strongly typed resources
163
202
  test_files: []