feature_pack 0.1.0 → 0.1.2

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.
Files changed (19) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generators/feature_pack/add_feature/USAGE +8 -0
  3. data/lib/generators/feature_pack/add_feature/add_feature_generator.rb +29 -0
  4. data/lib/generators/feature_pack/add_feature/templates/controller.rb.tt +3 -0
  5. data/lib/generators/feature_pack/add_feature/templates/doc/readme.md.tt +1 -0
  6. data/lib/generators/feature_pack/add_feature/templates/manifest.yaml.tt +14 -0
  7. data/lib/generators/feature_pack/add_feature/templates/routes.rb.tt +1 -0
  8. data/lib/generators/feature_pack/add_feature/templates/views/home.html.slim.tt +2 -0
  9. data/lib/generators/feature_pack/add_feature/templates/views/partials/_footer.html.slim.tt +2 -0
  10. data/lib/generators/feature_pack/add_feature/templates/views/partials/_header.html.slim.tt +2 -0
  11. data/lib/generators/feature_pack/add_group/USAGE +8 -0
  12. data/lib/generators/feature_pack/add_group/add_group_generator.rb +30 -0
  13. data/lib/generators/feature_pack/add_group/templates/_group_metadata/controller.rb.tt +3 -0
  14. data/lib/generators/feature_pack/add_group/templates/_group_metadata/manifest.yaml.tt +3 -0
  15. data/lib/generators/feature_pack/add_group/templates/_group_metadata/routes.rb.disabled.tt +3 -0
  16. data/lib/generators/feature_pack/add_group/templates/_group_metadata/views/home.html.slim.tt +2 -0
  17. data/lib/generators/feature_pack/add_group/templates/_group_metadata/views/partials/_footer.html.slim.tt +2 -0
  18. data/lib/generators/feature_pack/add_group/templates/_group_metadata/views/partials/_header.html.slim.tt +2 -0
  19. metadata +19 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3c48187c59617383bf18b2291b8b3e790c0abae5c5a54f9cf122ee91a5b893a8
4
- data.tar.gz: 8cbe40c9035ece3879f3ff4649c8ce2c5bb8754d39c19a3472c5278b3da8145c
3
+ metadata.gz: 3e2946dd4dbd9336908bb8044877f745a97d44ee11fa125eb3a8a77f0102c3c2
4
+ data.tar.gz: 5e29ad8bcf002715386a2c93fa9a2ef4e9cb5922a49f198dbcdcd9e43caac354
5
5
  SHA512:
