bullet_train-super_scaffolding 1.6.11 → 1.6.12

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: deaf8ea96df90b0a99c72b3bd577ff05c2f41e13f111c60f596d73fdae10d3fd
4
- data.tar.gz: 9142c1f14dc4b8fdab16ea68a5c8f11da7f0ae798ba1d6338e594347e5c25813
3
+ metadata.gz: e5a15e9fcfe1268219c9bf057521179f25cfeeaa5c0a9411bcdcbd8cbe270152
4
+ data.tar.gz: 613a44877e831dd2c1e3715666d4059a623716a2450c2bd7ceff0aa304371e0c
5
5
  SHA512:
6
- metadata.gz: 0c1ba6932a9db1a870e8174f9aae58d011a600c030e0afd9f1beae3afd9a24ccd0a4c0060aa604f3ca5264b43decb8deecbde2585d951d6ae8077f0aa5e1f7eb
7
- data.tar.gz: f1497afc9332d2db0eef6c0979cdc1065c8bf337dcc002a18203ded498c5cb7f50dfdd7ebc86111c4a8f0bdfe31426fad5fa84ae59392561bd04def404faa09e
6
+ metadata.gz: 2b076a56ddd441d854d649ba0dd5dd2e4f4494747bf1fde9b0b239eb32a82fbc04b2437186383da1fc90e2c025b446ed21899e5c5ef7c8e7b8f8ec9db2a0a4de
7
+ data.tar.gz: 713d83c5c6bc8d09653267cd7725548ffe7cad57d8000cf421e5ecf88c9373cab7048f4e8b4d39ca54bdfefcd2c84b841c63b39a756ca3d01ec55c2874944439
@@ -1,5 +1,5 @@
1
1
  module BulletTrain
2
2
  module SuperScaffolding
3
- VERSION = "1.6.11"
3
+ VERSION = "1.6.12"
4
4
  end
5
5
  end
