hexx 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (23) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +4 -0
  3. data/lib/generators/controller/templates/routing_action_spec.erb +1 -1
  4. data/lib/generators/install/install.rb +78 -97
  5. data/lib/generators/install/templates/{spec → matchers}/controllers.erb +0 -0
  6. data/lib/generators/install/templates/{spec → matchers}/json_schema.erb +1 -1
  7. data/lib/generators/install/templates/{Gemfile.erb → root/Gemfile.erb} +0 -0
  8. data/lib/generators/install/templates/{Guardfile.erb → root/Guardfile.erb} +0 -0
  9. data/lib/generators/install/templates/{LICENSE.erb → root/LICENSE.erb} +0 -0
  10. data/lib/generators/install/templates/{README.erb → root/README.erb} +0 -0
  11. data/lib/generators/install/templates/{Rakefile.erb → root/Rakefile.erb} +0 -0
  12. data/lib/generators/install/templates/{coveralls.erb → root/coveralls.erb} +0 -0
  13. data/lib/generators/install/templates/{gemspec.erb → root/gemspec.erb} +0 -0
  14. data/lib/generators/install/templates/{gitignore.erb → root/gitignore.erb} +0 -0
  15. data/lib/generators/install/templates/{rspec.erb → root/rspec.erb} +0 -0
  16. data/lib/generators/install/templates/{rubocop.erb → root/rubocop.erb} +0 -0
  17. data/lib/generators/install/templates/{travis.erb → root/travis.erb} +0 -0
  18. data/lib/generators/request/templates/request_spec.erb +2 -2
  19. data/lib/generators/use_case/templates/use_case.erb +25 -1
  20. data/lib/generators/use_case/templates/use_case_spec.erb +3 -3
  21. data/lib/hexx/version.rb +1 -1
  22. metadata +15 -16
  23. data/lib/generators/install/templates/CHANGELOG.erb +0 -13
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5c91a43fe5d06b1d017e5361a82e3c6ea6fa6a82
4
- data.tar.gz: 117f0a4bbe5433c6735d964fe1e180fda9b5a257
3
+ metadata.gz: d65195d201714af776e125147d354a379dac49f6
4
+ data.tar.gz: 8cae2ca8e5922850e7287688dee8997c3f7a0576
5
5
  SHA512:
6
- metadata.gz: 2e3dd4e4d761336d330861d7ec3e48a51941c5ae8400edc3f325d390deaee1549946b78e398287d1b0b2897a8bf2e1753f5bdf3afc890d57433fcf78c6d597ce
7
- data.tar.gz: 72eedbc4ba915c1865096d77a195cbc4e96e912b57fad709cf47d3bc115cf47c00ab58e0e8a6f7a6e5deb07bceabfe835fa4f23686c54e0236e67dfd56a16691
6
+ metadata.gz: 627cba9adf41b1c286efe70c45edcc347a440bc1866453ca8ccb01bee057cbbf1a5e14a3be9c4e6203d1d304b411eb659e1357490db1740173847bf96338731b
7
+ data.tar.gz: 65bdbf6099b498c3600f18c2034e49d3d6f4064ec5a6dcd124efc0cba29125e912d113d1f0cff1a569fd67166e55225a75887d2bdc00bcae1109abb0a9cf2861
data/.rubocop.yml CHANGED
@@ -6,6 +6,10 @@ Lint/RescueException:
6
6
  Exclude:
7
7
  - 'spec/**/*'
8
8
 
9
+ Metrics/ClassLength:
10
+ Exclude:
11
+ - 'lib/generators/**/*.rb'
12
+
9
13
  Style/AccessorMethodName:
10
14
  Exclude:
11
15
  - 'spec/**/*'
@@ -4,7 +4,7 @@
4
4
  # let(:action) do
5
5
  # { controller: "<%= gem_name %>/#{ root }", action: "<%= action_name %>" }
6
6
  # end
