feature_pack 0.1.3 → 0.1.6

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: efa0492819f5f4d1c41a235a9b4f07f57fb2f634e5b624c6d852c6599590180c
4
- data.tar.gz: b77bc5fdc56fca2c257854afb193b53949635387b18323d8b4a42c3a7a155a2a
3
+ metadata.gz: 281dd30e4d1dfff4a4be468c364b5528c910fd79afb3eec21fd8e9d8436f1fee
4
+ data.tar.gz: 25ec88a0b0c8626977687d642954fda17abdd617bdf422fb2c09774c6667341d
5
5
  SHA512:
6
- metadata.gz: b2fb6e5c3fc3f989e04bb79846743cafc8672dd1f60ae3480b46a7557bfb9c43d2ce24dfe6dfa2364e1e11c49aebbe240aecbaf153297516f5bd4d9100e1ac1a
7
- data.tar.gz: cf080f73d2dda1927a5b45f9a72f133309dc9e8f2dedeee6bd5c56954c046b40900716d00719c43054419f1453e1a4fa92e55b753a7e3b84667da3b7d10964a7
6
+ metadata.gz: 214735c4ec76ee1a6c23f36acda37ab1ec009c10234695390ea6e75a4102bb33522450eb30eea1616a4592c408a21b9e5b2b62efe8a953151346db9ee2edf30c
7
+ data.tar.gz: 91e5690231a142beb0abbcd0bef2f745926ca5cb5e113b605703ce974b7ee371ea65535b3bb71ffff6d14250cb50ecfb21de0b8785e96e8332847da7cc06209d
@@ -1,5 +1,5 @@
1
1
  class FeaturePack::Controller < ApplicationController
2
- before_action :set_feature
2
+ before_action :set_group_and_feature
3
3
  before_action :set_view_lookup_context_prefix
4
4
  before_action :set_layout_paths
5
5
 
@@ -7,8 +7,10 @@ class FeaturePack::Controller < ApplicationController
7
7
 
8
8
  private
9
9
 
10
- def set_feature
11
- @feature = FeaturePack.feature *params['controller'].delete_prefix('feature_pack/').split('/').map(&:to_sym)
10
+ def set_group_and_feature
11
+ group_name, feature_name = params['controller'].delete_prefix('feature_pack/').split('/').map(&:to_sym)
12
+ @group = FeaturePack.group group_name
13
+ @feature = FeaturePack.feature group_name, feature_name
12
14
  end
13
15
 
14
16
  def set_view_lookup_context_prefix
data/lib/feature_pack.rb CHANGED
@@ -62,6 +62,11 @@ module FeaturePack
62
62
  manifest: YAML.load_file(File.join(group_path, GROUP_METADATA_DIRECTORY, MANIFEST_FILE_NAME)).deep_symbolize_keys
63
63
  )
64
64
 
65
+ group.manifest.fetch(:const_aliases, []).each do |alias_data|
66
+ alias_method_name, alias_const_name = alias_data.first
67
+ group.define_singleton_method(alias_method_name) { "FeaturePack::#{group.name.name.camelize}::#{alias_const_name}".constantize }
68
+ end
69
+
65
70
  def group.feature(feature_name) = features.find { |p| p.name.eql?(feature_name) }
66
71
  def group.views_path = "#{base_dir}/#{GROUP_METADATA_DIRECTORY}/views"
67
72
  def group.view(view_name) = "#{base_dir}/#{GROUP_METADATA_DIRECTORY}/views/#{view_name}"
@@ -8,6 +8,8 @@ class FeaturePack::AddFeatureGenerator < Rails::Generators::NamedBase
8
8
  argument :name, type: :string, required: true, desc: 'The name (sneak case) of the group to add'
9
9
 
10
10
  def add_feature
11
+ raise "Feature name couldn't have more than one bar '/'" if name.count('/') > 1
12
+
11
13
  @group_name, @feature_name = name.split('/')
12
14
  @group = FeaturePack.group(@group_name.to_sym)
13
15
  @group_class_name = @group_name.camelcase
@@ -3,6 +3,8 @@
3
3
  :type: :alert
4
4
  :url: <%= @feature_name.gsub('_', '-') %>
5
5
  :version: 1.0.0
6
+ #const_aliases:
7
+ # - :params_class: 'Processor::Params'
6
8
  :policy:
7
9
  :admin: '*'
8
10
  :coordenacao_aps: '*'
@@ -9,6 +9,7 @@ class FeaturePack::AddGroupGenerator < Rails::Generators::NamedBase
9
9
  argument :name, type: :string, required: true, desc: 'The name (sneak case) of the group to add'
10
10
 
11
11
  def create_feature_group
12
+ raise "Group name couldn't have '/'" if name.include?('/')
12
13
  raise "Group '#{name}' already exists" if FeaturePack.group(name.to_sym).present?
13
14
 
14
15
  @class_name = name.camelcase
@@ -23,11 +24,5 @@ class FeaturePack::AddGroupGenerator < Rails::Generators::NamedBase
23
24
  template './_group_metadata/views/home.html.slim.tt', group_dir.join('_group_metadata', 'views/home.html.slim')
24
25
  template './_group_metadata/views/partials/_header.html.slim.tt', group_dir.join('_group_metadata', 'views/partials/_header.html.slim')
25
26
  template './_group_metadata/views/partials/_footer.html.slim.tt', group_dir.join('_group_metadata', 'views/partials/_footer.html.slim')
26
-
27
- # create_file "app/models/#{group_name.underscore}/#{name.underscore}.rb", <<-FILE
28
- # class #{group_name.camelize}::#{name.camelize} < ApplicationRecord
29
- # # Lógicas específicas da feature, como validações e associações
30
- # end
31
- # FILE
32
27
  end
33
28
  end
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.3
4
+ version: 0.1.6
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-28 00:00:00.000000000 Z
11
+ date: 2024-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport