feature_pack 0.1.0 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
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