7
-
7
+
8
8
  # subject(:request) { { <%= action_type %>: "/#{ root }/something" } }
9
9
 
10
10
  # it "is routable in json" do
@@ -15,119 +15,48 @@ module Hexx
15
15
 
16
16
  argument :name
17
17
 
18
- def remove_app
18
+ def remove_app_folder
19
19
  run "rm app -f -r"
20
20
  end
21
21
 
22
- def update_bin
22
+ def update_bin_files
23
23
  template "bin/rails.erb", "bin/rails", force: true
24
24
  end
25
25
 
26
- def update_config
27
- template "config/routes.erb", "config/routes.rb", force: true
26
+ def add_config_files
28
27
  run "mkdir config/locales -p -v"
28
+ template "config/routes.erb", "config/routes.rb", force: true
29
29
  end
30
30
 
31
- def update_lib
32
- template "lib/lib.erb", "lib/#{ gem_name }.rb", force: true
33
- %w(engine version).each do |name|
34
- template(
35
- "lib/#{ name }.erb",
36
- "lib/#{ gem_name }/#{ name }.rb",
37
- force: true
38
- )
39
- end
40
- end
41
-
42
- def add_tasks
31
+ def add_lib_files
43
32
  run "mkdir lib/tasks -p -v"
44
- template "lib/task", "lib/tasks/install.rb", force: true
45
- end
46
-
47
- def add_spec_helper
48
- template(
49
- "spec/spec_helper.erb",
50
- "spec/spec_helper.rb",
51
- force: true
52
- )
53
- end
54
-
55
- def add_spec_initializers
56
- initializers.each do |name|
57
- template(
58
- "spec/#{ name }.erb",
59
- "spec/support/initializers/#{ name }.rb",
60
- force: true
61
- )
62
- end
63
- end
64
-
65
- def add_spec_matchers
66
- matchers.each do |name|
67
- template(
68
- "spec/#{ name }.erb",
69
- "spec/support/matchers/#{ name }.rb",
70
- force: true
71
- )
72
- end
73
- end
74
-
75
- def add_json_schemas_path
76
- run "mkdir spec/requests/json_schemas/messages -p -v"
77
- end
78
-
79
- def add_get_errors_json_schema
80
- template(
81
- "json_schemas/get_errors.erb",
82
- "spec/requests/json_schemas/get_errors.json",
83
- force: true
84
- )
33
+ install_from_templates lib_files
85
34
  end
86
35
 
87
- def add_messages_json_schemas
88
- %w(error success).each do |type|
89
- template(
90
- "json_schemas/#{ type }.erb",
91
- "spec/requests/json_schemas/messages/#{ type }.json",
92
- force: true
93
- )
94
- end
36
+ def add_spec_files
37
+ run "mkdir spec/requests/json_schemas/shared -p -v"
38
+ template "spec/spec_helper.erb", "spec/spec_helper.rb", force: true
39
+ install_from_templates spec_initializers
40
+ install_from_templates matchers_files
41
+ install_from_templates json_files
95
42
  end
96
43
 
97
- def add_services
98
- template "coveralls.erb", ".coveralls.yml", force: true
99
- template "gitignore.erb", ".gitignore", force: true
100
- template "rspec.erb", ".rspec", force: true
101
- template "rubocop.erb", ".rubocop.yml", force: true
102
- template "travis.erb", ".travis.yml", force: true
103
- template "Rakefile.erb", "Rakefile", force: true
104
- template "Guardfile.erb", "Guardfile", force: true
105
- end
106
-
107
- def add_docs
108
- template "CHANGELOG.erb", "CHANGELOG.rdoc", force: true
44
+ def add_root_files
109
45
  run "rm MIT-LICENSE -f -r"
