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.
- checksums.yaml +4 -4
- data/.rubocop.yml +4 -0
- data/lib/generators/controller/templates/routing_action_spec.erb +1 -1
- data/lib/generators/install/install.rb +78 -97
- data/lib/generators/install/templates/{spec → matchers}/controllers.erb +0 -0
- data/lib/generators/install/templates/{spec → matchers}/json_schema.erb +1 -1
- data/lib/generators/install/templates/{Gemfile.erb → root/Gemfile.erb} +0 -0
- data/lib/generators/install/templates/{Guardfile.erb → root/Guardfile.erb} +0 -0
- data/lib/generators/install/templates/{LICENSE.erb → root/LICENSE.erb} +0 -0
- data/lib/generators/install/templates/{README.erb → root/README.erb} +0 -0
- data/lib/generators/install/templates/{Rakefile.erb → root/Rakefile.erb} +0 -0
- data/lib/generators/install/templates/{coveralls.erb → root/coveralls.erb} +0 -0
- data/lib/generators/install/templates/{gemspec.erb → root/gemspec.erb} +0 -0
- data/lib/generators/install/templates/{gitignore.erb → root/gitignore.erb} +0 -0
- data/lib/generators/install/templates/{rspec.erb → root/rspec.erb} +0 -0
- data/lib/generators/install/templates/{rubocop.erb → root/rubocop.erb} +0 -0
- data/lib/generators/install/templates/{travis.erb → root/travis.erb} +0 -0
- data/lib/generators/request/templates/request_spec.erb +2 -2
- data/lib/generators/use_case/templates/use_case.erb +25 -1
- data/lib/generators/use_case/templates/use_case_spec.erb +3 -3
- data/lib/hexx/version.rb +1 -1
- metadata +15 -16
- data/lib/generators/install/templates/CHANGELOG.erb +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d65195d201714af776e125147d354a379dac49f6
|
4
|
+
data.tar.gz: 8cae2ca8e5922850e7287688dee8997c3f7a0576
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 627cba9adf41b1c286efe70c45edcc347a440bc1866453ca8ccb01bee057cbbf1a5e14a3be9c4e6203d1d304b411eb659e1357490db1740173847bf96338731b
|
7
|
+
data.tar.gz: 65bdbf6099b498c3600f18c2034e49d3d6f4064ec5a6dcd124efc0cba29125e912d113d1f0cff1a569fd67166e55225a75887d2bdc00bcae1109abb0a9cf2861
|
data/.rubocop.yml
CHANGED
@@ -15,119 +15,48 @@ module Hexx
|
|
15
15
|
|
16
16
|
argument :name
|
17
17
|
|
18
|
-
def
|
18
|
+
def remove_app_folder
|
19
19
|
run "rm app -f -r"
|
20
20
|
end
|
21
21
|
|
22
|
-
def
|
22
|
+
def update_bin_files
|
23
23
|
template "bin/rails.erb", "bin/rails", force: true
|
24
24
|
end
|
25
25
|
|
26
|
-
def
|
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
|
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
|
-
|
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
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
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
|
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
|
-
|
111
|
-
|
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
|
-
|
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
|
148
|
-
|
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
|
File without changes
|
@@ -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!
|
8
|
+
JSON::Validator.validate! schema_path, response
|
9
9
|
end
|
10
10
|
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -28,7 +28,7 @@ module <%= module_name %>
|
|
28
28
|
# before { call_request params }
|
29
29
|
|
30
30
|
# it "changes something" do
|
31
|
-
# expect
|
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
|
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:
|
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
|
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
|
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
|
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
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.
|
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-
|
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/
|
196
|
-
- lib/generators/install/templates/
|
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
|