rails_app_generator 0.2.39 → 0.2.40

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: be981683729c562f221e7f00120145d345ea0111fbe80aa5f4cf9f2d03eaff03
4
- data.tar.gz: 4a1a65620ae0fcecd12f0c27cd88fe0cb51da1c57843fc7afced0508cf31dfb1
3
+ metadata.gz: 635081352fed9b65ca6d9905c209e40edc4d74ea8eb1fcc5ae1f53b58c080fe6
4
+ data.tar.gz: 0a0e858ef8a51a3c6ae1dca71ffb112e6e61cfb8802c6a3f4f2139d77195334d
5
5
  SHA512:
6
- metadata.gz: d1fe4dfc123fb768fde98d6e40ed82e51955f3612751afa0241a05868d31d7fe7e209036bac26f42573cd7b7ef2f099415ab4e6e8177cd00322c59746f11e486
7
- data.tar.gz: f79cefc7816b714aac7717d35b7a6d64ccc3302d5b90c31e7747e4e0897bd0c1a2820f87017ca86de4221ca9c593735e34eb8d52bd55a85906e08fcef5652fb9
6
+ metadata.gz: b75d081dad75b16ff179fd916c3b25f0f1c2a1fbcd1def2749a7b5cceb2f6af77f950c07abd14fad51a7db3a2d4f12ae3b9c3a8d9ca87f018991c34f3e7889b6
7
+ data.tar.gz: 537cac1df29fefd9294470bc47fcbe4510004189f637b7e0da70a815dc2b48a78f9ffb373be70d3b23c4cc0a85c0f8e1f2876f1a6fded9bb44e53de7a236fb3d
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## [0.2.39](https://github.com/klueless-io/rails_app_generator/compare/v0.2.38...v0.2.39) (2022-08-23)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * add friendly_id profile, add factory_bot_rails addon ([75d51ce](https://github.com/klueless-io/rails_app_generator/commit/75d51ceb63a5a560977073b2a6199545c5c8d17f))
7
+
1
8
  ## [0.2.38](https://github.com/klueless-io/rails_app_generator/compare/v0.2.37...v0.2.38) (2022-08-22)
2
9
 
