class Marionette::ViewGenerator

Public Instance Methods

generate_view() click to toggle source
# File lib/generators/marionette/view/view_generator.rb, line 75
def generate_view
  case type
  when 'layout', 'Layout'
    unless @partial
      if File.exist?("#{backbone_path}/app/views/layouts/layouts.js.coffee")
        append_file "#{backbone_path}/app/views/layouts/layouts.js.coffee", @layout.gsub(@begin_layout, '')
      else
        create_file "#{backbone_path}/app/views/layouts/layouts.js.coffee", @layout
      end
    end
    template 'app/templates/layouts/application.jst.eco',
             "#{backbone_path}/app/templates/layouts/#{ @titletemplate.underscore }.jst.eco" unless @withouttempl
  when 'item_view', 'ItemView', 'partial'
    unless @partial
      template 'app/views/item_view.js.coffee',
               "#{backbone_path}/app/views/#{ @module.underscore }/#{ @title.underscore }.js.coffee"
    end
    template 'app/templates/item_view.jst.eco',
             "#{backbone_path}/app/templates/#{ @module.underscore }/#{ @titletemplate.underscore }.jst.eco" unless @withouttempl
  when 'collection_view', 'CollectionView'
    unless @partial
      template 'app/views/collection_view.js.coffee',
               "#{backbone_path}/app/views/#{ @module.underscore }/#{ @title.underscore }.js.coffee"
    end
    template 'app/templates/collection_view.jst.eco',
             "#{backbone_path}/app/templates/#{ @module.underscore }/#{ @titletemplate.underscore }.jst.eco" unless @withouttempl
  when 'composite_view', 'CompositeView'
    unless @partial
      template 'app/views/composite_view.js.coffee',
               "#{backbone_path}/app/views/#{ @module.underscore }/#{ @title.underscore }.js.coffee"
    end
    template 'app/templates/composite_view.jst.eco',
             "#{backbone_path}/app/templates/#{ @module.underscore }/#{ @titletemplate.underscore }.jst.eco" unless @withouttempl
  else
    puts "Type [#{type}] didn't supported. Feel free to submit issue https://github.com/itbeaver/marionette_rails_generators/issues"
  end
end
layout() click to toggle source
# File lib/generators/marionette/view/view_generator.rb, line 64
  def layout
    @begin_layout = "@Backbone.app.module \"Views.Layouts\", (Layouts, App, Backbone, Marionette, $, _) ->\n"
    @layout = %(
  class Layouts.#{@title.camelcase}Layout extends App.Views.Layout
    template: 'layouts/#{@titletemplate.underscore}'
    regions:
      bodyRegion: "#body"
)
    @layout = @begin_layout + @layout
  end
vars() click to toggle source
# File lib/generators/marionette/view/view_generator.rb, line 46
def vars
  @module = 'All'
  if @title =~ /\//
    parse = @title.match /(.*)\/(.*)/
    @title = parse[2]
    @module = parse[1]
  end
  @withouttempl = options['without-template']
  @partial = false
  @partial = true if type == 'partial'
  @titletemplate = @title
  @titletemplate = '_' + @titletemplate if @partial
  @attributes = []
  @schema.each do |a|
    @attributes << Marionette::Attribute.new(a[0], a[1])
  end
end