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 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