6
- metadata.gz: 9c9f6d6d133a205a3dcc08bd70fd65ec7e2c8ef9f7b080a3a0403651ebb5b18fd76c44f92c0caef0f93da2b03587f4d21023de66723026844e86640571f8ff34
7
- data.tar.gz: 984b145e2f8ef904a7ea8708ce42e5192b7c03fe8e43768312fd7bd2eb9a9c39cee153f0b80b797c4635e75a3c2441d87d9d903c6dff39bae7d7e0a734deaf46
6
+ metadata.gz: ad1e716ab8b251c4c6677074e338ad84ecaf127e3f6c2acd6a1b52a9ddcb27c7ad6346812645499e269ca6bd929bf14888585026ef0adebfd7a2275be73ff883
7
+ data.tar.gz: 8ed15f2382e2c3cc301e55e649e916cb1925ba4c4987e871e9a26156eb0ecb347315cee8b2a25d1a55d162fa367c21ea1dfe73132a211d482f61707630b1236a
@@ -0,0 +1,8 @@
1
+ Description:
2
+ Explain the generator
3
+
4
+ Example:
5
+ bin/rails generate add_feature Thing
6
+
7
+ This will create:
8
+ what/will/it/create
@@ -0,0 +1,29 @@
1
+ class FeaturePack::AddFeatureGenerator < Rails::Generators::NamedBase
2
+ desc 'Adds a new Feature'
3
+ source_root File.expand_path('templates', __dir__)
4
+
5
+ argument :name, type: :string, required: true, desc: 'The name (sneak case) of the group to add'
6
+
7
+ def add_feature
8
+ @group_name, @feature_name = name.split('/')
9
+ @group = FeaturePack.group(@group_name.to_sym)
10
+ @group_class_name = @group_name.camelcase
11
+ @feature_class_name = @feature_name.camelcase
12
+
13
+ raise "Group '#{@group_name}' doesn't exist. First, create it." if @group.nil?
14
+
15
+ raise "Feature '#{@group_class_name}::#{@feature_class_name}' already Exist." if FeaturePack.feature(@group_name.to_sym, @feature_name.to_sym).present?
16
+
17
+ @feature_id = @feature_name.gsub('_', '-') + '-' + '999'
18
+ @feature_dir = @group.relative_path.join("feature_#{@feature_id}_#{@feature_name}")
19
+
20
+ template './controller.rb.tt', @feature_dir.join('controller.rb')
21
+ template './manifest.yaml.tt', @feature_dir.join('manifest.yaml')
22
+ template './routes.rb.tt', @feature_dir.join('routes.rb')
23
+ template './views/home.html.slim.tt', @feature_dir.join('views/home.html.slim')
24
+ template './views/partials/_header.html.slim.tt', @feature_dir.join('views/partials/_header.html.slim')
25
+ template './views/partials/_footer.html.slim.tt', @feature_dir.join('views/partials/_footer.html.slim')
26
+ template './doc/readme.md.tt', @feature_dir.join('doc/readme.md')
27
+ create_file @feature_dir.join('queries', '.gitkeep')
28
+ end
29
+ end
@@ -0,0 +1,3 @@
1
+ class FeaturePack::<%= @group_class_name %>::<%= @feature_class_name %>Controller < FeaturePack::Controller
2
+ # home defined in parent controller
3
+ end
@@ -0,0 +1 @@
1
+ # <%= @feature_name%>
@@ -0,0 +1,14 @@
1
+ :name: Feature Friendly Name
2
+ :description:
3
+ :type: :alert
4
+ :url: <%= @feature_name.gsub('_', '-') %>
5
+ :version: 1.0.0
6
+ :policy:
7
+ :admin: '*'
8
+ :coordenacao_aps: '*'
9
+ :coordenacao_atividade_fisica: '*'
10
+ :coordenacao_saude_bucal:
11
+ - :lista_equipes_saude_bucal
12
+ :professional:
13
+ - :whatsapp_text_alert
14
+ - :whatsapp_protected_pdf
@@ -0,0 +1 @@
1
+ get '/', to: '<%= @feature_name %>#home'
@@ -0,0 +1,2 @@
1
+ h1 Feature <%= @group_class_name%>::<%=@feature_class_name %> Home
2
+ p = "Find-me at #{__FILE__}"
@@ -0,0 +1,2 @@
1
+ h1 Feature <%= @group_class_name %>::<%= @feature_class_name %> Footer
2
+ p = "Edit-me OR delete-me at #{__FILE__}"
@@ -0,0 +1,2 @@
1
+ h1 Feature <%= @group_class_name %>::<%= @feature_class_name %> Header
2
+ p = "Edit-me OR delete-me at #{__FILE__}"
@@ -0,0 +1,8 @@
1
+ Description:
2
+ Explain the generator
3
+
4
+ Example:
5
+ bin/rails generate add_group Thing
6
+
7
+ This will create:
8
+ what/will/it/create
@@ -0,0 +1,30 @@
1
+ class FeaturePack::AddGroupGenerator < Rails::Generators::NamedBase
2
+ # class Generators::FeaturePack::AddGroup::AddGroupGenerator < Rails::Generators::NamedBase
3
+ desc 'Adds a new Feature Group'
4
+ source_root File.expand_path('templates', __dir__)
5
+
6
+ argument :name, type: :string, required: true, desc: 'The name (sneak case) of the group to add'
7
+
8
+ def create_feature_group
9
+ raise "Group '#{name}' already exists" if FeaturePack.group(name.to_sym).present?
10
+
11
+ @class_name = name.camelcase
12
+
13
+ # id can't contain underline '_'
14
+ group_id = name.gsub('_', '-') + '-' + '999'
15
+ group_dir = FeaturePack.features_path.join("group_#{group_id}_#{name}")
16
+
17
+ template './_group_metadata/controller.rb.tt', group_dir.join('_group_metadata', 'controller.rb')
18
+ template './_group_metadata/manifest.yaml.tt', group_dir.join('_group_metadata', 'manifest.yaml')
19
+ template './_group_metadata/routes.rb.disabled.tt', group_dir.join('_group_metadata', 'routes.rb.disabled')
20
+ template './_group_metadata/views/home.html.slim.tt', group_dir.join('_group_metadata', 'views/home.html.slim')
21
+ template './_group_metadata/views/partials/_header.html.slim.tt', group_dir.join('_group_metadata', 'views/partials/_header.html.slim')
22
+ template './_group_metadata/views/partials/_footer.html.slim.tt', group_dir.join('_group_metadata', 'views/partials/_footer.html.slim')
23
+
24
+ # create_file "app/models/#{group_name.underscore}/#{name.underscore}.rb", <<-FILE
25
+ # class #{group_name.camelize}::#{name.camelize} < ApplicationRecord
26
+ # # Lógicas específicas da feature, como validações e associações
27
+ # end
28
+ # FILE
29
+ end
30
+ end
@@ -0,0 +1,3 @@
1
+ class FeaturePack::<%= class_name %>Controller < FeaturePack::GroupController
2
+ # 'home' already defined in RootGroupController
3
+ end
@@ -0,0 +1,3 @@
1
+ name: Group Friendly Name Here
2
+ url: <%= name.gsub('_', '-') %>
3
+ namespace_only: false
@@ -0,0 +1,3 @@
1
+ # You don't need enable this file if the only action is 'home'
2
+
3
+ get '/action-name-url', to: '<%= name %>#action_name'
@@ -0,0 +1,2 @@
1
+ h1 Group <%= class_name%> Home
2
+ p = "Find-me at #{__FILE__}"
@@ -0,0 +1,2 @@
1
+ h1 Group <%= class_name%> Footer
2
+ p = "Edit-me OR delete-me at #{__FILE__}"
@@ -0,0 +1,2 @@
1
+ h1 Group <%= class_name%> Header
2
+ p = "Edit-me OR delete-me at #{__FILE__}"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: feature_pack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gedean Dias
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-27 00:00:00.000000000 Z
11
+ date: 2024-04-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -40,6 +40,23 @@ files:
40
40
  - lib/feature_pack/error.rb
