myrails 2.2.2 → 3.0.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/README.md +1 -1
- data/lib/myrails/templates/rspec/request.rb +109 -0
- data/lib/myrails/templates/rspec/request_shared_example.rb +7 -0
- data/lib/myrails/templates/rspec/shared_example.rb +10 -0
- data/lib/myrails/version.rb +1 -1
- data/lib/myrails.rb +29 -0
- metadata +4 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c6835e4654f3921eb1bd5e951dc1b1e9b8792af9
|
4
|
+
data.tar.gz: df6dbb5f9bb3cb4ee67014df715da12c44d3ac7e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 22f504e636872cea1b66f945e36759e7e6044ecbcd921cdbe25986a0de3cab4a762bd8b5fe1ec31a86f53ca5fdcb5e9a4c0fbf8327b200e36a60e97a28bd116d
|
7
|
+
data.tar.gz: 70a8d6cdf73948023c7a16276d32daead723a3eb5d658bc9258dc17a4e847b32ece28cc06fd55a7e1b1345d9dbbc5c87b796feb4775d0fb069d7ccc184158a35
|
data/README.md
CHANGED
@@ -0,0 +1,109 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
describe '<%= options[:name] %> api' do
|
4
|
+
let(:headers) {{"ACCEPT" => "application/json"}}
|
5
|
+
let(:<%= options[:name] %>) {create :<%= options[:name] %>}
|
6
|
+
let(:<%= options[:name].pluralize %>) {create_list :<%= options[:name] %>, 3}
|
7
|
+
|
8
|
+
describe 'GET index' do
|
9
|
+
before do
|
10
|
+
<%= options[:name].pluralize %>
|
11
|
+
get '/<%= options[:name].pluralize %>'
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'returns success status' do
|
15
|
+
expect(response).to be_success
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'sets @<%= options[:name].pluralize %>' do
|
19
|
+
expect(assigns['<%= options[:name].pluralize %>']).to eq <%= options[:name].pluralize %>
|
20
|
+
end
|
21
|
+
|
22
|
+
it_behaves_like 'returns content as json' do
|
23
|
+
let(:action) {get '/<%= options[:name].pluralize %>'}
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe 'GET show' do
|
28
|
+
before {get "/<%= options[:name].pluralize %>/#{<%= options[:name] %>.id}"}
|
29
|
+
|
30
|
+
it 'returns success status' do
|
31
|
+
expect(response).to be_success
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'sets @article' do
|
35
|
+
expect(assigns[:<%= options[:name] %>]).to eq <%= options[:name] %>
|
36
|
+
end
|
37
|
+
|
38
|
+
it_behaves_like 'returns content as json' do
|
39
|
+
let(:action) {get "/<%= options[:name].pluralize %>/#{<%= options[:name] %>.id}"}
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe 'POST create' do
|
44
|
+
context 'successful' do
|
45
|
+
before {post '/<%= options[:name].pluralize %>', params: {<%= options[:name] %>: {}}, headers: headers}
|
46
|
+
|
47
|
+
it 'returns created status' do
|
48
|
+
expect(response).to have_http_status :created
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'sets @<%= options[:name] %>' do
|
52
|
+
expect(assigns[:<%= options[:name] %>]).to be_instance_of <%= options[:name].camelize %>
|
53
|
+
end
|
54
|
+
|
55
|
+
it_behaves_like 'returns content as json' do
|
56
|
+
let(:action) {post '/<%= options[:name].pluralize %>', params: {<%= options[:name] %>: {}}, headers: headers}
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
context 'unsuccessful' do
|
61
|
+
before {post '/<%= options[:name].pluralize %>', params: {<%= options[:name] %>: {}}, headers: headers}
|
62
|
+
|
63
|
+
it 'returns unprocessable_entity status' do
|
64
|
+
expect(response).to have_http_status :unprocessable_entity
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'sets @<%= options[:name] %>' do
|
68
|
+
expect(assigns[:<%= options[:name] %>]).to be_a_new <%= options[:name].camelize %>
|
69
|
+
end
|
70
|
+
it_behaves_like 'returns content as json' do
|
71
|
+
let(:action) {post '/<%= options[:name].pluralize %>', params: {<%= options[:name] %>: {}}, headers: headers}
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
describe 'PUT update' do
|
77
|
+
context 'successful' do
|
78
|
+
before {put "/<%= options[:name].pluralize %>/#{<%= options[:name] %>.id}", params: {<%= options[:name] %>: {}}, headers: headers}
|
79
|
+
|
80
|
+
it 'returns success status' do
|
81
|
+
expect(response).to have_http_status :success
|
82
|
+
end
|
83
|
+
|
84
|
+
it 'sets @<%= options[:name] %>' do
|
85
|
+
expect(assigns['<%= options[:name] %>']).to eq <%= options[:name] %>
|
86
|
+
end
|
87
|
+
|
88
|
+
it_behaves_like 'returns content as json' do
|
89
|
+
let(:action) {put "/<%= options[:name].pluralize %>/#{<%= options[:name] %>.id}", params: {<%= options[:name] %>: {}}}
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
context 'unsuccessful' do
|
94
|
+
before {put "/<%= options[:name].pluralize %>/#{<%= options[:name] %>.id}", params: {<%= options[:name] %>: {}}, headers: headers}
|
95
|
+
|
96
|
+
it 'returns unprocessable_entity status' do
|
97
|
+
expect(response).to have_http_status :bad_request
|
98
|
+
end
|
99
|
+
|
100
|
+
it 'sets @<%= options[:name] %>' do
|
101
|
+
expect(assigns[:<%= options[:name] %>]).to eq <%= options[:name] %>
|
102
|
+
end
|
103
|
+
|
104
|
+
it_behaves_like 'returns content as json' do
|
105
|
+
let(:action) {put "/<%= options[:name].pluralize %>/#{<%= options[:name] %>.id}", params: {<%= options[:name] %>: {}}, headers: headers}
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
data/lib/myrails/version.rb
CHANGED
data/lib/myrails.rb
CHANGED
@@ -87,6 +87,7 @@ gem 'rspec-rails', group: :test
|
|
87
87
|
end
|
88
88
|
run 'bundle install'
|
89
89
|
run 'rails g rspec:install'
|
90
|
+
install_rails_helper
|
90
91
|
copy_file 'rspec/database_cleaner.rb', "spec/support/configs/database_cleaner.rb"
|
91
92
|
copy_file 'rspec/factory_girl.rb', 'spec/support/configs/factory_girl.rb'
|
92
93
|
copy_file 'rspec/shoulda_matchers.rb', 'spec/support/configs/shoulda_matchers.rb'
|
@@ -471,6 +472,7 @@ require 'factory_girl'
|
|
471
472
|
require 'database_cleaner'
|
472
473
|
CODE
|
473
474
|
end
|
475
|
+
|
474
476
|
inject_into_file 'spec/rails_helper.rb', after: "RSpec.configure do |config|\n" do <<-CODE
|
475
477
|
config.mock_with :rspec
|
476
478
|
config.infer_base_class_for_anonymous_controllers = false
|
@@ -489,6 +491,33 @@ require 'database_cleaner'
|
|
489
491
|
end
|
490
492
|
end
|
491
493
|
|
494
|
+
desc 'shared_example', 'Generates an RSpec shared example template in the support directory'
|
495
|
+
option :text, required: true
|
496
|
+
def shared_example
|
497
|
+
template 'rspec/shared_example.rb', 'spec/support/shared_examples.rb'
|
498
|
+
end
|
499
|
+
|
500
|
+
desc 'request', 'Generates an RSpec request spec'
|
501
|
+
option :name, required: true
|
502
|
+
def request
|
503
|
+
template 'rspec/request.rb', "spec/requests/#{options[:name]}_spec.rb"
|
504
|
+
copy_file 'rspec/request_shared_example.rb', 'spec/support/request_shared_examples.rb'
|
505
|
+
end
|
506
|
+
|
507
|
+
desc 'auto_install', 'Run the most common actions in the right order'
|
508
|
+
def base_install
|
509
|
+
install_gems
|
510
|
+
install_application_helper
|
511
|
+
install_assets
|
512
|
+
install_layout
|
513
|
+
install_css
|
514
|
+
install_footer
|
515
|
+
install_ui
|
516
|
+
install_pundit
|
517
|
+
install_rspec
|
518
|
+
install_footnotes
|
519
|
+
git_init
|
520
|
+
end
|
492
521
|
end
|
493
522
|
end
|
494
523
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: myrails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vell
|
@@ -162,7 +162,10 @@ files:
|
|
162
162
|
- lib/myrails/templates/rspec/namespace_model.rb
|
163
163
|
- lib/myrails/templates/rspec/pundit.rb
|
164
164
|
- lib/myrails/templates/rspec/pundit_matchers.rb
|
165
|
+
- lib/myrails/templates/rspec/request.rb
|
166
|
+
- lib/myrails/templates/rspec/request_shared_example.rb
|
165
167
|
- lib/myrails/templates/rspec/router.rb
|
168
|
+
- lib/myrails/templates/rspec/shared_example.rb
|
166
169
|
- lib/myrails/templates/rspec/shoulda_matchers.rb
|
167
170
|
- lib/myrails/templates/rspec/silence_backtrace.rb
|
168
171
|
- lib/myrails/templates/ui/index.html.haml
|