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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1c38ce00aea24f2d84874abeaf67e8fc1e917934b8dc24e7a722c695cd55b75f
4
- data.tar.gz: 3373b320ace30d8a04e14af9780b65b819f266712cfd37e676f89872ce157cb5
3
+ metadata.gz: 3cac88ca9c5967e3109166aab566f0ec75936e5aee8b752c0c48602eda974b9c
4
+ data.tar.gz: 968a3f0761e84fa8caf64c2e23acba3e82e09c2b7c85d342a9e3c872c8a11d01
5
5
  SHA512:
6
- metadata.gz: f9e074f948419ff51132578335b1b9003ba99f73779b535b0a306753a3057dd924833d31eeb12091af4ebbb0db59b0ea5faa207da0ae9e413a6c3c7d61f24f32
7
- data.tar.gz: 5c06d9e92fa9b7f5599cdf77d5c391c59adffea7ccdad470e723daa1190bc94ded77b57e4417564b5ebcc53507c3b421b1093b827ea81aaa4ea2786813531df6
6
+ metadata.gz: be7b2ef1596240670290b4088a7d75a82a5a525b837fa7eeaff3b713e3b974f5eb26f81d5132259bedf1eb5af3d90aba279e992d7f69571fb85406c995a62f80
7
+ data.tar.gz: 72b7998e2cf8f42f4c4f77c956ebccf702872e3f32b98e99266ddf1a0d94be312c9bef3e4d48f94b854d3a0ed93776576620964a9883b259f64847fb306bc751
@@ -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.7.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.4.0)
84
+ mini_portile2 (2.5.0)
85
85
  minitest (5.14.2)
86
86
  nio4r (2.5.4)
87
- nokogiri (1.10.10)
88
- mini_portile2 (~> 2.4.0)
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
@@ -5,6 +5,7 @@ Rake::TestTask.new(:test) do |t|
5
5
  t.libs << "test"
6
6
  t.libs << "lib"
7
7
  t.test_files = FileList["test/**/*_test.rb"]
8
+ t.warning = false
8
9
  end
9
10
 
10
11
  task :default => :test
@@ -1,3 +1,3 @@
1
1
  module BoringGenerators
2
- VERSION = "0.7.0"
2
+ VERSION = "0.8.0"
3
3
  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 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
+ ===============================================================================
@@ -0,0 +1,4 @@
1
+ Twilio.configure do |config|
2
+ config.account_sid = "TWILIO_ACCOUNT_SID"
3
+ config.auth_token = "TWILIO_AUTH_TOKEN"
4
+ end
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.7.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-01-31 00:00:00.000000000 Z
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