110
- template "LICENSE.erb", "LICENSE.rdoc", force: true
111
- template "README.erb", "README.rdoc", force: true
112
- end
113
-
114
- def update_settings
115
- template "Gemfile.erb", "Gemfile", force: true
116
- template(
117
- "gemspec.erb",
118
- "#{ gem_name }.gemspec",
119
- force: true
120
- )
46
+ install_from_templates settings_files
47
+ install_from_templates root_files
121
48
  end
122
49
 
123
50
  def run_docs
124
- run "subl README.rdoc" \
125
- " lib/#{ gem_name }.rb" \
126
- " #{ gem_name }.gemspec"
51
+ run "subl README.rdoc lib/#{ gem_name }.rb #{ gem_name }.gemspec"
127
52
  end
128
53
 
129
54
  private
130
55
 
56
+ def install_from_templates(hash)
57
+ hash.each { |erb, file| template erb, file, force: true }
58
+ end
59
+
131
60
  def gem_name
132
61
  @gem_name ||= name.snake_case
133
62
  end
@@ -136,16 +65,68 @@ module Hexx
136
65
  @module_name ||= name.camel_case
137
66
  end
138
67
 
68
+ def lib_files
69
+ @lib_files ||= {
70
+ "lib/lib.erb" => "lib/#{ gem_name }.rb",
71
+ "lib/engine.erb" => "lib/#{ gem_name }/engine.rb",
72
+ "lib/version.erb" => "lib/#{ gem_name }/version.rb",
73
+ "lib/task" => "lib/tasks/#{ gem_name }_install.rb"
74
+ }
75
+ end
76
+
77
+ def spec_initializers
78
+ @spec_initializers ||= initializers.reduce({}) do |hash, name|
79
+ hash["spec/#{ name }.erb"] = "spec/support/initializers/#{ name }.rb"
80
+ end
81
+ end
82
+
139
83
  def initializers
