Class: FeaturePack::AddGroupGenerator

Inherits:
Rails::Generators::NamedBase
  • Object
show all
Defined in:
lib/generators/feature_pack/add_group/add_group_generator.rb

Instance Method Summary collapse

Instance Method Details

#create_feature_groupObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/generators/feature_pack/add_group/add_group_generator.rb', line 11

def create_feature_group
  raise "Group '#{name}' already exists" if FeaturePack.group(name.to_sym).present?

  @class_name = name.camelcase

  # id can't contain underline '_'
  group_id = name.gsub('_', '-') + '-' + '999'
  group_dir = FeaturePack.features_path.join("group_#{group_id}_#{name}")

  template './_group_metadata/controller.rb.tt', group_dir.join('_group_metadata', 'controller.rb')
  template './_group_metadata/manifest.yaml.tt', group_dir.join('_group_metadata', 'manifest.yaml')
  template './_group_metadata/routes.rb.disabled.tt', group_dir.join('_group_metadata', 'routes.rb.disabled')
  template './_group_metadata/views/home.html.slim.tt', group_dir.join('_group_metadata', 'views/home.html.slim')
  template './_group_metadata/views/partials/_header.html.slim.tt', group_dir.join('_group_metadata', 'views/partials/_header.html.slim')
  template './_group_metadata/views/partials/_footer.html.slim.tt', group_dir.join('_group_metadata', 'views/partials/_footer.html.slim')

  # create_file "app/models/#{group_name.underscore}/#{name.underscore}.rb", <<-FILE
  # class #{group_name.camelize}::#{name.camelize} < ApplicationRecord
  #   # Lógicas específicas da feature, como validações e associações
  # end
  # FILE
end