boring_generators 0.1.0 → 0.2.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: fdb73c106d2605bd3f2a97cc509f2204dc7d74670f4b67685abebf01ea93e42a
4
- data.tar.gz: dccbd9b93fd021b3fc4e8a567166d0d0134ddd4ec6a51251f3b4d18204ce6daf
3
+ metadata.gz: 4e277610c48ddb35578742b883529c07b4d4b6dfd1c0291b38b0049ae6eab340
4
+ data.tar.gz: cfc446b54c8591a9eed4b583652a34a0b02a8c9535fd3ebdea54f1599685cb1b
5
5
  SHA512:
6
- metadata.gz: 2158a1c67c89389e4c17cd53df289bc623c47191253d2a4e9c1cb665e0c47ad0cf65ae92f290fbaf8a927028c150be8194ad8dc6e1a3f3744a56bc9d6168c290
7
- data.tar.gz: c5b4082ae50708c0846aee643cd88fa9b7f40ed88766124f9eee86135f90b6e0a9e63760edce26d5dbe3748cf27b5794089b2c39ff3d6df5d891cf3eb82e19c6
6
+ metadata.gz: 7117cb3bef90a4c33edd5c980effa8272fc8669e2225ea85c81371262714ab68ed8122d56f83490331fca00ff619e2b35f788e2dbff83534f8c7fb567e76e17d
7
+ data.tar.gz: c055b5921c43dcb681364c2a5bbe99becf0c8559c057bd50ee96ea7731c260857a02ff6d75e0f1807418942100a5da6875a40f3bd74482b196cb4e37a9de1afe
@@ -0,0 +1,11 @@
1
+ <!--
2
+ Thanks for submitting a pull request!
3
+ We appreciate you spending the time to work on these changes. Please provide enough information so that others can review your pull request. The three fields below are mandatory.
4
+
5
+ Before submitting a pull request, please make sure the following is done:
6
+
7
+ 1. Fork [the repository](https://github.com/abhaynikam/boring_generators) and create your branch from `master`.
8
+ 2. Run `bundle install` in the repository root.
9
+ 3. If you've fixed a bug or added code that should be tested, add tests!
10
+ 4. Ensure the test suite passes (`rake test`).
11
+ -->
@@ -2,6 +2,12 @@
2
2
 
3
3
  ## master (unreleased)
4
4
 
5
+ ## 0.1.0 (September 16th, 2020)
6
+ * Adds JQuery install generator. ([@abhaynikam][])
7
+ * Adds Bootstrap install generator. ([@abhaynikam][])
8
+ * Adds FontAwesome install generator via Yarn. ([@abhaynikam][])
9
+ * Adds FontAwesome install generator via RubyGems. ([@abhaynikam][])
10
+
5
11
  ## 0.1.0 (September 5th, 2020)
6
12
 
7
13
  * Adds Tailwind CSS install generator. ([@abhaynikam][])
data/README.md CHANGED
@@ -22,7 +22,12 @@ Or install it yourself as:
22
22
 
23
23
  ## Usage
24
24
 
25
- TODO: Write usage instructions here
25
+ The boring generator introduces following generators:
26
+ - Install Tailwind CSS: `rails generate boring:tailwind:install`
27
+ - Install Bootstrap: `rails generate boring:bootstrap:install`
28
+ - Install JQuery: `rails generate boring:jquery:install`
29
+ - Install FontAwesome via Yarn: `rails generate boring:font_awesome:yarn:install`
30
+ - Install FontAwesome via RubyGems: `rails generate boring:font_awesome:ruby_gem:install`
26
31
 
27
32
  ## Development
28
33
 
@@ -32,7 +37,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
32
37
 
33
38
  ## Contributing
34
39
 
35
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/boring_generators. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/[USERNAME]/boring_generators/blob/master/CODE_OF_CONDUCT.md).
40
+ Bug reports and pull requests are welcome on GitHub at https://github.com/abhaynikam/boring_generators. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/abhaynikam/boring_generators/blob/master/CODE_OF_CONDUCT.md).
36
41
 
37
42
 
38
43
  ## License
@@ -41,4 +46,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
41
46
 
42
47
  ## Code of Conduct
43
48
 
