stationed 0.4.0 → 0.5.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/HISTORY.md +4 -0
- data/lib/stationed/generators/app_generator.rb +1 -1
- data/lib/stationed/generators/plugins/poltergeist.rb +21 -0
- data/lib/stationed/generators/plugins/stationed.rb +3 -1
- data/lib/stationed/generators/plugins/styles.rb +7 -5
- data/lib/stationed/generators/templates/_error_notification.scss +3 -0
- data/lib/stationed/generators/templates/_input_wrapper_default.scss +68 -0
- data/lib/stationed/generators/templates/application.scss +1 -1
- data/lib/stationed/generators/templates/database_cleaner.rb +1 -1
- data/lib/stationed/generators/templates/paginating_decorator.rb +1 -1
- data/lib/stationed/generators/templates/poltergeist.rb +2 -0
- data/lib/stationed/generators/templates/rubocop.rake +1 -1
- data/lib/stationed/version.rb +1 -1
- data/lib/templates/haml/scaffold/_form.html.haml +2 -2
- data/lib/templates/rails/scaffold_controller/controller.rb +1 -1
- data/lib/templates/rspec/scaffold/controller_spec.rb +15 -14
- data/lib/templates/rspec/scaffold/edit_spec.rb +1 -3
- data/lib/templates/rspec/scaffold/index_spec.rb +1 -3
- data/lib/templates/rspec/scaffold/new_spec.rb +1 -3
- data/lib/templates/rspec/scaffold/routing_spec.rb +1 -3
- data/lib/templates/rspec/scaffold/show_spec.rb +1 -3
- data/spec/dummy/log/test.log +0 -1742
- metadata +7 -9
- data/lib/stationed/generators/plugins/capybara_webkit.rb +0 -22
- data/lib/stationed/generators/templates/capybara_webkit.rb +0 -1
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 733060c6d3cd4844ae711d77c2dd16da04120350
|
4
|
+
data.tar.gz: 0fca0d5e034005561d405c615d95c5eef12f998e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 58fba6b9f02dddbf43f2a416a274f5e858beb8803ada47d7486e509ca27d5de6534691c987e1d604372fb736c5d1a15febe821ba1be743dfcca000f4796aa0f5
|
7
|
+
data.tar.gz: cf84b738ea05008af6a972f6cd3ab1a6af97b0d4b941dc7c6b338b6c4db90f4d3e216f7a7e00208b91ea46f2fb145b0565d5453d06881b96f882d54c28865805
|
data/HISTORY.md
CHANGED
@@ -17,7 +17,7 @@ module Stationed
|
|
17
17
|
prepend Plugins::FactoryGirl
|
18
18
|
prepend Plugins::DatabaseCleaner
|
19
19
|
prepend Plugins::Capybara
|
20
|
-
prepend Plugins::
|
20
|
+
prepend Plugins::Poltergeist
|
21
21
|
prepend Plugins::Pundit
|
22
22
|
prepend Plugins::Yard
|
23
23
|
prepend Plugins::Foreman
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Stationed
|
2
|
+
module Generators
|
3
|
+
module Plugins
|
4
|
+
module Poltergeist
|
5
|
+
def self.prepended(base)
|
6
|
+
base.class_option :poltergeist,
|
7
|
+
type: :boolean,
|
8
|
+
default: true,
|
9
|
+
desc: 'Include Poltergeist for headless browser testing'
|
10
|
+
end
|
11
|
+
|
12
|
+
def finish_template
|
13
|
+
return super unless options[:capybara] && options[:poltergeist]
|
14
|
+
gem 'poltergeist', group: :test
|
15
|
+
copy_file 'poltergeist.rb', 'spec/support/poltergeist.rb'
|
16
|
+
super
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'stationed/version'
|
2
|
+
|
1
3
|
module Stationed
|
2
4
|
module Generators
|
3
5
|
module Plugins
|
@@ -11,7 +13,7 @@ module Stationed
|
|
11
13
|
|
12
14
|
def finish_template
|
13
15
|
return super unless options[:stationed]
|
14
|
-
gem 'stationed',
|
16
|
+
gem 'stationed', ::Stationed::VERSION
|
15
17
|
super
|
16
18
|
end
|
17
19
|
end
|
@@ -15,9 +15,11 @@ module Stationed
|
|
15
15
|
gem 'neat'
|
16
16
|
gem 'bitters'
|
17
17
|
remove_file 'app/assets/stylesheets/application.css'
|
18
|
-
copy_file 'application.scss',
|
19
|
-
copy_file 'layout.scss',
|
20
|
-
copy_file '
|
18
|
+
copy_file 'application.scss', 'app/assets/stylesheets/application.scss'
|
19
|
+
copy_file 'layout.scss', 'app/assets/stylesheets/_layout.scss'
|
20
|
+
copy_file '_input_wrapper_default.scss', 'app/assets/stylesheets/modules/_input_wrapper_default.scss'
|
21
|
+
copy_file '_error_notification.scss', 'app/assets/stylesheets/modules/_error_notification.scss'
|
22
|
+
copy_file 'normalize.css', 'vendor/assets/stylesheets/normalize.css'
|
21
23
|
super
|
22
24
|
end
|
23
25
|
|
@@ -25,8 +27,8 @@ module Stationed
|
|
25
27
|
super
|
26
28
|
return unless options[:styles]
|
27
29
|
run 'bitters install'
|
28
|
-
FileUtils.mv '
|
29
|
-
gsub_file 'app/assets/stylesheets/
|
30
|
+
FileUtils.mv 'base', 'app/assets/stylesheets/base'
|
31
|
+
gsub_file 'app/assets/stylesheets/base/_base.scss', %r{// @import}, '@import'
|
30
32
|
end
|
31
33
|
end
|
32
34
|
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
.input {
|
2
|
+
@include row;
|
3
|
+
margin-bottom: $base-line-height / 2;
|
4
|
+
|
5
|
+
abbr[title=required] {
|
6
|
+
border: none;
|
7
|
+
color: darken($error-color, 60);
|
8
|
+
}
|
9
|
+
|
10
|
+
label {
|
11
|
+
font-weight: normal;
|
12
|
+
|
13
|
+
&.required:after {
|
14
|
+
content: "";
|
15
|
+
}
|
16
|
+
|
17
|
+
abbr {
|
18
|
+
display: inline;
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
22
|
+
.hint {
|
23
|
+
color: $medium-gray;
|
24
|
+
}
|
25
|
+
|
26
|
+
&.field-with-errors {
|
27
|
+
label {
|
28
|
+
font-weight: bold;
|
29
|
+
color: darken($error-color, 60);
|
30
|
+
}
|
31
|
+
|
32
|
+
textarea,
|
33
|
+
#{$all-text-inputs},
|
34
|
+
select[multiple=multiple] {
|
35
|
+
border-color: darken($error-color, 60);
|
36
|
+
border-bottom-left-radius: 0;
|
37
|
+
border-bottom-right-radius: 0;
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
.error {
|
42
|
+
@include flash($error-color);
|
43
|
+
border: 1px solid darken($error-color, 60);
|
44
|
+
border-top: 0;
|
45
|
+
padding: ($base-line-height / 4);
|
46
|
+
margin: 0 0 ($base-line-height / 2);
|
47
|
+
border-bottom-left-radius: $form-border-radius;
|
48
|
+
border-bottom-right-radius: $form-border-radius;
|
49
|
+
}
|
50
|
+
|
51
|
+
.input-label {
|
52
|
+
@include span-columns(3);
|
53
|
+
}
|
54
|
+
|
55
|
+
.input-field {
|
56
|
+
@include span-columns(9);
|
57
|
+
}
|
58
|
+
|
59
|
+
textarea,
|
60
|
+
#{$all-text-inputs},
|
61
|
+
select {
|
62
|
+
margin: 0;
|
63
|
+
}
|
64
|
+
|
65
|
+
&.datetime select {
|
66
|
+
display: inline;
|
67
|
+
}
|
68
|
+
}
|
data/lib/stationed/version.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
= form_for(@<%= singular_table_name %>) do |f|
|
2
2
|
= f.error_notification
|
3
|
-
= f.
|
3
|
+
= f.full_error :base
|
4
4
|
|
5
5
|
.form-inputs
|
6
6
|
<%- attributes.each do |attribute| -%>
|
@@ -8,4 +8,4 @@
|
|
8
8
|
<%- end -%>
|
9
9
|
|
10
10
|
.form-actions
|
11
|
-
= f.
|
11
|
+
= f.button :submit
|
@@ -8,7 +8,7 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
8
8
|
before_action :set_<%= singular_table_name %>, only: %i[show edit update destroy]
|
9
9
|
|
10
10
|
def index
|
11
|
-
@<%= plural_table_name %> = policy_scope(<%= orm_class.all(class_name) %>).decorate
|
11
|
+
@<%= plural_table_name %> = policy_scope(<%= orm_class.all(class_name) %>).page(params[:page]).decorate
|
12
12
|
respond_with @<%= plural_table_name %>
|
13
13
|
end
|
14
14
|
|
@@ -1,7 +1,5 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
1
|
<% module_namespacing do -%>
|
4
|
-
describe <%= controller_class_name %>Controller do
|
2
|
+
RSpec.describe <%= controller_class_name %>Controller, type: :controller do
|
5
3
|
subject { response }
|
6
4
|
|
7
5
|
<% unless options[:singleton] -%>
|
@@ -10,8 +8,9 @@ describe <%= controller_class_name %>Controller do
|
|
10
8
|
|
11
9
|
before do
|
12
10
|
allow(<%= class_name %>).to receive(:all).and_return(<%= table_name %>)
|
13
|
-
<%= class_name %>Policy.
|
11
|
+
allow_any_instance_of(<%= class_name %>Policy).to receive(:index?).and_return(true)
|
14
12
|
allow(Array).to receive(:policy_class).and_return(<%= class_name %>Policy)
|
13
|
+
allow(<%= table_name %>).to receive(:page).and_return(<%= table_name %>)
|
15
14
|
allow(<%= table_name %>).to receive(:decorate).and_return(<%= table_name %>)
|
16
15
|
end
|
17
16
|
|
@@ -38,7 +37,7 @@ describe <%= controller_class_name %>Controller do
|
|
38
37
|
|
39
38
|
before do
|
40
39
|
allow(<%= class_name %>).to receive(:find).with(<%= file_name %>.to_param).and_return(<%= file_name %>)
|
41
|
-
<%= class_name %>Policy.
|
40
|
+
allow_any_instance_of(<%= class_name %>Policy).to receive(:show?).and_return(true)
|
42
41
|
end
|
43
42
|
|
44
43
|
describe 'response' do
|
@@ -63,7 +62,7 @@ describe <%= controller_class_name %>Controller do
|
|
63
62
|
|
64
63
|
before do
|
65
64
|
allow(<%= class_name %>).to receive(:new).and_return(<%= file_name %>)
|
66
|
-
<%= class_name %>Policy.
|
65
|
+
allow_any_instance_of(<%= class_name %>Policy).to receive(:new?).and_return(true)
|
67
66
|
end
|
68
67
|
|
69
68
|
describe 'response' do
|
@@ -88,7 +87,7 @@ describe <%= controller_class_name %>Controller do
|
|
88
87
|
|
89
88
|
before do
|
90
89
|
allow(<%= class_name %>).to receive(:find).with(<%= file_name %>.to_param).and_return(<%= file_name %>)
|
91
|
-
<%= class_name %>Policy.
|
90
|
+
allow_any_instance_of(<%= class_name %>Policy).to receive(:edit?).and_return(true)
|
92
91
|
end
|
93
92
|
|
94
93
|
describe 'response' do
|
@@ -110,7 +109,7 @@ describe <%= controller_class_name %>Controller do
|
|
110
109
|
|
111
110
|
describe 'POST create' do
|
112
111
|
before do
|
113
|
-
<%= class_name %>Policy.
|
112
|
+
allow_any_instance_of(<%= class_name %>Policy).to receive(:create?).and_return(true)
|
114
113
|
end
|
115
114
|
|
116
115
|
describe 'with valid params' do
|
@@ -158,26 +157,28 @@ describe <%= controller_class_name %>Controller do
|
|
158
157
|
|
159
158
|
before do
|
160
159
|
allow(<%= class_name %>).to receive(:find).with(<%= file_name %>.to_param).and_return(<%= file_name %>)
|
161
|
-
<%= class_name %>Policy.
|
160
|
+
allow_any_instance_of(<%= class_name %>Policy).to receive(:update?).and_return(true)
|
162
161
|
end
|
163
162
|
|
164
163
|
describe 'with valid params' do
|
164
|
+
let(:attributes) { attributes_for(:<%= file_name %>) }
|
165
|
+
|
165
166
|
before do
|
166
167
|
allow(<%= file_name %>).to receive(:update).and_return(true)
|
167
168
|
end
|
168
169
|
|
169
170
|
it 'updates the requested <%= ns_file_name %>' do
|
170
|
-
expect(<%= file_name %>).to receive(:update).with(
|
171
|
-
put :update, id: <%= file_name %>.to_param, <%= ns_file_name %>:
|
171
|
+
expect(<%= file_name %>).to receive(:update).with(attributes.stringify_keys)
|
172
|
+
put :update, id: <%= file_name %>.to_param, <%= ns_file_name %>: attributes
|
172
173
|
end
|
173
174
|
|
174
175
|
it 'assigns the requested <%= ns_file_name %> as @<%= ns_file_name %>' do
|
175
|
-
put :update, id: <%= file_name %>.to_param, <%= ns_file_name %>:
|
176
|
+
put :update, id: <%= file_name %>.to_param, <%= ns_file_name %>: attributes
|
176
177
|
expect(assigns(:<%= ns_file_name %>)).to eq(<%= file_name %>)
|
177
178
|
end
|
178
179
|
|
179
180
|
it 'redirects to the <%= ns_file_name %>' do
|
180
|
-
put :update, id: <%= file_name %>.to_param, <%= ns_file_name %>:
|
181
|
+
put :update, id: <%= file_name %>.to_param, <%= ns_file_name %>: attributes
|
181
182
|
expect(response).to redirect_to(<%= file_name %>)
|
182
183
|
end
|
183
184
|
end
|
@@ -207,7 +208,7 @@ describe <%= controller_class_name %>Controller do
|
|
207
208
|
allow(<%= class_name %>).to receive(:find).with(<%= file_name %>.to_param).and_return(<%= file_name %>)
|
208
209
|
allow(<%= file_name %>).to receive(:destroy).and_return(true)
|
209
210
|
allow(<%= file_name %>).to receive(:persisted?).and_return(false)
|
210
|
-
<%= class_name %>Policy.
|
211
|
+
allow(<%= class_name %>Policy).to receive(:destroy?).and_return(true)
|
211
212
|
end
|
212
213
|
|
213
214
|
it 'destroys the requested <%= ns_file_name %>' do
|
@@ -1,7 +1,5 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
1
|
<% output_attributes = attributes.reject{|attribute| [:datetime, :timestamp, :time, :date].index(attribute.type) } -%>
|
4
|
-
describe "<%= ns_table_name %>/edit" do
|
2
|
+
RSpec.describe "<%= ns_table_name %>/edit", type: :view do
|
5
3
|
let(:<%= ns_file_name %>) { build_stubbed :<%= ns_file_name %> }
|
6
4
|
|
7
5
|
before do
|
@@ -1,7 +1,5 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
1
|
<% output_attributes = attributes.reject{|attribute| [:datetime, :timestamp, :time, :date].index(attribute.type) } -%>
|
4
|
-
describe "<%= ns_table_name %>/new" do
|
2
|
+
RSpec.describe "<%= ns_table_name %>/new", type: :view do
|
5
3
|
let(:<%= ns_file_name %>) { build :<%= ns_file_name %> }
|
6
4
|
|
7
5
|
before do
|
@@ -1,7 +1,5 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
1
|
<% module_namespacing do -%>
|
4
|
-
describe <%= controller_class_name %>Controller do
|
2
|
+
RSpec.describe <%= controller_class_name %>Controller, type: :view do
|
5
3
|
describe 'routing' do
|
6
4
|
<% unless options[:singleton] -%>
|
7
5
|
it { expect(get: '/<%= ns_table_name %>').to route_to('<%= ns_table_name %>#index') }
|