boring_generators 0.7.0 → 0.8.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/.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
|