44
- Everyone interacting in the BoringGenerators project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/boring_generators/blob/master/CODE_OF_CONDUCT.md).
49
+ Everyone interacting in the BoringGenerators project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/abhaynikam/boring_generators/blob/master/CODE_OF_CONDUCT.md).
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
16
16
 
17
17
  spec.metadata["homepage_uri"] = spec.homepage
18
18
  spec.metadata["source_code_uri"] = "https://github.com/abhaynikam/boring-generators"
19
- spec.metadata["changelog_uri"] = "https://github.com/abhaynikam/boring-generators."
19
+ spec.metadata["changelog_uri"] = "https://github.com/abhaynikam/boring_generators/blob/master/CHANGELOG.md"
20
20
 
21
21
  # Specify which files should be added to the gem when it is released.
22
22
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
@@ -1,3 +1,3 @@
1
1
  module BoringGenerators
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -0,0 +1,67 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Boring
4
+ module Bootstrap
5
+ class InstallGenerator < Rails::Generators::Base
6
+ desc "Adds Bootstrap to the application"
7
+ source_root File.expand_path("templates", __dir__)
8
+
9
+ def add_bootstrap_package
10
+ say "Adding bootstrap packages", :green
11
+ run "yarn add bootstrap jquery popper.js"
12
+ end
13
+
14
+ def add_jquery_plugin_provider_to_webpack_environment
15
+ say "Initailizing tailwind configuration", :green
16
+ if File.exist?("config/webpack/environment.js")
17
+ insert_into_file "config/webpack/environment.js", <<~RUBY, after: /@rails\/webpacker.*\n/
18
+ const webpack = require("webpack")
19
+
20
+ environment.plugins.append("Provide", new webpack.ProvidePlugin({
21
+ $: 'jquery',
22
+ jQuery: 'jquery',
23
+ Popper: ['popper.js', 'default']
24
+ }))
25
+ RUBY
26
+ else
27
+ say <<~WARNING, :red
28
+ ERROR: Looks like the webpacker installation is incomplete. Could not find environment.js in config/webpack.
29
+ WARNING
30
+ end
31
+ end
32
+
33
+ def add_or_import_stylesheet_for_bootstrap
34
+ if File.exist?("app/javascript/stylesheets/application.scss")
35
+ say "Add bootstrap imports to the application.scss", :green
36
+ append_to_file "app/javascript/stylesheets/application.scss" do
37
+ '@import "~bootstrap/scss/bootstrap";'
38
+ end
39
+ else
40
+ say "Copying application.scss with tailwind imports", :green
41
+ template("application.scss", "app/javascript/stylesheets/application.scss")
42
+ end
43
+ end
44
+
45
+ def insert_stylesheet_in_the_application
46
+ if File.exist?("app/javascript/packs/application.js")
47
+ application_js_content = <<~RUBY
48
+ \n
49
+ import "bootstrap"
50
+ import "stylesheets/application"
51
+ RUBY
52
+ append_to_file "app/javascript/packs/application.js", application_js_content
53
+ else
54
+ say <<~WARNING, :red
55
+ ERROR: Looks like the webpacker installation is incomplete. Could not find application.js in app/javascript/packs.
56
+ WARNING
57
+ end
58
+ end
59
+
60
+ def insert_stylesheet_packs_tag
61
+ insert_into_file "app/views/layouts/application.html.erb", <<~RUBY, after: /stylesheet_link_tag.*\n/
62
+ \t\t<%= stylesheet_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
63
+ RUBY
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1 @@
1
+ @import "~bootstrap/scss/bootstrap";
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Boring
4
+ module FontAwesome
5
+ module RubyGem
6
+ class InstallGenerator < Rails::Generators::Base
7
+ desc "Adds fontawesome via yarn to the application"
8
+
9
+ def add_font_awesome_sass_gem
10
+ say "Adding font_awesome_sass gem", :green
11
+
12
+ font_awesome_sass_gem = <<~RUBY
13
+ \n
14
+ # for adding font-awesome icons
15
+ gem 'font-awesome-sass', '~> 5.13'
16
+ RUBY
17
+ append_to_file "Gemfile", font_awesome_sass_gem
18
+ run "bundle install"
19
+ end
20
+
21
+ def import_font_awesome_stylesheet
22
+ say "Adding font awesome stylesheets", :green
23
+ stylesheet_font_awesome_imports = <<~RUBY
24
+ \n
25
+ @import "font-awesome-sprockets";
26
+ @import "font-awesome";
27
+ RUBY
28
+
29
+ if File.exist?("app/assets/stylesheets/application.css.scss")
30
+ append_to_file "app/assets/stylesheets/application.css.scss", stylesheet_font_awesome_imports
31
+ elsif File.exist?("app/assets/stylesheets/application.scss")
32
+ append_to_file "app/assets/stylesheets/application.scss", stylesheet_font_awesome_imports
33
+ else
34
+ say <<~WARNING, :red
35
+ ERROR: Looks like the application.css.scss is missing. Please rename the file and re-run the generator.
36
+ WARNING
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Boring
4
+ module FontAwesome
5
+ module Yarn
6
+ class InstallGenerator < Rails::Generators::Base
7
+ source_root File.expand_path("templates", __dir__)
8
+ desc "Adds fontawesome via rubygems to the application"
9
+
10
+ def add_font_awesome_package
11
+ say "Adding fontawesome packages", :green
12
+ run "yarn add @fortawesome/fontawesome-free"
13
+ end
14
+
15
+ def import_font_awesome_stylesheet
16
+ say "Adding font awesome stylesheets", :green
17
+ if File.exist?("app/javascript/stylesheets/application.scss")
18
+ stylesheet_font_awesome_imports = <<~RUBY
19
+ \n
20
+ @import '@fortawesome/fontawesome-free';
21
+ RUBY
22
+
23
+ append_to_file "app/javascript/stylesheets/application.scss", stylesheet_font_awesome_imports
24
+ else
25
+ say "Copying application.scss with FontAwesome imports", :green
26
+ template("application.scss", "app/javascript/stylesheets/application.scss")
27
+ end
28
+ end
29
+
30
+ def import_font_awesome_javascript
31
+ if File.exist?("app/javascript/packs/application.js")
32
+ javascript_font_awesome_imports = <<~RUBY
33
+ \n
34
+ import "@fortawesome/fontawesome-free/js/all"
35
+ RUBY
36
+
37
+ append_to_file "app/javascript/packs/application.js", javascript_font_awesome_imports
38
+ else
39
+ say <<~WARNING, :red
40
+ ERROR: Looks like the webpacker installation is incomplete. Could not find application.js in app/javascript/packs.
41
+ WARNING
42
+ end
43
+ end
44
+
45
+ def insert_stylesheet_packs_tag
46
+ insert_into_file "app/views/layouts/application.html.erb", <<~RUBY, after: /stylesheet_link_tag.*\n/
47
+ \t\t<%= stylesheet_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
48
+ RUBY
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1 @@
1
+ @import '@fortawesome/fontawesome-free';
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Boring
4
+ module Jquery
5
+ class InstallGenerator < Rails::Generators::Base
6
+ desc "Adds JQuery to the application"
7
+
8
+ def add_jquery_package
9
+ say "Adding JQuery packages", :green
10
+ run "yarn add jquery"
11
+ end
12
+
13
+ def add_jquery_plugin_provider_to_webpack_environment
14
+ say "Initailizing tailwind configuration", :green
15
+ if File.exist?("config/webpack/environment.js")
16
+ insert_into_file "config/webpack/environment.js", <<~RUBY, after: /@rails\/webpacker.*\n/
17
+ const webpack = require("webpack")
18
+
19
+ environment.plugins.append("Provide", new webpack.ProvidePlugin({
20
+ $: 'jquery',
21
+ jQuery: 'jquery'
22
+ }))
23
+ RUBY
24
+ else
25
+ say <<~WARNING, :red
26
+ ERROR: Looks like the webpacker installation is incomplete. Could not find environment.js in config/webpack.
27
+ WARNING
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -37,30 +37,38 @@ module Boring
37
37
 
