boring_generators 0.7.0 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +7 -1
- data/CHANGELOG.md +5 -0
- data/Gemfile.lock +6 -4
- data/README.md +10 -7
- data/Rakefile +1 -0
- data/lib/boring_generators/version.rb +1 -1
- data/lib/generators/boring/oauth/google/install/install_generator.rb +36 -0
- data/lib/generators/boring/oauth/google/install/templates/README +20 -0
- data/lib/generators/boring/oauth/google/install/templates/omniauth_callbacks_controller.rb +21 -0
- data/lib/generators/boring/oauth/twitter/install/install_generator.rb +36 -0
- data/lib/generators/boring/oauth/twitter/install/templates/README +20 -0
- data/lib/generators/boring/oauth/twitter/install/templates/omniauth_callbacks_controller.rb +21 -0
- data/lib/generators/boring/twilio/install/install_generator.rb +30 -0
- data/lib/generators/boring/twilio/install/templates/README +11 -0
- data/lib/generators/boring/twilio/install/templates/twilio.rb +4 -0
- metadata +11 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3cac88ca9c5967e3109166aab566f0ec75936e5aee8b752c0c48602eda974b9c
|
4
|
+
data.tar.gz: 968a3f0761e84fa8caf64c2e23acba3e82e09c2b7c85d342a9e3c872c8a11d01
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: be7b2ef1596240670290b4088a7d75a82a5a525b837fa7eeaff3b713e3b974f5eb26f81d5132259bedf1eb5af3d90aba279e992d7f69571fb85406c995a62f80
|
7
|
+
data.tar.gz: 72b7998e2cf8f42f4c4f77c956ebccf702872e3f32b98e99266ddf1a0d94be312c9bef3e4d48f94b854d3a0ed93776576620964a9883b259f64847fb306bc751
|
data/.github/workflows/ci.yml
CHANGED
@@ -11,7 +11,13 @@ jobs:
|
|
11
11
|
uses: ruby/setup-ruby@v1
|
12
12
|
with:
|
13
13
|
ruby-version: 2.7.0
|
14
|
+
bundler-cache: true
|
15
|
+
- name: Install Imagemagick
|
16
|
+
run: |
|
17
|
+
wget https://raw.githubusercontent.com/discourse/discourse_docker/master/image/base/install-imagemagick
|
18
|
+
chmod +x install-imagemagick
|
19
|
+
sudo ./install-imagemagick
|
14
20
|
- name: Install gems
|
15
21
|
run: bundle install --jobs 4 --retry 3
|
16
22
|
- name: Run tests
|
17
|
-
run: bundle exec rake test
|
23
|
+
run: bundle exec rake test --trace
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,11 @@
|
|
2
2
|
|
3
3
|
## master (unreleased)
|
4
4
|
|
5
|
+
## 0.8.0 (February 28th, 2021)
|
6
|
+
* Adds Devise Google Omniauth generator. ([@abhaynikam][])
|
7
|
+
* Adds Devise Twitter Omniauth generator. ([@abhaynikam][])
|
8
|
+
* Adds Twilio generator. ([@abhaynikam][])
|
9
|
+
|
5
10
|
## 0.7.0 (January 30th, 2021)
|
6
11
|
* Upgrade the Tailwind CSS generator to support Tailwind V2.0. ([@abhaynikam][])
|
7
12
|
* Adds Devise GitHub Omniauth generator. ([@abhaynikam][])
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
boring_generators (0.
|
4
|
+
boring_generators (0.8.0)
|
5
5
|
railties
|
6
6
|
|
7
7
|
GEM
|
@@ -81,11 +81,13 @@ GEM
|
|
81
81
|
method_source (1.0.0)
|
82
82
|
mimemagic (0.3.5)
|
83
83
|
mini_mime (1.0.2)
|
84
|
-
mini_portile2 (2.
|
84
|
+
mini_portile2 (2.5.0)
|
85
85
|
minitest (5.14.2)
|
86
86
|
nio4r (2.5.4)
|
87
|
-
nokogiri (1.
|
88
|
-
mini_portile2 (~> 2.
|
87
|
+
nokogiri (1.11.1)
|
88
|
+
mini_portile2 (~> 2.5.0)
|
89
|
+
racc (~> 1.4)
|
90
|
+
racc (1.5.2)
|
89
91
|
rack (2.2.3)
|
90
92
|
rack-test (1.1.0)
|
91
93
|
rack (>= 1.0, < 3)
|
data/README.md
CHANGED
@@ -40,19 +40,19 @@ And then you can use it this way:
|
|
40
40
|
## Usage
|
41
41
|
|
42
42
|
The boring generator introduces following generators:
|
43
|
-
- Install Tailwind CSS: `rails generate boring:tailwind:install`
|
44
|
-
- Install Bootstrap: `rails generate boring:bootstrap:install`
|
43
|
+
- [Install Tailwind CSS: `rails generate boring:tailwind:install`](https://www.boringgenerators.com/blog/2020-10-18-install-tailwind/)
|
44
|
+
- [Install Bootstrap: `rails generate boring:bootstrap:install`](https://www.boringgenerators.com/blog/2020-11-15-install-bootstrap/)
|
45
45
|
- Install JQuery: `rails generate boring:jquery:install`
|
46
|
-
- Install FontAwesome via Yarn: `rails generate boring:font_awesome:yarn:install`
|
47
|
-
- Install FontAwesome via RubyGems: `rails generate boring:font_awesome:ruby_gem:install`
|
46
|
+
- [Install FontAwesome via Yarn: `rails generate boring:font_awesome:yarn:install`](https://www.boringgenerators.com/blog/2021-02-28-install-fontawesome-yarn/)
|
47
|
+
- [Install FontAwesome via RubyGems: `rails generate boring:font_awesome:ruby_gem:install`](https://www.boringgenerators.com/blog/2021-02-23-install-fontawesome/)
|
48
48
|
- Install Bullet: `rails generate boring:bullet:install`
|
49
49
|
- Install Audit gems(bundler-audit, ruby_audit): `rails generate boring:audit:install`
|
50
50
|
- Install Pry gems for easy debugging: `rails generate boring:pry:install`
|
51
51
|
- Install Active Storage for Google Cloud Service: `rails generate boring:active_storage:google:install`
|
52
52
|
- Install Active Storage for AWS: `rails generate boring:active_storage:aws:install`
|
53
53
|
- Install Active Storage for Azure: `rails generate boring:active_storage:azure:install`
|
54
|
-
- Install CircleCI: `rails generate boring:ci:circleci:install --repository_name=<name> --ruby_version=<version>`
|
55
|
-
- Install GitHub Actions: `rails generate boring:ci:github_action:install --repository_name=<name> --ruby_version=<version>`
|
54
|
+
- [Install CircleCI: `rails generate boring:ci:circleci:install --repository_name=<name> --ruby_version=<version>`](https://www.boringgenerators.com/blog/2021-01-02-configure-circleci/)
|
55
|
+
- [Install GitHub Actions: `rails generate boring:ci:github_action:install --repository_name=<name> --ruby_version=<version>`](https://www.boringgenerators.com/blog/2020-12-17-configure-github-actions/)
|
56
56
|
- Install Travis CI: `rails generate boring:ci:travisci:install --ruby_version=<version>`
|
57
57
|
- Install Rubocop: `rails generate boring:rubocop:install --ruby_version=<version>`
|
58
58
|
- Build Favicon: `rails generate boring:favicon:build --application_name=<application_name> --favico_letter=<favico_letter> --primary_color=<color>`
|
@@ -60,8 +60,11 @@ The boring generator introduces following generators:
|
|
60
60
|
- Install GraphQL: `rails generate boring:graphql:install`
|
61
61
|
- Install SimpleForm: `rails generate boring:simple_form:install --css_framework=<css_framework>`
|
62
62
|
- Install Devise: `rails generate boring:devise:install`
|
63
|
-
- Install Devise Facebook Omniauth: `rails generate boring:oauth:facebook:install`
|
63
|
+
- [Install Devise Facebook Omniauth: `rails generate boring:oauth:facebook:install`](https://www.boringgenerators.com/blog/2021-02-07-install-oauth-facbook/)
|
64
64
|
- Install Devise GitHub Omniauth: `rails generate boring:oauth:github:install`
|
65
|
+
- Install Devise Google Omniauth: `rails generate boring:oauth:google:install`
|
66
|
+
- Install Devise Twitter Omniauth: `rails generate boring:oauth:twitter:install`
|
67
|
+
- Install Twilio: `rails generate boring:twilio:install`
|
65
68
|
|
66
69
|
## Development
|
67
70
|
|
data/Rakefile
CHANGED
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'bundler'
|
4
|
+
require 'generators/boring/oauth/base_generator'
|
5
|
+
|
6
|
+
module Boring
|
7
|
+
module Oauth
|
8
|
+
module Google
|
9
|
+
class InstallGenerator < Rails::Generators::Base
|
10
|
+
include Boring::Oauth::BaseGenerator
|
11
|
+
|
12
|
+
class MissingDeviseConfigurationError < StandardError; end
|
13
|
+
|
14
|
+
desc "Adds Google OmniAuth to the application"
|
15
|
+
source_root File.expand_path("templates", __dir__)
|
16
|
+
|
17
|
+
def add_github_omniauth_gem
|
18
|
+
say "Adding GitHub OmniAuth gem", :green
|
19
|
+
Bundler.with_unbundled_env do
|
20
|
+
run "bundle add omniauth-google-oauth2"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def invoke_common_generator_methods
|
25
|
+
@oauth_name = :google_oauth2
|
26
|
+
add_provider_and_uuid_user_details
|
27
|
+
configure_devise_omniauth
|
28
|
+
add_omniauth_callback_routes
|
29
|
+
add_omniauth_callback_controller
|
30
|
+
configure_and_add_devise_setting_in_user_model
|
31
|
+
show_readme
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
===============================================================================
|
2
|
+
|
3
|
+
Some setup you must do manually if you haven't yet:
|
4
|
+
|
5
|
+
1. Ensure you have overridden or uncommented the routes for generated omniauth callback controllers in your routes.rb.
|
6
|
+
For example:
|
7
|
+
|
8
|
+
Rails.application.routes.draw do
|
9
|
+
devise_for :users, controllers: {
|
10
|
+
omniauth_callbacks: "users/omniauth_callbacks"
|
11
|
+
}
|
12
|
+
end
|
13
|
+
|
14
|
+
2. Update the devise google omniauth APP_ID and APP_SECRET in "config/initializers/devise.rb"
|
15
|
+
after registering the Rails application on: https://code.google.com/apis/console/
|
16
|
+
For example:
|
17
|
+
|
18
|
+
config.omniauth :google_auth, "APP_ID", "APP_SECRET"
|
19
|
+
|
20
|
+
===============================================================================
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
|
2
|
+
# See https://github.com/omniauth/omniauth/wiki/FAQ#rails-session-is-clobbered-after-callback-on-developer-strategy
|
3
|
+
skip_before_action :verify_authenticity_token, only: :google_auth
|
4
|
+
|
5
|
+
def google_auth
|
6
|
+
# You need to implement the method below in your model (e.g. app/models/user.rb)
|
7
|
+
@user = User.from_omniauth(request.env["omniauth.auth"])
|
8
|
+
|
9
|
+
if @user.persisted?
|
10
|
+
sign_in_and_redirect @user, event: :authentication #this will throw if @user is not activated
|
11
|
+
set_flash_message(:notice, :success, kind: "Google") if is_navigational_format?
|
12
|
+
else
|
13
|
+
session["devise.google_data"] = request.env["omniauth.auth"].except(:extra) # Removing extra as it can overflow some session stores
|
14
|
+
redirect_to new_user_registration_url
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def failure
|
19
|
+
redirect_to root_path
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'bundler'
|
4
|
+
require 'generators/boring/oauth/base_generator'
|
5
|
+
|
6
|
+
module Boring
|
7
|
+
module Oauth
|
8
|
+
module Twitter
|
9
|
+
class InstallGenerator < Rails::Generators::Base
|
10
|
+
include Boring::Oauth::BaseGenerator
|
11
|
+
|
12
|
+
class MissingDeviseConfigurationError < StandardError; end
|
13
|
+
|
14
|
+
desc "Adds Twitter OmniAuth to the application"
|
15
|
+
source_root File.expand_path("templates", __dir__)
|
16
|
+
|
17
|
+
def add_twitter_omniauth_gem
|
18
|
+
say "Adding Twitter OmniAuth gem", :green
|
19
|
+
Bundler.with_unbundled_env do
|
20
|
+
run "bundle add omniauth-twitter"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def invoke_common_generator_methods
|
25
|
+
@oauth_name = :twitter
|
26
|
+
add_provider_and_uuid_user_details
|
27
|
+
configure_devise_omniauth
|
28
|
+
add_omniauth_callback_routes
|
29
|
+
add_omniauth_callback_controller
|
30
|
+
configure_and_add_devise_setting_in_user_model
|
31
|
+
show_readme
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
===============================================================================
|
2
|
+
|
3
|
+
Some setup you must do manually if you haven't yet:
|
4
|
+
|
5
|
+
1. Ensure you have overridden or uncommented the routes for generated omniauth callback controllers in your routes.rb.
|
6
|
+
For example:
|
7
|
+
|
8
|
+
Rails.application.routes.draw do
|
9
|
+
devise_for :users, controllers: {
|
10
|
+
omniauth_callbacks: "users/omniauth_callbacks"
|
11
|
+
}
|
12
|
+
end
|
13
|
+
|
14
|
+
2. Update the devise twitter omniauth APP_ID and APP_SECRET in "config/initializers/devise.rb"
|
15
|
+
after registering the Rails application on: https://developer.twitter.com/en/apps
|
16
|
+
For example:
|
17
|
+
|
18
|
+
config.omniauth :twitter, "APP_ID", "APP_SECRET"
|
19
|
+
|
20
|
+
===============================================================================
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
|
2
|
+
# See https://github.com/omniauth/omniauth/wiki/FAQ#rails-session-is-clobbered-after-callback-on-developer-strategy
|
3
|
+
skip_before_action :verify_authenticity_token, only: :twitter
|
4
|
+
|
5
|
+
def twitter
|
6
|
+
# You need to implement the method below in your model (e.g. app/models/user.rb)
|
7
|
+
@user = User.from_omniauth(request.env["omniauth.auth"])
|
8
|
+
|
9
|
+
if @user.persisted?
|
10
|
+
sign_in_and_redirect @user, event: :authentication #this will throw if @user is not activated
|
11
|
+
set_flash_message(:notice, :success, kind: "Twitter") if is_navigational_format?
|
12
|
+
else
|
13
|
+
session["devise.twitter_data"] = request.env["omniauth.auth"].except(:extra) # Removing extra as it can overflow some session stores
|
14
|
+
redirect_to new_user_registration_url
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def failure
|
19
|
+
redirect_to root_path
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Boring
|
4
|
+
module Twilio
|
5
|
+
class InstallGenerator < Rails::Generators::Base
|
6
|
+
desc "Adds Twilio to the application"
|
7
|
+
source_root File.expand_path("templates", __dir__)
|
8
|
+
|
9
|
+
def add_twilio_ruby_gem
|
10
|
+
say "Adding Twilio gem", :green
|
11
|
+
twilio_gem_content = <<~RUBY
|
12
|
+
\n
|
13
|
+
# for twilio REST APIs
|
14
|
+
gem 'twilio-ruby', '~> 5.47'
|
15
|
+
RUBY
|
16
|
+
append_to_file "Gemfile", twilio_gem_content
|
17
|
+
run "bundle install"
|
18
|
+
end
|
19
|
+
|
20
|
+
def add_twilio_configurations
|
21
|
+
say "Copying Twilio configuration", :green
|
22
|
+
template("twilio.rb", "config/initializers/twilio.rb")
|
23
|
+
end
|
24
|
+
|
25
|
+
def show_readme
|
26
|
+
readme "README"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
===============================================================================
|
2
|
+
|
3
|
+
Some step require your attention:
|
4
|
+
|
5
|
+
1. Update the twilio TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN in "config/initializers/twilio.rb"
|
6
|
+
For example:
|
7
|
+
|
8
|
+
config.account_sid = Rails.application.credentials.dig(:twilio, :account_sid)
|
9
|
+
config.auth_token = Rails.application.credentials.dig(:twilio, :auth_token)
|
10
|
+
|
11
|
+
===============================================================================
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: boring_generators
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Abhay Nikam
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-02-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -87,6 +87,12 @@ files:
|
|
87
87
|
- lib/generators/boring/oauth/github/install/install_generator.rb
|
88
88
|
- lib/generators/boring/oauth/github/install/templates/README
|
89
89
|
- lib/generators/boring/oauth/github/install/templates/omniauth_callbacks_controller.rb
|
90
|
+
- lib/generators/boring/oauth/google/install/install_generator.rb
|
91
|
+
- lib/generators/boring/oauth/google/install/templates/README
|
92
|
+
- lib/generators/boring/oauth/google/install/templates/omniauth_callbacks_controller.rb
|
93
|
+
- lib/generators/boring/oauth/twitter/install/install_generator.rb
|
94
|
+
- lib/generators/boring/oauth/twitter/install/templates/README
|
95
|
+
- lib/generators/boring/oauth/twitter/install/templates/omniauth_callbacks_controller.rb
|
90
96
|
- lib/generators/boring/pry/install/install_generator.rb
|
91
97
|
- lib/generators/boring/pry/install/templates/pryrc
|
92
98
|
- lib/generators/boring/pundit/install/install_generator.rb
|
@@ -96,6 +102,9 @@ files:
|
|
96
102
|
- lib/generators/boring/tailwind/install/install_generator.rb
|
97
103
|
- lib/generators/boring/tailwind/install/templates/README
|
98
104
|
- lib/generators/boring/tailwind/install/templates/application.scss
|
105
|
+
- lib/generators/boring/twilio/install/install_generator.rb
|
106
|
+
- lib/generators/boring/twilio/install/templates/README
|
107
|
+
- lib/generators/boring/twilio/install/templates/twilio.rb
|
99
108
|
- tmp/templates/app_template/.ruby-version
|
100
109
|
- tmp/templates/app_template/Gemfile
|
101
110
|
- tmp/templates/app_template/README.md
|