3
10
 
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Provides Rails integration for factory_bot
4
+ #
5
+ # exe/rag addons/factory_bot_rails
6
+
7
+ self.local_template_path = File.dirname(__FILE__)
8
+
9
+ gac 'base rails 7 image created'
10
+
11
+ prepare_environment
12
+
13
+ after_bundle do
14
+ scaffolds
15
+ setup_customizations
16
+ setup_db
17
+ end
18
+
19
+ def scaffolds
20
+ add_scaffold('post', 'title', 'body:text', 'is_featured:boolean')
21
+ add_scaffold('person', 'first_name', 'last_name', 'email', 'password', 'address:text')
22
+ add_scaffold('project', 'name', 'status', 'budget:decimal', 'country', 'progress:integer')
23
+ end
24
+
25
+ def setup_customizations
26
+ route("root 'home#index'")
27
+
28
+ force_copy
29
+
30
+ add_controller('home', 'index', 'reseed')
31
+
32
+ directory "app/controllers"
33
+ directory "app/models"
34
+ directory "app/services"
35
+ directory "app/views"
36
+ template 'app/views/layouts/application.html.erb' , 'app/views/layouts/application.html.erb'
37
+ copy_file 'factories.rb', 'factories.rb'
38
+ end
39
+
40
+ def setup_db
41
+ template 'db/seeds.rb' , 'db/seeds.rb'
42
+
43
+ db_migrate
44
+ db_seed
45
+ end
@@ -0,0 +1,8 @@
1
+ class HomeController < ApplicationController
2
+ def index
3
+ end
4
+
5
+ def reseed
6
+ SeedService.seed
7
+ end
8
+ end
@@ -0,0 +1,27 @@
1
+ class SeedService
2
+ class << self
3
+ def seed
4
+ service = SeedService.new
5
+ service.call
6
+ end
7
+ end
8
+
9
+ def call
10
+ reset
11
+ create
12
+ end
13
+
14
+ private
15
+
16
+ def reset
17
+ Person.delete_all
18
+ Post.delete_all
19
+ Project.delete_all
20
+ end
21
+
22
+ def create
23
+ FactoryBot.create_list(:post, rand(10..20))
24
+ FactoryBot.create_list(:person, rand(10..20))
25
+ FactoryBot.create_list(:project, rand(10..20))
26
+ end
27
+ end
@@ -0,0 +1,3 @@
1
+ <h1>Factory bot rails</h1>
2
+
3
+ <p></p>
@@ -0,0 +1,6 @@
1
+ <h1>Re-Seed</h1>
2
+ <p>Database has been re-seeded</p>
3
+
4
+ <p>Posts: <%= Post.count %></p>
5
+ <p>People: <%= Person.count %></p>
6
+ <p>Projects: <%= Project.count %></p>
@@ -0,0 +1,6 @@
1
+ <%= link_to 'Home', root_path %>
2
+ | <%= link_to 'Re-Seed', home_reseed_path %>
3
+ | <%= link_to 'Posts', posts_path %>
4
+ | <%= link_to 'People', people_path %>
5
+ | <%= link_to 'Projects', projects_path %>
6
+ <hr />
@@ -0,0 +1,29 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title><%= camelized %></title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <%%= csrf_meta_tags %>
7
+ <%%= csp_meta_tag %>
8
+
9
+ <%- if options[:skip_hotwire] || options[:skip_javascript] -%>
10
+ <%%= stylesheet_link_tag "application" %>
11
+ <%- else -%>
12
+ <%%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
13
+ <%- end -%>
14
+ </head>
15
+
16
+ <body>
17
+ <header>
18
+ <%%= render 'layouts/navbar' %>
19
+ <hr />
20
+ </header>
21
+ <main>
22
+ <%%= yield %>
23
+ </main>
24
+ <footer>
25
+ <%%= render 'layouts/footer' %>
26
+ </footer>
27
+ </body>
28
+ </html>
29
+
@@ -0,0 +1 @@
1
+ SeedService.seed
@@ -0,0 +1,27 @@
1
+ FactoryBot.define do
2
+ # add_scaffold('post', 'title', 'body:text', 'is_featured:boolean')
3
+ # add_scaffold('person', 'first_name', 'last_name', 'email', 'password', 'is_featured:boolean', 'address:text')
4
+ # add_scaffold('project', 'status', 'budget:decimal', 'country', 'progress:integer')
5
+
6
+ factory :person do
7
+ first_name { Faker::Name.first_name }
8
+ last_name { Faker::Name.last_name }
9
+ email { Faker::Internet.email }
10
+ password { Faker::Internet.password }
11
+ address { Faker::Address.full_address }
12
+ end
13
+
14
+ factory :post do
15
+ title { Faker::Quote.famous_last_words }
16
+ body { Faker::Lorem.paragraphs(number: rand(4...10)).join("\n") }
17
+ is_featured { [true, false].sample }
18
+ end
19
+
20
+ factory :project do
21
+ name { Faker::App.name }
22
+ status { [:closed, :rejected, :failed, :loading, :running, :waiting, :done, :finalized, :archived, :finished].sample }
23
+ budget { Faker::Number.decimal(l_digits: 4) }
24
+ country { Faker::Address.country_code }
25
+ progress { Faker::Number.between(from: 0, to: 100) }
26
+ end
27
+ end
@@ -52,6 +52,7 @@
52
52
  "add_devise",
53
53
  "add_devise_masquerade",
54
54
  "add_dotenv",
55
+ "add_factory_bot_rails",
55
56
  "add_faker",
56
57
  "add_friendly_id",
57
58
  "add_groupdate",
@@ -440,6 +441,13 @@
440
441
  "default": false,
441
442
  "required": false
442
443
  },