38
38
  def add_or_import_stylesheet_for_tailwind
39
39
  if File.exist?("app/javascript/stylesheets/application.scss")
40
- say "Add tailwindcss imports to the application.scss", :green
41
- append_to_file "app/javascript/stylesheets/application.scss" do
42
- '@import "tailwindcss/base";'
43
- '@import "tailwindcss/components";'
44
- '@import "tailwindcss/utilities";'
40
+ say "Add TailwindCSS imports to the application.scss", :green
41
+ stylesheet_tailwind_imports = <<~RUBY
42
+ \n
43
+ @import "tailwindcss/base";
44
+ @import "tailwindcss/components";
45
+ @import "tailwindcss/utilities";
46
+ RUBY
45
47
 
46
- end
48
+ append_to_file "app/javascript/stylesheets/application.scss", stylesheet_tailwind_imports
47
49
  else
48
- say "Copying application.scss with tailwind imports", :green
50
+ say "Copying application.scss with Tailwind imports", :green
49
51
  template("application.scss", "app/javascript/stylesheets/application.scss")
52
+ end
53
+ end
50
54
 
51
- if File.exist?("app/javascript/packs/application.js")
52
- append_to_file "app/javascript/packs/application.js" do
53
- 'import "stylesheets/application"'
54
- end
55
- else
56
- raise "Looks like the webpacker installation is incomplete. Could not find application.js in app/javascript/packs."
55
+ def insert_stylesheet_in_the_application
56
+ if File.exist?("app/javascript/packs/application.js")
57
+ append_to_file "app/javascript/packs/application.js" do
58
+ 'import "stylesheets/application"'
57
59
  end
