rails-embryo 0.2.0 → 0.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.
- data/History.md +5 -0
- data/README.md +12 -0
- data/lib/generators/embryo.rb +2 -0
- data/lib/generators/embryo/devise.rb +34 -0
- data/lib/generators/embryo/model/authenticated.rb +59 -0
- data/lib/rails-embryo.rb +1 -0
- data/lib/rails-embryo/version.rb +1 -1
- metadata +4 -2
data/History.md
CHANGED
data/README.md
CHANGED
@@ -77,6 +77,18 @@ model. All options available for the [basic model
|
|
77
77
|
generator](http://railsguides.net/advanced-rails-model-generators/)
|
78
78
|
are accepted.
|
79
79
|
|
80
|
+
#### Authenticated Models
|
81
|
+
|
82
|
+
To generate a model that can be authenticated with
|
83
|
+
[Devise](https://github.com/plataformatec/devise), use
|
84
|
+
`embryo:model:authenticated`:
|
85
|
+
|
86
|
+
rails generate embryo:model:authenticated first_name last_name
|
87
|
+
|
88
|
+
Authenticated models will automatically have an `email` field added and configured as the
|
89
|
+
authentication key. To customize this or any other Devise behavior, edit the generated
|
90
|
+
`config/initializers/devise.rb` along with the class and migration files for the new model.
|
91
|
+
|
80
92
|
### Enhancements Added
|
81
93
|
|
82
94
|
All of the following enhancements are added to new applications by
|
data/lib/generators/embryo.rb
CHANGED
@@ -6,6 +6,7 @@ require "generators/embryo/rspec"
|
|
6
6
|
require "generators/embryo/factory_girl"
|
7
7
|
require "generators/embryo/capybara"
|
8
8
|
require "generators/embryo/poltergeist"
|
9
|
+
require "generators/embryo/devise"
|
9
10
|
|
10
11
|
class EmbryoGenerator < Rails::Generators::Base
|
11
12
|
def install(force: false, bundle: false)
|
@@ -17,6 +18,7 @@ class EmbryoGenerator < Rails::Generators::Base
|
|
17
18
|
invoke "embryo:poltergeist"
|
18
19
|
invoke "embryo:template_support"
|
19
20
|
invoke "embryo:default_view"
|
21
|
+
invoke "embryo:devise"
|
20
22
|
clean_files
|
21
23
|
end
|
22
24
|
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require "rails-embryo"
|
2
|
+
|
3
|
+
module Embryo
|
4
|
+
class DeviseGenerator < Rails::Generators::Base
|
5
|
+
include GeneratorHelpers::Hidden
|
6
|
+
|
7
|
+
def install
|
8
|
+
gem "devise"
|
9
|
+
create_file "spec/support/devise.rb", devise_helper_data
|
10
|
+
update_environments
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def devise_helper_data
|
16
|
+
'RSpec.configure do |config|
|
17
|
+
config.include Devise::TestHelpers, type: :controller
|
18
|
+
end
|
19
|
+
'
|
20
|
+
end
|
21
|
+
|
22
|
+
def update_environments
|
23
|
+
["development", "test"].each do |env|
|
24
|
+
if File.exist? "config/environments/#{env}.rb"
|
25
|
+
inject_into_file "config/environments/#{env}.rb", before: "end\n" do
|
26
|
+
'
|
27
|
+
config.action_mailer.default_url_options = { host: "localhost" }
|
28
|
+
'
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require "rails/generators"
|
2
|
+
|
3
|
+
module Embryo
|
4
|
+
module Model
|
5
|
+
class AuthenticatedGenerator < Rails::Generators::NamedBase
|
6
|
+
def install
|
7
|
+
generate "embryo:model", ARGV.join(' ')
|
8
|
+
generate "devise:install --quiet" unless File.exist? "config/initializers/devise.rb"
|
9
|
+
generate "devise #{ARGV.first}"
|
10
|
+
update_controllers
|
11
|
+
update_factory
|
12
|
+
update_seeds
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def update_controllers
|
18
|
+
return if File.read("app/controllers/application_controller.rb").include? ":authenticate"
|
19
|
+
inject_into_file "app/controllers/application_controller.rb", {
|
20
|
+
after: "class ApplicationController < ActionController::Base\n"
|
21
|
+
} do
|
22
|
+
" before_action :authenticate_#{singular_name}!\n\n"
|
23
|
+
end
|
24
|
+
inject_into_file "app/controllers/dashboard_controller.rb", {
|
25
|
+
after: "class DashboardController < ApplicationController\n"
|
26
|
+
} do
|
27
|
+
" skip_before_action :authenticate_#{singular_name}!\n\n"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def update_factory
|
32
|
+
inject_into_file "spec/factories/#{file_path}.rb", {
|
33
|
+
after: / factory :#{factory_name}.* do\n/
|
34
|
+
} do
|
35
|
+
factory_additions
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def factory_additions
|
40
|
+
' sequence(:email) { |n| "user#{n}@example.com" }
|
41
|
+
password "password"
|
42
|
+
'
|
43
|
+
end
|
44
|
+
|
45
|
+
def update_seeds
|
46
|
+
append_file "db/seeds.rb", seed_data
|
47
|
+
end
|
48
|
+
|
49
|
+
def seed_data
|
50
|
+
"\n" + class_name + '.where(email: "' + singular_name + '@example.com").first_or_create password: "password"
|
51
|
+
'
|
52
|
+
end
|
53
|
+
|
54
|
+
def factory_name
|
55
|
+
file_path.gsub "/", "_"
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
data/lib/rails-embryo.rb
CHANGED
@@ -2,6 +2,7 @@ require "rails-embryo/version"
|
|
2
2
|
require "rails-embryo/generator_helpers/hidden"
|
3
3
|
require "generators/embryo"
|
4
4
|
require "generators/embryo/model"
|
5
|
+
require "generators/embryo/model/authenticated"
|
5
6
|
require "rails/railtie"
|
6
7
|
|
7
8
|
class EmbryoHiddenGeneratorsRailtie < Rails::Railtie
|
data/lib/rails-embryo/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails-embryo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-08-
|
12
|
+
date: 2014-08-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -70,11 +70,13 @@ files:
|
|
70
70
|
- lib/rails-embryo/generator_helpers/hidden.rb
|
71
71
|
- lib/rails-embryo/version.rb
|
72
72
|
- lib/rails-embryo.rb
|
73
|
+
- lib/generators/embryo/model/authenticated.rb
|
73
74
|
- lib/generators/embryo/factory_girl.rb
|
74
75
|
- lib/generators/embryo/capybara.rb
|
75
76
|
- lib/generators/embryo/default_view.rb
|
76
77
|
- lib/generators/embryo/model.rb
|
77
78
|
- lib/generators/embryo/template_support.rb
|
79
|
+
- lib/generators/embryo/devise.rb
|
78
80
|
- lib/generators/embryo/poltergeist.rb
|
79
81
|
- lib/generators/embryo/rspec.rb
|
80
82
|
- lib/generators/embryo/ruby_version.rb
|