Class: ViewModelsGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/rails/generators/view_models/view_models_generator.rb

Overview

A generator for view models

Instance Method Summary (collapse)

Instance Method Details

- (Object) create_model(class_name, file_name)

Create the view model files for the view models given



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/rails/generators/view_models/view_models_generator.rb', line 34

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

- (Object) create_views(file_name)

Create views corresponding to view models



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/rails/generators/view_models/view_models_generator.rb', line 20

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

- (Object) generate_view_models

Generate the view models given



10
11
12
13
14
15
16
# File 'lib/rails/generators/view_models/view_models_generator.rb', line 10

def generate_view_models
  file_name = class_name.underscore
  
  create_model class_name, file_name
  
  create_views file_name if options.views.present?
end