Sha256: 6ed510713da9dce558527742739ef1e9a8e086497f4de5f1cb1f18974486e98f
Contents?: true
Size: 1.64 KB
Versions: 2
Compression:
Stored size: 1.64 KB
Contents
# A generator for view models # class ViewModelsGenerator < Rails::Generators::Base source_root File.expand_path('../templates', __FILE__) argument :class_name, :type => :string class_option :views, :type => :string, :default => 'erb', :desc => "Render view files in erb, haml or slim (use the language name as the argument)" # Generate the view models given # def generate_view_models file_name = class_name.underscore create_model class_name, file_name create_views file_name if options.views.present? end # Create views corresponding to view models # def create_views file_name %W(list_item main_item).each do |view| create_file "app/views/#{file_name.pluralize}/_#{view}.html.#{options.views.downcase}", File.read(File.join(File.expand_path('../templates', __FILE__), "/views/_empty.html.#{options.views.downcase}")) end # Copy collection views. # %W(collection list pagination table).each do |view| create_file "app/views/#{file_name.pluralize}/_#{view}.html.#{options.views.downcase}", File.read(File.join(File.expand_path('../templates', __FILE__), "/views/_#{view}.html.#{options.views.downcase}")) end end # Create the view model files for the view models given # def create_model class_name, file_name # ViewModels # create_file "app/view_models/#{file_name}.rb", <<-FILE class ViewModels::#{class_name} < ViewModels::Project # model_reader :icon, :filter_through => [:h] end FILE # Specs # create_file "spec/view_models/#{file_name}_spec.rb", <<-FILE require 'spec_helper' describe ViewModels::#{class_name} do end FILE end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
view_models-3.0.1 | lib/rails/generators/view_models/view_models_generator.rb |
view_models-3.0.0 | lib/rails/generators/view_models/view_models_generator.rb |