Sha256: 226c39905f14a6b70e11f88c030d6cb1c5cd147165d23baf1471348ca7353b3e

Contents?: true

Size: 1.09 KB

Versions: 4

Compression:

Stored size: 1.09 KB

Contents

require File.dirname(__FILE__) + '/../../lib/view_mapper'

class ViewForGenerator < ScaffoldGenerator

  include ViewMapper

  attr_reader   :model
  attr_accessor :valid

  def initialize(runtime_args, runtime_options = {})
    super
    @source_root = self.class.lookup('scaffold').path + "/templates"
    @model = ModelInfo.new(@name)
    validate
  end

  def record
    EditableManifest.new(self) { |m| yield m }
  end

  def manifest
    super.edit do |action|
      action unless is_model_action(action) || !valid
    end
  end

  def is_model_action(action)
    is_create_model_dir_action(action) || is_model_dependency_action(action)
  end

  def is_create_model_dir_action(action)
    action[0] == :directory && action[1].include?('app/models/')
  end

  def is_model_dependency_action(action)
    action[0] == :dependency && action[1].include?('model')
  end

  def attributes
    @attributes ||= model.attributes
  end

  def validate
    logger.error(model.error) if !model.valid?
    @valid = model.valid?
  end

  def banner
    "script/generate view_for model [ --view view:view_parameter ]"
  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
view_mapper-0.3.4 generators/view_for/view_for_generator.rb
view_mapper-0.3.3 generators/view_for/view_for_generator.rb
view_mapper-0.3.2 generators/view_for/view_for_generator.rb
view_mapper-0.3.1 generators/view_for/view_for_generator.rb