@@ -0,0 +1,36 @@
1
+ Description:
2
+ Generate a production ready CRUD interface for a model. See the docs for more details:
3
+ https://bullettrain.co/docs/super-scaffolding
4
+
5
+ E.g. a Team has many Sites with some attributes:
6
+ rails g super_scaffold Site Team name:text_field url:text_area
7
+
8
+ E.g. a Section belongs to a Page, which belongs to a Site, which belongs to a Team:
9
+ rails g super_scaffold Section Page,Site,Team title:text_field body:text_area
10
+
11
+ E.g. an Image belongs to either a Page or a Site:
12
+ Doable! See https://bit.ly/2NvO8El for a step by step guide.
13
+
14
+ E.g. Pages belong to a Site and are sortable via drag-and-drop:
15
+ rails g super_scaffold Page Site,Team name:text_field path:text_area --sortable
16
+
17
+ Example:
18
+ E.g. a Team has many Projects each having a name:
19
+ bin/rails generate super_scaffold Project Team name:text_field
20
+
21
+ This will create:
22
+ app/controllers/account/projects_controller.rb
23
+ app/controllers/api/v1/projects_controller.rb
24
+ app/models/project.rb
25
+ app/views/account/projects/
26
+ app/views/api/v1/projects/
27
+ config/locales/en/projects.en.yml
28
+ db/migrate/20231004190209_create_projects.rb
29
+ test/controllers/api/v1/projects_controller_test.rb
30
+ test/factories/projects.rb
31
+ test/models/project_test.rb
32
+
33
+ 🏆 Protip: Commit your other changes before running Super Scaffolding so it's easy to undo if you (or we) make any mistakes.
34
+ If you do that, you can reset to your last commit state by using `git checkout .` and `git clean -d -f`.
35
+
36
+ Give it a shot! Let us know if you have any trouble with it! ✌️
@@ -0,0 +1,15 @@
1
+ Description:
2
+ Add a new field to an existing Super Scaffold. See the docs for more details:
3
+ https://bullettrain.co/docs/super-scaffolding
4
+
5
+ Example:
6
+ bin/rails generate super_scaffold:field Project description:trix_editor
7
+
8
+ This will update:
9
+ app/models/project.rb
10
+ app/views/account/projects/_form.html.erb
11
+ app/views/account/projects/show.html.erb
12
+ config/locales/en/projects.en.yml
13
+ config/locales/en/projects.en.yml
14
+ app/controllers/account/projects_controller.rb
15
+ app/controllers/api/v1/projects_controller.rb
@@ -0,0 +1,27 @@
1
+ require_relative "../super_scaffold_base"
2
+
3
+ class FieldGenerator < Rails::Generators::Base
4
+ include SuperScaffoldBase
5
+
6
+ source_root File.expand_path("templates", __dir__)
7
+
8
+ namespace "super_scaffold:field"
9
+
10
+ argument :model, type: :string
11
+ argument :attributes, type: :array, default: [], banner: "attribute:type attribute:type"
12
+
13
+ class_option :skip_migration_generation, type: :boolean, default: false, desc: "Don't generate the model migration"
14
+ class_option :skip_form, type: :boolean, default: false, desc: "Don't alter the new/edit form"
15
+ class_option :skip_show, type: :boolean, default: false, desc: "Don't alter the show view"
16
+ class_option :skip_table, type: :boolean, default: false, desc: "Only add to the new/edit form and show view."
17
+ class_option :skip_locales, type: :boolean, default: false, desc: "Don't alter locale files"
18
+ class_option :skip_api, type: :boolean, default: false, desc: "Don't alter the api payloads"
19
+ class_option :skip_model, type: :boolean, default: false, desc: "Don't alter the model file"
20
+
21
+ def generate
22
+ # We add the name of the specific super_scaffolding command that we want to
23
+ # invoke to the beginning of the argument string.
24
+ ARGV.unshift "crud-field"
25
+ BulletTrain::SuperScaffolding::Runner.new.run
26
+ end
27
+ end
@@ -0,0 +1,16 @@
1
+ Description:
2
+ Generate a handler for incoming webhooks from an outside source.
3
+
4
+ Example:
5
+ E.g. prepare to receive system-level webhooks from ClickFunnels
6
+ rails g bullet_train:incoming_webhooks ClickFunnels
7
+
8
+ This will create:
9
+ app/models/webhooks/incoming/click_funnel_webhook.rb
10
+ app/controllers/webhooks/incoming/click_funnel_webhooks_controller.rb
11
+ test/controllers/webhooks/incoming/click_funnel_webhooks_controller_test.rb
12
+ And update:
13
+ config/routes.rb
14
+
15
+ 🏆 Protip: Commit your other changes before running Super Scaffolding so it's easy to undo if you (or we) make any mistakes.
16
+ If you do that, you can reset to your last commit state by using `git checkout .` and `git clean -d -f`.
@@ -0,0 +1,18 @@
1
+ require_relative "super_scaffold_base"
2
+
3
+ class IncomingWebhooksGenerator < Rails::Generators::Base
4
+ include SuperScaffoldBase
5
+
6
+ source_root File.expand_path("templates", __dir__)
7
+
8
+ namespace "super_scaffold:incoming_webhooks"
9
+
10
+ argument :provider_name
11
+
12
+ def generate
13
+ # We add the name of the specific super_scaffolding command that we want to
14
+ # invoke to the beginning of the argument string.
15
+ ARGV.unshift "incoming-webhooks"
16
+ BulletTrain::SuperScaffolding::Runner.new.run
17
+ end
18
+ end
@@ -0,0 +1,28 @@
1
+ Description:
2
+ Generate a Bullet Train Join Model.
3
+
4
+ Example:
5
+ E.g. Add project-specific tags to a project:
6
+
7
+ Given the following example models:
8
+
9
+ rails g super_scaffold Project Team name:text_field description:trix_editor
10
+ rails g super_scaffold Projects::Tag Team name:text_field
11
+
12
+ 1️⃣ Use the standard Rails model generator to generate the join model:
13
+
14
+ rails g model Projects::AppliedTag project:references tag:references
15
+
16
+ 👋 Don't run migrations yet! Sometimes Super Scaffolding updates them for you.
17
+
18
+ 2️⃣ Use `join-model` scaffolding to prepare the join model for use in `crud-field` scaffolding:
19
+
20
+ rails g bullet_train:join_model Projects::AppliedTag project_id{class_name=Project} tag_id{class_name=Projects::Tag}
21
+
22
+ 3️⃣ Now you can use `crud-field` scaffolding to actually add the field to the form of the parent model:
23
+
24
+ rails g super_scaffold:field Project tag_ids:super_select{class_name=Projects::Tag}
25
+
26
+ 👋 Heads up! There will be one follow-up step output by this command that you need to take action on.
27
+
28
+ 4️⃣ Now you can run your migrations.
@@ -0,0 +1,28 @@
1
+ require_relative "super_scaffold_base"
2
+
3
+ class JoinModelGenerator < Rails::Generators::Base
4
+ include SuperScaffoldBase
5
+
6
+ source_root File.expand_path("templates", __dir__)
7
+
8
+ namespace "super_scaffold:join_model"
9
+
10
+ argument :join_model
11
+ argument :left_association
12
+ argument :right_association
13
+
14
+ class_option :skip_migration_generation, type: :boolean, default: false, desc: "Don't generate the model migration"
15
+ class_option :skip_form, type: :boolean, default: false, desc: "Don't alter the new/edit form"
16
+ class_option :skip_show, type: :boolean, default: false, desc: "Don't alter the show view"
17
+ class_option :skip_table, type: :boolean, default: false, desc: "Only add to the new/edit form and show view."
18
+ class_option :skip_locales, type: :boolean, default: false, desc: "Don't alter locale files"
19
+ class_option :skip_api, type: :boolean, default: false, desc: "Don't alter the api payloads"
20
+ class_option :skip_model, type: :boolean, default: false, desc: "Don't alter the model file"
21
+
22
+ def generate
23
+ # We add the name of the specific super_scaffolding command that we want to
24
+ # invoke to the beginning of the argument string.
25
+ ARGV.unshift "join-model"
26
+ BulletTrain::SuperScaffolding::Runner.new.run
27
+ end
28
+ end
@@ -0,0 +1,50 @@
1
+ Description:
2
+ Generate the setup and configuration for using an external OAuth Provider.
3
+
4
+ For a list of readily available provider strategies, see https://github.com/omniauth/omniauth/wiki/List-of-Strategies
5
+
6
+ Example:
7
+ E.g. what we actually did to start Shopify off:
8
+ bin/rails generate bullet_train:oauth_provider omniauth-shopify-oauth2 shopify Oauth::ShopifyAccount SHOPIFY_API_KEY SHOPIFY_API_SECRET_KEY --icon=ti-shopping-cart
9
+ (Please note here that the SHOPIFY_API_KEY and SHOPIFY_API_SECRET_KEY strings are not the actual values, just the names we give to the environment variables.)
10
+
11
+ This will create:
12
+ app/models/oauth/shopify_account.rb
13
+ app/models/concerns/oauth/shopify_accounts/base.rb
14
+ app/models/webhooks/incoming/oauth/shopify_account_webhook.rb
15
+ app/models/concerns/webhooks/incoming/oauth/shopify_account_webhooks/base.rb
16
+ app/controllers/account/oauth/shopify_accounts_controller.rb
17
+ app/controllers/webhooks/incoming/oauth/shopify_account_webhooks_controller.rb
18
+ app/views/account/oauth/shopify_accounts/index.html.erb
19
+ app/views/account/oauth/shopify_accounts/_menu_item.html.erb
20
+ app/views/account/oauth/shopify_accounts/_index.html.erb
21
+ app/views/account/oauth/shopify_accounts/edit.html.erb
22
+ app/views/account/oauth/shopify_accounts/show.html.erb
23
+ app/views/account/oauth/shopify_accounts/_form.html.erb
24
+ app/views/account/oauth/shopify_accounts/_breadcrumbs.html.erb
25
+ test/models/oauth/shopify_account_test.rb
26
+ test/factories/oauth/shopify_accounts.rb
27
+ config/locales/en/oauth/shopify_accounts.en.yml
28
+ app/views/devise/shared/oauth/_shopify.html.erb
29
+ app/models/integrations/shopify_installation.rb
30
+ app/models/concerns/integrations/shopify_installations/base.rb
31
+ app/controllers/account/integrations/shopify_installations_controller.rb
32
+ app/views/account/integrations/shopify_installations/index.html.erb
33
+ app/views/account/integrations/shopify_installations/_menu_item.html.erb
34
+ app/views/account/integrations/shopify_installations/_index.html.erb
35
+ app/views/account/integrations/shopify_installations/_list.html.erb
36
+ app/views/account/integrations/shopify_installations/edit.html.erb
37
+ app/views/account/integrations/shopify_installations/show.html.erb
38
+ app/views/account/integrations/shopify_installations/_form.html.erb
39
+ app/views/account/integrations/shopify_installations/new.html.erb
40
+ app/views/account/integrations/shopify_installations/_breadcrumbs.html.erb
41
+ test/models/integrations/shopify_installation_test.rb
42
+ test/factories/integrations/shopify_installations.rb
43
+ config/locales/en/integrations/shopify_installations.en.yml
44
+ app/models/webhooks/incoming/oauth/shopify_account_webhook.rb
45
+ app/controllers/webhooks/incoming/oauth/shopify_account_webhooks_controller.rb
46
+
47
+ 🏆 Protip: Commit your other changes before running Super Scaffolding so it's easy to undo if you (or we) make any mistakes.
48
+ If you do that, you can reset to your last commit state by using `git checkout .` and `git clean -d -f`.
49
+
50
+
@@ -0,0 +1,24 @@
1
+ require_relative "super_scaffold_base"
2
+
3
+ class OauthProviderGenerator < Rails::Generators::Base
4
+ include SuperScaffoldBase
5
+
6
+ source_root File.expand_path("templates", __dir__)
7
+
8
+ namespace "super_scaffold:oauth_provider"
9
+
10
+ argument :omniauth_gem
11
+ argument :gems_provider_name
12
+ argument :our_provider_name
13
+ argument :PROVIDER_API_KEY_ENV_VAR_NAME
14
+ argument :PROVIDER_API_SECRET_ENV_VAR_NAME
15
+
16
+ class_option :icon, type: :string, desc: "Specify an icon."
17
+
18
+ def generate
19
+ # We add the name of the specific super_scaffolding command that we want to
20
+ # invoke to the beginning of the argument string.
21
+ ARGV.unshift "oauth-provider"
22
+ BulletTrain::SuperScaffolding::Runner.new.run
23
+ end
24
+ end
@@ -0,0 +1,41 @@
1
+ module SuperScaffoldBase
2
+ extend ActiveSupport::Concern
3
+
4
+ included do
5
+ # ##############################
6
+ #
7
+ # TODO: Should we retain some of these class options?
8
+ #
9
+ # By default we inherit a bunch of options that _would_ automatically be used if we
10
+ # were writing a normal Rails generator that used normal methods of generating files.
11
+ # So if you invoke this generator without passing any arguments (and without these
12
+ # remove_class_option lines) then at the top of the help text you'd see info about all
13
+ # of these options:
14
+ #
15
+ # ##############################
16
+ #
17
+ # rails g super_scaffold
18
+ #
19
+ # Options:
20
+ # [--skip-namespace], [--no-skip-namespace] # Skip namespace (affects only isolated engines)
21
+ # [--skip-collision-check], [--no-skip-collision-check] # Skip collision check
22
+ #
23
+ # Runtime options:
24
+ # -f, [--force] # Overwrite files that already exist
25
+ # -p, [--pretend], [--no-pretend] # Run but do not make any changes
26
+ # -q, [--quiet], [--no-quiet] # Suppress status output
27
+ # -s, [--skip], [--no-skip] # Skip files that already exist
28
+ #
29
+ # ##############################
30
+ #
31
+ # Maye we have comparable options for some of these and should retain them and
32
+ # pass them through to the rake task?
33
+
34
+ remove_class_option :skip_namespace
35
+ remove_class_option :skip_collision_check
36
+ remove_class_option :force
37
+ remove_class_option :pretend
38
+ remove_class_option :quiet
39
+ remove_class_option :skip
40
+ end
41
+ end
@@ -0,0 +1,34 @@
1
+ require_relative "super_scaffold_base"
2
+
3
+ class SuperScaffoldGenerator < Rails::Generators::Base
4
+ include SuperScaffoldBase
5
+
6
+ source_root File.expand_path("templates", __dir__)
7
+
8
+ namespace "super_scaffold"
9
+
10
+ argument :model, type: :string
11
+ argument :parent_models, type: :string
12
+ argument :attributes, type: :array, default: [], banner: "attribute:type attribute:type"
13
+
14
+ class_option :skip_migration_generation, type: :boolean, default: false, desc: "Don't generate the model migration"
15
+ class_option :sortable, type: :boolean, default: false, desc: "https://bullettrain.co/docs/super-scaffolding/sortable"
16
+ class_option :namespace, type: :string, desc: "https://bullettrain.co/docs/namespacing"
17
+ class_option :sidebar, type: :string, desc: "Pass the Themify icon or Font Awesome icon to automatically add it to the navbar"
18
+ class_option :only_index, type: :boolean, default: false, desc: "Only scaffold the index view for a model"
19
+ class_option :skip_views, type: :boolean, default: false, desc: "Don't generate views"
20
+ class_option :skip_form, type: :boolean, default: false, desc: "Don't generate a new/edit form"
21
+ class_option :skip_locales, type: :boolean, default: false, desc: "Don't generate locale files"
22
+ class_option :skip_api, type: :boolean, default: false, desc: "Don't generate api files"
23
+ class_option :skip_model, type: :boolean, default: false, desc: "Don't generate a model file"
24
+ class_option :skip_controller, type: :boolean, default: false, desc: "Don't generate a controller file"
25
+ class_option :skip_routes, type: :boolean, default: false, desc: "Don't generate any routes"
26
+ class_option :skip_parent, type: :boolean, default: false, desc: "Don't add child models to the show page of their parent"
27
+
28
+ def generate
29
+ # We add the name of the specific super_scaffolding command that we want to
30
+ # invoke to the beginning of the argument string.
31
+ ARGV.unshift "crud"
32
+ BulletTrain::SuperScaffolding::Runner.new.run
33
+ end
34
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bullet_train-super_scaffolding
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.11
4
+ version: 1.6.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Culver
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-13 00:00:00.000000000 Z
11
+ date: 2023-11-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: standard
@@ -163,6 +163,17 @@ files:
163
163
  - lib/bullet_train/super_scaffolding/scaffolders/oauth_provider_scaffolder.rb
164
164
  - lib/bullet_train/super_scaffolding/version.rb
165
165
  - lib/bullet_train/terminal_commands.rb
166
+ - lib/generators/super_scaffold/USAGE
167
+ - lib/generators/super_scaffold/field/USAGE
168
+ - lib/generators/super_scaffold/field/field_generator.rb
169
+ - lib/generators/super_scaffold/incoming_webhooks/USAGE
170
+ - lib/generators/super_scaffold/incoming_webhooks/incoming_webhooks_generator.rb
171
+ - lib/generators/super_scaffold/join_model/USAGE
172
+ - lib/generators/super_scaffold/join_model/join_model_generator.rb
173
+ - lib/generators/super_scaffold/oauth_provider/USAGE
174
+ - lib/generators/super_scaffold/oauth_provider/oauth_provider_generator.rb
175
+ - lib/generators/super_scaffold/super_scaffold_base.rb
176
+ - lib/generators/super_scaffold/super_scaffold_generator.rb
166
177
  - lib/scaffolding.rb
167
178
  - lib/scaffolding/attribute.rb
168
179
  - lib/scaffolding/block_manipulator.rb