444
+ {
445
+ "name": "add_factory_bot_rails",
446
+ "description": "Indicates when to generate add factory bot rails",
447
+ "type": "boolean",
448
+ "default": false,
449
+ "required": false
450
+ },
443
451
  {
444
452
  "name": "add_faker",
445
453
  "description": "Indicates when to generate add faker",
@@ -32,23 +32,24 @@
32
32
  "test": "rspec",
33
33
  "add_acts_as_list": false,
34
34
  "add_administrate": false,
35
- "add_annotate": true,
36
- "add_avo": true,
35
+ "add_annotate": false,
36
+ "add_avo": false,
37
37
  "add_bcrypt": false,
38
38
  "add_brakeman": false,
39
39
  "add_browser": false,
40
40
  "add_bundler_audit": false,
41
41
  "add_chartkick": false,
42
- "add_devise": true,
42
+ "add_devise": false,
43
43
  "add_devise_masquerade": false,
44
44
  "add_dotenv": false,
45
+ "add_factory_bot_rails": true,
45
46
  "add_faker": true,
46
47
  "add_friendly_id": false,
47
48
  "add_groupdate": false,
48
49
  "add_hexapdf": false,
49
50
  "add_httparty": false,
50
51
  "add_honeybadger": false,
51
- "add_image_processing": true,
52
+ "add_image_processing": false,
52
53
  "add_kaminari": false,
53
54
  "add_lograge": false,
54
55
  "add_minimal_css": true,
@@ -59,11 +60,11 @@
59
60
  "add_pretender": false,
60
61
  "add_public_suffix": false,
61
62
  "add_rails_html_sanitizer": false,
62
- "add_ransack": true,
63
+ "add_ransack": false,
63
64
  "add_redcarpet": false,
64
65
  "add_rolify": false,
65
- "add_rubocop": true,
66
+ "add_rubocop": false,
66
67
  "add_twilio_ruby": false,
67
- "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/avo/_.rb"
68
+ "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/factory_bot_rails/_.rb"
68
69
  }
69
70
  }
@@ -52,6 +52,7 @@
52
52
  "add_devise",
53
53
  "add_devise_masquerade",
54
54
  "add_dotenv",
55
+ "add_factory_bot_rails",
55
56
  "add_faker",
56
57
  "add_friendly_id",
57
58
  "add_groupdate",
@@ -440,6 +441,13 @@
440
441
  "default": false,
441
442
  "required": false
442
443
  },
444
+ {
445
+ "name": "add_factory_bot_rails",
446
+ "description": "",
447
+ "type": "boolean",
448
+ "default": false,
449
+ "required": false
450
+ },
443
451
  {
444
452
  "name": "add_faker",
445
453
  "description": "",
@@ -7,7 +7,7 @@
7
7
  "quiet": false,
8
8
  "skip": false,
9
9
  "ruby": "/Users/davidcruwys/.asdf/installs/ruby/3.1.1/bin/ruby",
10
- "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/avo/_.rb",
10
+ "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/factory_bot_rails/_.rb",
11
11
  "database": "sqlite3",
12
12
  "skip_git": true,
13
13
  "skip_keeps": false,
@@ -42,23 +42,24 @@
42
42
  "test": "rspec",
43
43
  "add_acts_as_list": false,
44
44
  "add_administrate": false,
45
- "add_annotate": true,
46
- "add_avo": true,
45
+ "add_annotate": false,
46
+ "add_avo": false,
47
47
  "add_bcrypt": false,
48
48
  "add_brakeman": false,
49
49
  "add_browser": false,
50
50
  "add_bundler_audit": false,
51
51
  "add_chartkick": false,
52
- "add_devise": true,
52
+ "add_devise": false,
53
53
  "add_devise_masquerade": false,
54
54
  "add_dotenv": false,
55
+ "add_factory_bot_rails": true,
55
56
  "add_faker": true,
56
57
  "add_friendly_id": false,
57
58
  "add_groupdate": false,
58
59
  "add_hexapdf": false,
59
60
  "add_httparty": false,
60
61
  "add_honeybadger": false,
61
- "add_image_processing": true,
62
+ "add_image_processing": false,
62
63
  "add_kaminari": false,
63
64
  "add_lograge": false,
64
65
  "add_minimal_css": true,
@@ -69,10 +70,10 @@
69
70
  "add_pretender": false,
70
71
  "add_public_suffix": false,
71
72
  "add_rails_html_sanitizer": false,
72
- "add_ransack": true,
73
+ "add_ransack": false,
73
74
  "add_redcarpet": false,
74
75
  "add_rolify": false,
75
- "add_rubocop": true,
76
+ "add_rubocop": false,
76
77
  "add_twilio_ruby": false
77
78
  }
78
79
  }
@@ -5,7 +5,7 @@ module RailsAppGenerator
5
5
  module AddOns
6
6
  # Add FactoryBotRails to rails application
7
7
  class FactoryBotRails < RailsAppGenerator::Addon
8
- required_gem gem.version('factory_bot_rails', '6.2.0', 'Provides Rails integration for factory_bot.')
8
+ required_gem gem.version('factory_bot_rails', '6.2.0', 'Provides Rails integration for factory_bot')
9
9
 
10
10
  def apply
11
11
  say 'Setting up FactoryBotRails'
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsAppGenerator
4
- VERSION = '0.2.39'
4
+ VERSION = '0.2.40'
5
5
  end
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "rails_app_generator",
3
- "version": "0.2.39",
3
+ "version": "0.2.40",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "rails_app_generator",
9
- "version": "0.2.39",
9
+ "version": "0.2.40",
10
10
  "dependencies": {
11
11
  "daisyui": "^2.20.0"
12
12
  },
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rails_app_generator",
3
- "version": "0.2.39",
3
+ "version": "0.2.40",
4
4
  "description": "Create new Rails Application with custom opinions",
5
5
  "scripts": {
6
6
  "release": "semantic-release"
@@ -0,0 +1,14 @@
1
+ {
2
+ "args": {
3
+ "app_path": "r7_factory_bot_rails",
4
+ "destination_root": "/Users/davidcruwys/dev/kgems/rails_app_generator/a/addons"
5
+ },
6
+ "opts": {
7
+ "skip_git": true,
8
+ "skip_test": true,
9
+ "add_minimal_css": true,
10
+ "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/factory_bot_rails/_.rb",
11
+ "add_factory_bot_rails": true,
12
+ "add_faker": true
13
+ }
14
+ }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_app_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.39
4
+ version: 0.2.40
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys
@@ -294,6 +294,16 @@ files:
294
294
  - after_templates/addons/dotenv/app/controllers/home_controller.rb
295
295
  - after_templates/addons/dotenv/app/views/home/index.html.erb
296
296
  - after_templates/addons/dotenv/app/views/layouts/application.html.erb
297
+ - after_templates/addons/factory_bot_rails/_.rb
298
+ - after_templates/addons/factory_bot_rails/app/controllers/home_controller.rb
299
+ - after_templates/addons/factory_bot_rails/app/services/seed_service.rb
300
+ - after_templates/addons/factory_bot_rails/app/views/home/index.html.erb
301
+ - after_templates/addons/factory_bot_rails/app/views/home/reseed.html.erb
302
+ - after_templates/addons/factory_bot_rails/app/views/layouts/_footer.html.erb
303
+ - after_templates/addons/factory_bot_rails/app/views/layouts/_navbar.html.erb
304
+ - after_templates/addons/factory_bot_rails/app/views/layouts/application.html.erb
305
+ - after_templates/addons/factory_bot_rails/db/seeds.rb
306
+ - after_templates/addons/factory_bot_rails/factories.rb
297
307
  - after_templates/addons/faker/_.rb
298
308
  - after_templates/addons/faker/app/controllers/home_controller.rb
299
309
  - after_templates/addons/faker/app/views/home/index.html.erb
@@ -747,6 +757,7 @@ files:
747
757
  - profiles/addons/devise.json
748
758
  - profiles/addons/devise_masquerade.json
749
759
  - profiles/addons/dotenv.json
760
+ - profiles/addons/factory_bot_rails.json
750
761
  - profiles/addons/faker.json
751
762
  - profiles/addons/friendly_id.json
752
763
  - profiles/addons/hexapdf.json