Sha256: 1f3e9f5d3329760adbb59c5685f94b1be52468419228c40a9adaf8187932ce09
Contents?: true
Size: 1.65 KB
Versions: 1
Compression:
Stored size: 1.65 KB
Contents
module Haml module Generators class EnquiryControllerGenerator < ::Rails::Generators::NamedBase source_root File.expand_path('../templates', __FILE__) check_class_collision :suffix => 'Enquiry' argument :action_name, :type => :string, :default => 'index', :banner => 'action_name' argument :filter_attributes, :type => :array, :default => [], :banner => "[attribute[:type[:required]] attribute[:type[:required]]]" def initialize(args, *options) super parse_filter_attributes! end def create_template_file template 'index.html.haml', File.join('app/views', class_path, "#{file_name}_enquiry", "#{action_name}.html.haml") end protected def parse_filter_attributes! self.filter_attributes = (filter_attributes || []).map do |attribute| # expected in the form "name", "name:type" or "name:type:required" parts = attribute.split(':') name = parts.first.underscore type = ((parts.length > 1) ? parts[1] : 'string') additional_options = case type.to_sym when :integer, :decimal, :boolean, :date, :time, :datetime ", :as => :#{type}" when :enum ", :collection => #{name.titleize}.collection" when :model ", :collection => #{name.titleize}.all" else '' end OpenStruct.new( :name => name, :type => type, :inject_options => additional_options ) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
riveter-0.0.1 | lib/generators/haml/enquiry_controller/enquiry_controller_generator.rb |