feature_pack 0.1.3 → 0.1.6

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