hexx 1.1.0 → 1.1.1

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 (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