140
- %w(
141
- caching coveralls database_cleaner factory_girl_rails
142
- focus garbage_collection i18n migrations rails random_order rspec
143
- timecop
84
+ @initializers ||= %w(
85
+ caching coveralls database_cleaner factory_girl_rails focus
86
+ garbage_collection i18n migrations rails random_order rspec timecop
144
87
  )
145
88
  end
146
89
 
147
- def matchers
148
- %w(controllers json_schema)
90
+ def matchers_files
91
+ @matchers_files ||= begin
92
+ from, to = "matchers/", "spec/support/matchers/"
93
+ {
94
+ "#{ from }controllers.erb" => "#{ to }controllers.rb",
95
+ "#{ from }json_schema.erb" => "#{ to }json_schema.rb"
96
+ }
97
+ end
98
+ end
99
+
100
+ def settings_files
101
+ @settings_files ||= {
102
+ "root/coveralls.erb" => ".coveralls.yml",
103
+ "root/rspec.erb" => ".rspec",
104
+ "root/rubocop.erb" => ".rubocop.yml",
105
+ "root/travis.erb" => ".travis.yml",
106
+ "root/Rakefile.erb" => "Rakefile",
107
+ "root/Guardfile.erb" => "Guardfile"
108
+ }
109
+ end
110
+
111
+ def root_files
112
+ @root_files ||= {
113
+ "root/gitignore.erb" => ".gitignore",
114
+ "root/LICENSE.erb" => "LICENSE.rdoc",
115
+ "root/README.erb" => "README.rdoc",
116
+ "root/Gemfile.erb" => "Gemfile",
117
+ "root/gemspec.erb" => "#{ gem_name }.gemspec"
118
+ }
119
+ end
120
+
121
+ def json_files
122
+ @json_files ||= begin
123
+ from, to = "json_schemas/", "spec/requests/json_schemas/"
124
+ {
125
+ "#{ from }get_errors.erb" => "#{ to }get_errors.json",
126
+ "#{ from }error.erb" => "#{ to }shared/error.json",
127
+ "#{ from }success.erb" => "#{ to }shared/success.json"
128
+ }
129
+ end
149
130
  end
150
131
  end
151
132
  end
@@ -5,6 +5,6 @@ RSpec::Matchers.define :match_json_schema do |schema|
5
5
  match do |response|
6
6
  schema_directory = "#{Dir.pwd}/spec/requests/json_schemas"
7
7
  schema_path = "#{schema_directory}/#{schema}.json"
8
- JSON::Validator.validate!(schema_path, response, strict: true)
8
+ JSON::Validator.validate! schema_path, response
9
9
  end
10
10
  end
@@ -28,7 +28,7 @@ module <%= module_name %>
28
28
  # before { call_request params }
29
29
 
30
30
  # it "changes something" do
31
- # expect (something).to eq something
31
+ # expect(something).to eq something
32
32
  # end
33
33
 
34
34
  # it "responds with 200" do
@@ -51,7 +51,7 @@ module <%= module_name %>
51
51
  # before { call_request params }
52
52
 
53
53
  # it "doesn't change something" do
54
- # expect (something).to eq something
54
+ # expect(something).to eq something
55
55
  # end
56
56
 
57
57
  # it "responds with 400" do
@@ -1,6 +1,21 @@
1
1
  module <%= module_name %>
2
2
 
3
- # TODO: add a description
3
+ # TODO: What does the case do?
4
+ #
5
+ # @example
6
+ # use_case = <%= class_name %>.new(TODO: TODO)
7
+ # use_case.subscribe some_listener
8
+ # use_case.run
9
+ #
10
+ # Methods:
11
+ # <tt>.new</tt>:: initializes a use case with some uuid.
12
+ # <tt>#subscribe</tt>:: subscribes listeners for <tt>#run</tt>'s notifications
13
+ # <tt>#run</tt>:: runs a case and returns TODO or +nil+
14
+ # <tt>#run!</tt>:: runs a case. Fails if no firm found.
15
+ #
16
+ # The +run+ method returns TODO (or +nil+) and notifies its listeners:
17
+ # <tt>:TODO</tt>:: when TODO.
18
+ #
4
19
  class <%= class_name %> < Hexx::UseCase
5
20
 
6
21
  # Allow necessary parameters here:
@@ -9,6 +24,15 @@ module <%= module_name %>
9
24
  # Add case-specific validations
10
25
  # validates :some_attribute, presence: true
11
26
 
27
+ # Runs the case and fails if TODO.
28
+ #
29
+ # @example
30
+ # <%= class_name %>.new(TODO: TODO).run!
31
+ # # => #<<%= module_name %>::TODO ...>
32
+ #
33
+ # <%= class_name %>.new.run!
34
+ # # => fails with #<TODO ...>
35
+ #
12
36
  def run!
13
37
  validate!
14
38
  # describe other rules here
@@ -13,7 +13,7 @@ module <%= module_name %>
13
13
  # Prepare variables
14
14
  # ==========================================================================
15
15
 
16
- # let!(:params) { { key: value } }
16
+ # let!(:params) { { "key" => value } }
17
17
  # let(:listener) { double "listener" }
18
18
 
19
19
  # def prepare_case(params)
@@ -28,7 +28,7 @@ module <%= module_name %>
28
28
 
29
29
  describe "#run" do
30
30
 
31
- # context "with proper params" do
31
+ # context "with valid params" do
32
32
 
33
33
  # subject(:use_case) { prepare_case params }
34
34
 
@@ -49,7 +49,7 @@ module <%= module_name %>
49
49
  # end
50
50
  # end
51
51
 
52
- # context "with improper params" do
52
+ # context "with invalid params" do
53
53
 
54
54
  # before { params[:something] = something }
55
55
  # subject(:use_case) { prepare_case params }
data/lib/hexx/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
  module Hexx
3
3
 
4
4
  # Current release.
5
- VERSION = "1.1.0"
5
+ VERSION = "1.1.1"
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hexx
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kozin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-23 00:00:00.000000000 Z
11
+ date: 2014-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -174,17 +174,8 @@ files:
174
174
  - lib/generators/domain/domain.rb
175
175
  - lib/generators/domain/templates/spec.erb
176
176
  - lib/generators/install/install.rb
177
- - lib/generators/install/templates/CHANGELOG.erb
178
- - lib/generators/install/templates/Gemfile.erb
179
- - lib/generators/install/templates/Guardfile.erb
180
- - lib/generators/install/templates/LICENSE.erb
181
- - lib/generators/install/templates/README.erb
182
- - lib/generators/install/templates/Rakefile.erb
183
177
  - lib/generators/install/templates/bin/rails.erb
184
178
  - lib/generators/install/templates/config/routes.erb
185
- - lib/generators/install/templates/coveralls.erb
186
- - lib/generators/install/templates/gemspec.erb
187
- - lib/generators/install/templates/gitignore.erb
188
179
  - lib/generators/install/templates/json_schemas/error.erb
189
180
  - lib/generators/install/templates/json_schemas/get_errors.erb
190
181
  - lib/generators/install/templates/json_schemas/success.erb
@@ -192,24 +183,32 @@ files:
192
183
  - lib/generators/install/templates/lib/lib.erb
193
184
  - lib/generators/install/templates/lib/task.erb
194
185
  - lib/generators/install/templates/lib/version.erb
195
- - lib/generators/install/templates/rspec.erb
196
- - lib/generators/install/templates/rubocop.erb
186
+ - lib/generators/install/templates/matchers/controllers.erb
187
+ - lib/generators/install/templates/matchers/json_schema.erb
188
+ - lib/generators/install/templates/root/Gemfile.erb
189
+ - lib/generators/install/templates/root/Guardfile.erb
190
+ - lib/generators/install/templates/root/LICENSE.erb
191
+ - lib/generators/install/templates/root/README.erb
192
+ - lib/generators/install/templates/root/Rakefile.erb
193
+ - lib/generators/install/templates/root/coveralls.erb
194
+ - lib/generators/install/templates/root/gemspec.erb
195
+ - lib/generators/install/templates/root/gitignore.erb
196
+ - lib/generators/install/templates/root/rspec.erb
197
+ - lib/generators/install/templates/root/rubocop.erb
198
+ - lib/generators/install/templates/root/travis.erb
197
199
  - lib/generators/install/templates/spec/caching.erb
198
- - lib/generators/install/templates/spec/controllers.erb
199
200
  - lib/generators/install/templates/spec/coveralls.erb
200
201
  - lib/generators/install/templates/spec/database_cleaner.erb
201
202
  - lib/generators/install/templates/spec/factory_girl_rails.erb
202
203
  - lib/generators/install/templates/spec/focus.erb
203
204
  - lib/generators/install/templates/spec/garbage_collection.erb
204
205
  - lib/generators/install/templates/spec/i18n.erb
205
- - lib/generators/install/templates/spec/json_schema.erb
206
206
  - lib/generators/install/templates/spec/migrations.erb
207
207
  - lib/generators/install/templates/spec/rails.erb
208
208
  - lib/generators/install/templates/spec/random_order.erb
209
209
  - lib/generators/install/templates/spec/rspec.erb
210
210
  - lib/generators/install/templates/spec/spec_helper.erb
211
211
  - lib/generators/install/templates/spec/timecop.erb
212
- - lib/generators/install/templates/travis.erb
213
212
  - lib/generators/request/request.rb
214
213
  - lib/generators/request/templates/request_spec.erb
215
214
  - lib/generators/use_case/templates/use_case.erb
@@ -1,13 +0,0 @@
1
- = CHANGELOG
2
-
3
- == <%= Time.now.strftime("%Y-%m-%d") %> 0.0.1-alpha
4
-
5
- === Added
6
-
7
- === Deleted
8
-
9
- === Fixed
10
-
11
- === Deprecated
12
-
13
- === Security