class SliceGenerator
Constants
- FIELD_NORMALIZATIONS
Public Instance Methods
create_set_files()
click to toggle source
# File lib/generators/slice/slice_generator.rb, line 51 def create_set_files if set_slice? template "page.rb", "#{slice_path}/#{page_name}.rb" template "presenter.rb", "#{slice_path}/#{page_name}_presenter.rb" end end
create_slices()
click to toggle source
# File lib/generators/slice/slice_generator.rb, line 20 def create_slices if set_slice? template "set_slice.rb", "#{slice_path}/#{file_name}_slice.rb" else template "slice.rb", "#{slice_path}/#{file_name}_slice.rb" end end
create_templates()
click to toggle source
# File lib/generators/slice/slice_generator.rb, line 36 def create_templates if set_slice? template "set_slice_fields.hbs", "#{slice_path}/templates/#{file_name}.hbs" else template "slice_fields.hbs", "#{slice_path}/templates/#{file_name}.hbs" end base = set_slice? ? page_name : file_name if options.with_entry_templates? template "main_fields.hbs", "#{slice_path}/templates/#{base}_main.hbs" template "meta_fields.hbs", "#{slice_path}/templates/#{base}_meta.hbs" end end
create_views()
click to toggle source
# File lib/generators/slice/slice_generator.rb, line 28 def create_views if set_slice? template "set.html.erb", "#{slice_path}/views/set.html.erb" else template "show.html.erb", "#{slice_path}/views/show.html.erb" end end
Private Instance Methods
class_for_field(type)
click to toggle source
# File lib/generators/slice/slice_generator.rb, line 119 def class_for_field type FIELD_NORMALIZATIONS.fetch(type, type).to_s.classify end
field_definitions()
click to toggle source
# File lib/generators/slice/slice_generator.rb, line 77 def field_definitions out = [] if attributes.any? { |attribute| attribute.type == :attachments } out << " include Slices::HasAttachments\n" end attributes.each do |attribute| case attribute.type when :attachments attachment_klass = attribute.name.classify out << [ "", " class #{attachment_klass} < Attachment", " # Extend your attachments by adding fields here e.g.", " field :caption", " end", " has_attachments :#{attribute.name}, class_name: '#{class_name}Slice::#{attachment_klass}'", "" ].join("\n") else out << " field :#{attribute.name}, type: #{class_for_field attribute.type}" end end out.join "\n" end
form_slice?()
click to toggle source
# File lib/generators/slice/slice_generator.rb, line 73 def form_slice? file_name.ends_with? '_form' end
label_if_needed_for(attribute)
click to toggle source
# File lib/generators/slice/slice_generator.rb, line 113 def label_if_needed_for attribute unless attribute.name == file_name %{<label for="slices-{{id}}-#{attribute.name}">#{attribute.name.humanize}</label>} end end
needs_label?(attribute)
click to toggle source
# File lib/generators/slice/slice_generator.rb, line 109 def needs_label? attribute attribute.name.underscore == class_name.underscore end
page_name()
click to toggle source
# File lib/generators/slice/slice_generator.rb, line 65 def page_name file_name.sub /_set$/, '' end
set_slice?()
click to toggle source
# File lib/generators/slice/slice_generator.rb, line 69 def set_slice? file_name.ends_with? '_set' end
slice_input_id(name)
click to toggle source
# File lib/generators/slice/slice_generator.rb, line 105 def slice_input_id name "slices-{{id}}-#{name}" end
slice_path()
click to toggle source
# File lib/generators/slice/slice_generator.rb, line 61 def slice_path "app/slices/#{file_name}" end