myrails 3.2.0 → 3.2.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/README.md +65 -5
- data/lib/myrails.rb +2 -2
- data/lib/myrails/templates/mailer/dev_mail_interceptor.rb +0 -2
- data/lib/myrails/templates/presenters/base.rb +0 -2
- data/lib/myrails/templates/presenters/presenter.rb +0 -2
- data/lib/myrails/templates/presenters/presenter_spec.rb +0 -1
- data/lib/myrails/templates/rails/pundit.rb +0 -2
- data/lib/myrails/templates/ui/ui_controller.rb +0 -1
- data/lib/myrails/version.rb +1 -1
- metadata +3 -5
- data/spec/controllers/sam_controller_spec.rb +0 -98
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e68cebfb6cb817f8d85aa5b540d19dccac6999ca
|
4
|
+
data.tar.gz: e1f16d66475ca8625e428ef1daf2a391d3555ac4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bcf47925aa8bab0924b0975219973a8b2faf7bd61b9dde345354531d0c48a18a64341924039004e53c8989f53d14bec220841afe520f2131fc3c8380cd1b406f
|
7
|
+
data.tar.gz: 494f297b3b4913ae58d610dd958317a580b46612a56ddc12c1c83d09e2b57b7aafb1a9f758b1aa9e1c943c76b54c20467b4d3c6a57ec416ba3598ea2b4851344
|
data/README.md
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
This gem was created to make generating rails related files and other rails gem files (that I use) a lot easier. It is a thor backed gem that was designed with rails 5 in mind but most of it "should" work with rails 4.
|
4
4
|
|
5
|
-
This gem is not endorsed by
|
5
|
+
This gem is not endorsed by the rails core team. I wrote it as a convenience for generating files that I would otherwise have written by hand.
|
6
6
|
|
7
7
|
## Disclaimer
|
8
8
|
|
9
|
-
`user at your own risk!`
|
9
|
+
`user at your own risk!` I am not held responsible for using this gem. If you are not usre it will work for you, install it on a vagrant vm and give it a try there. You can use even use the Vagrantfile that is in this repo to take care of configuring a useable vm.
|
10
10
|
|
11
11
|
This gem is not compatible with ruby 2.3 (yet).
|
12
12
|
|
@@ -18,9 +18,9 @@ Use the latest version if are primarily developing in rails 5
|
|
18
18
|
|
19
19
|
## Examples
|
20
20
|
|
21
|
-
Here is an example of the gem
|
21
|
+
Here is an example of the gem works:
|
22
22
|
|
23
|
-
|
23
|
+
Lets say I use pundit. With this gem I am able to run the following:
|
24
24
|
|
25
25
|
```ruby
|
26
26
|
myrails policy --name=article
|
@@ -46,6 +46,66 @@ with corresponding files:
|
|
46
46
|
└── article_policy_spec.rb
|
47
47
|
```
|
48
48
|
|
49
|
+
Inside app/policies/articles_policy.rb is boiler plate code like:
|
50
|
+
|
51
|
+
```
|
52
|
+
class ArticlePolicy < ApplicationPolicy
|
53
|
+
# Allow all users to access new article
|
54
|
+
def new?
|
55
|
+
true
|
56
|
+
end
|
57
|
+
|
58
|
+
# Allows owner to edit Article
|
59
|
+
def edit?
|
60
|
+
user == record.user
|
61
|
+
end
|
62
|
+
|
63
|
+
# Allows all users to create Article
|
64
|
+
alias_method :create?, :new?
|
65
|
+
|
66
|
+
# Allows all users to view Article
|
67
|
+
alias_method :show?, :new?
|
68
|
+
|
69
|
+
# Allows owner to update an Article
|
70
|
+
alias_method :update?, :edit?
|
71
|
+
|
72
|
+
# Allows owner to remove an Article
|
73
|
+
alias_method :destroy?, :edit?
|
74
|
+
end
|
75
|
+
```
|
76
|
+
|
77
|
+
Inside the spec/policies/articles_policy_spec.rb is boiler plate code like:
|
78
|
+
|
79
|
+
```
|
80
|
+
# Use with Pundit Matches: https://github.com/chrisalley/pundit-matchers
|
81
|
+
require 'rails_helper'
|
82
|
+
describe ArticlePolicy do
|
83
|
+
subject { ArticlePolicy.new(user, article) }
|
84
|
+
|
85
|
+
let(:article) { create :article }
|
86
|
+
|
87
|
+
context 'for a visitor' do
|
88
|
+
it {is_expected.to permit_action(:new)}
|
89
|
+
it {is_expected.to permit_action(:create)}
|
90
|
+
it {is_expected.to permit_action(:show)}
|
91
|
+
it {is_expected.to forbid_action(:edit)}
|
92
|
+
it {is_expected.to forbid_action(:update)}
|
93
|
+
it {is_expected.to forbid_action(:destroy)}
|
94
|
+
end
|
95
|
+
|
96
|
+
context "for an admin" do
|
97
|
+
|
98
|
+
let(:user) { article.user }
|
99
|
+
|
100
|
+
it {is_expected.to permit_action(:new)}
|
101
|
+
it {is_expected.to permit_action(:create)}
|
102
|
+
it {is_expected.to permit_action(:show)}
|
103
|
+
it {is_expected.to permit_action(:edit)}
|
104
|
+
it {is_expected.to permit_action(:update)}
|
105
|
+
it {is_expected.to permit_action(:destroy)}
|
106
|
+
end
|
107
|
+
end
|
108
|
+
```
|
49
109
|
|
50
110
|
## Installation
|
51
111
|
|
@@ -63,7 +123,7 @@ gem install myrails
|
|
63
123
|
|
64
124
|
## Usage
|
65
125
|
|
66
|
-
|
126
|
+
Simply type `myrails` to see the help menu
|
67
127
|
|
68
128
|
```ruby
|
69
129
|
# Example for generating a presenter class
|
data/lib/myrails.rb
CHANGED
@@ -204,7 +204,7 @@ gem 'record_tag_helper'
|
|
204
204
|
desc 'install_devise', 'Generate devise files'
|
205
205
|
def install_devise
|
206
206
|
insert_into_file 'Gemfile', after: "gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]\n" do <<-CODE
|
207
|
-
gem 'devise'
|
207
|
+
gem 'devise'
|
208
208
|
CODE
|
209
209
|
end
|
210
210
|
run 'bundle update'
|
@@ -593,7 +593,7 @@ require 'database_cleaner'
|
|
593
593
|
say "Unknown Action!"
|
594
594
|
end
|
595
595
|
end
|
596
|
-
|
596
|
+
|
597
597
|
end
|
598
598
|
end
|
599
599
|
|
data/lib/myrails/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: myrails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.2.
|
4
|
+
version: 3.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vell
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-08-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -171,7 +171,6 @@ files:
|
|
171
171
|
- lib/myrails/templates/ui/ui_controller.rb
|
172
172
|
- lib/myrails/version.rb
|
173
173
|
- myrails.gemspec
|
174
|
-
- spec/controllers/sam_controller_spec.rb
|
175
174
|
- spec/myrails_spec.rb
|
176
175
|
- spec/spec_helper.rb
|
177
176
|
homepage: https://github.com/vmcilwain/myrails
|
@@ -195,12 +194,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
195
194
|
version: '0'
|
196
195
|
requirements: []
|
197
196
|
rubyforge_project:
|
198
|
-
rubygems_version: 2.6.
|
197
|
+
rubygems_version: 2.6.12
|
199
198
|
signing_key:
|
200
199
|
specification_version: 4
|
201
200
|
summary: A thor backed generator for generating rails related files based on my style
|
202
201
|
of coding
|
203
202
|
test_files:
|
204
|
-
- spec/controllers/sam_controller_spec.rb
|
205
203
|
- spec/myrails_spec.rb
|
206
204
|
- spec/spec_helper.rb
|
@@ -1,98 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
# Does this controller require authentication?
|
4
|
-
describe SamController do
|
5
|
-
# let(:user) {create :user}
|
6
|
-
let(:sams) {[]}
|
7
|
-
let(:sam) {create :sam}
|
8
|
-
|
9
|
-
# before {sign_in user}
|
10
|
-
|
11
|
-
describe 'GET index' do
|
12
|
-
before do
|
13
|
-
3.times {sams << create(:sam)}
|
14
|
-
get :index
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'sets @sams' do
|
18
|
-
expect(assigns[:sams]).to eq sams
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
describe 'GET show' do
|
23
|
-
before {get :show, params: {id: sam.id}}
|
24
|
-
|
25
|
-
it 'sets @sam' do
|
26
|
-
expect(assigns[:sam]).to eq sam
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
describe 'GET new' do
|
31
|
-
before {get :new}
|
32
|
-
|
33
|
-
it 'sets @sam' do
|
34
|
-
expect(assigns[:sam]).to be_a_new Sam
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
describe 'POST create' do
|
39
|
-
context 'successful create' do
|
40
|
-
before {post :create, params: {sam: attributes_for(:sam)}}
|
41
|
-
|
42
|
-
subject(:s){assigns[:sam]}
|
43
|
-
|
44
|
-
it 'redirects to :show'
|
45
|
-
it 'sets @sam'
|
46
|
-
it 'sets flash[:success]'
|
47
|
-
it 'tags the current_user as creator'
|
48
|
-
end
|
49
|
-
|
50
|
-
context 'unsuccessful create' do
|
51
|
-
before {post :create, params: {sam: attributes_for(:sam, attr: nil)}}
|
52
|
-
|
53
|
-
it 'renders :new template'
|
54
|
-
it 'sets @sam'
|
55
|
-
it 'sets flash[:error]'
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
describe 'GET edit' do
|
60
|
-
before {get :edit, params: {id: sam.id}}
|
61
|
-
|
62
|
-
it 'sets @sam' do
|
63
|
-
expect(assigns[:sam]).to eq sam
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
describe 'PUT/PATCH update' do
|
68
|
-
context 'successful update' do
|
69
|
-
before {put :update, params: {id: sam.id, sam: attributes_for(:sam)}}
|
70
|
-
|
71
|
-
subject(:s) {assigns[:sam]}
|
72
|
-
|
73
|
-
it 'redirects to :show'
|
74
|
-
it 'sets @sam'
|
75
|
-
it 'sets flash[:success]'
|
76
|
-
it 'tags current_user as updater'
|
77
|
-
end
|
78
|
-
|
79
|
-
context 'unsuccessful update' do
|
80
|
-
before {put :update, params: {id: sam.id, sam: attributes_for(:sam, attr: nil)}}
|
81
|
-
|
82
|
-
it 'renders :edit template'
|
83
|
-
it 'sets @sam'
|
84
|
-
it 'sets flash[:error]'
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
describe 'DELETE destroy' do
|
89
|
-
before {delete :destroy, params: {id: sam.id}}
|
90
|
-
|
91
|
-
it 'redirects to :index' do
|
92
|
-
expect(response).to redirect_to sams_path
|
93
|
-
end
|
94
|
-
it 'sets @sam'
|
95
|
-
it 'deletes @sam'
|
96
|
-
it 'sets flash[success]'
|
97
|
-
end
|
98
|
-
end
|