58
-
59
- insert_into_file "app/views/layouts/application.html.erb", <<~RUBY, after: /stylesheet_link_tag.*\n/
60
- <%= stylesheet_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
61
- RUBY
60
+ else
61
+ say <<~WARNING, :red
62
+ ERROR: Looks like the webpacker installation is incomplete. Could not find application.js in app/javascript/packs.
63
+ WARNING
62
64
  end
63
65
  end
66
+
67
+ def insert_stylesheet_packs_tag
68
+ insert_into_file "app/views/layouts/application.html.erb", <<~RUBY, after: /stylesheet_link_tag.*\n/
69
+ \t\t<%= stylesheet_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
70
+ RUBY
71
+ end
64
72
  end
65
73
  end
66
74
  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.1.0
4
+ version: 0.2.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: 2020-09-05 00:00:00.000000000 Z
11
+ date: 2020-09-16 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Every new project or hobby project of yours needs to setup simple things.
14
14
  Boring generators aims to make your development faster by delegating boring setups
@@ -19,6 +19,7 @@ executables: []
19
19
  extensions: []
20
20
  extra_rdoc_files: []
21
21
  files:
22
+ - ".github/PULL_REQUEST_TEMPLATE.md"
22
23
  - ".gitignore"
23
24
  - ".travis.yml"
24
25
  - CHANGELOG.md
@@ -33,6 +34,12 @@ files:
33
34
  - boring_generators.gemspec
34
35
  - lib/boring_generators.rb
35
36
  - lib/boring_generators/version.rb
37
+ - lib/generators/boring/bootstrap/install/install_generator.rb
38
+ - lib/generators/boring/bootstrap/install/templates/application.scss
39
+ - lib/generators/boring/font_awesome/ruby_gem/install/install_generator.rb
40
+ - lib/generators/boring/font_awesome/yarn/install/install_generator.rb
41
+ - lib/generators/boring/font_awesome/yarn/install/templates/application.scss
42
+ - lib/generators/boring/jquery/install/install_generator.rb
36
43
  - lib/generators/boring/tailwind/install/install_generator.rb
37
44
  - lib/generators/boring/tailwind/install/templates/application.scss
38
45
  homepage: https://github.com/abhaynikam/boring_generators
@@ -41,7 +48,7 @@ licenses:
41
48
  metadata:
42
49
  homepage_uri: https://github.com/abhaynikam/boring_generators
43
50
  source_code_uri: https://github.com/abhaynikam/boring-generators
44
- changelog_uri: https://github.com/abhaynikam/boring-generators.
51
+ changelog_uri: https://github.com/abhaynikam/boring_generators/blob/master/CHANGELOG.md
45
52
  post_install_message:
46
53
  rdoc_options: []
47
54
  require_paths: