rails_app_generator 0.2.39 → 0.2.40

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