41
41
  - lib/feature_pack/feature_pack_routes.rb
42
42
  - lib/feature_pack/group_controller.rb
43
+ - lib/generators/feature_pack/add_feature/USAGE
44
+ - lib/generators/feature_pack/add_feature/add_feature_generator.rb
45
+ - lib/generators/feature_pack/add_feature/templates/controller.rb.tt
46
+ - lib/generators/feature_pack/add_feature/templates/doc/readme.md.tt
47
+ - lib/generators/feature_pack/add_feature/templates/manifest.yaml.tt
48
+ - lib/generators/feature_pack/add_feature/templates/routes.rb.tt
49
+ - lib/generators/feature_pack/add_feature/templates/views/home.html.slim.tt
50
+ - lib/generators/feature_pack/add_feature/templates/views/partials/_footer.html.slim.tt
51
+ - lib/generators/feature_pack/add_feature/templates/views/partials/_header.html.slim.tt
52
+ - lib/generators/feature_pack/add_group/USAGE
53
+ - lib/generators/feature_pack/add_group/add_group_generator.rb
54
+ - lib/generators/feature_pack/add_group/templates/_group_metadata/controller.rb.tt
55
+ - lib/generators/feature_pack/add_group/templates/_group_metadata/manifest.yaml.tt
56
+ - lib/generators/feature_pack/add_group/templates/_group_metadata/routes.rb.disabled.tt
57
+ - lib/generators/feature_pack/add_group/templates/_group_metadata/views/home.html.slim.tt
58
+ - lib/generators/feature_pack/add_group/templates/_group_metadata/views/partials/_footer.html.slim.tt
59
+ - lib/generators/feature_pack/add_group/templates/_group_metadata/views/partials/_header.html.slim.tt
43
60
  homepage: https://github.com/gedean/feature_pack
44
61
  licenses:
45
62
  - MIT