Sha256: c3a9bd9f4325ca4725a25c44451b95c75745f954899bc213593c92cdfa313868

Contents?: true

Size: 1.81 KB

Versions: 1

Compression:

Stored size: 1.81 KB

Contents

require File.join(File.dirname(__FILE__), '..', '..', '..', '..','neo4j.rb')

class Neo4j::Generators::ModelGenerator < Neo4j::Generators::Base #:nodoc:
  argument :attributes, :type => :array, :default => [], :banner => "field:type field:type"

  check_class_collision

  class_option :timestamps, :type => :boolean
  class_option :parent,     :type => :string, :desc => "The parent class for the generated model"
  class_option :indices,    :type => :array,  :desc => "The properties which should be indexed"
  class_option :has_one,    :type => :array,  :desc => "A list of has_one relationships"
  class_option :has_n,      :type => :array,  :desc => "A list of has_n relationships"

  def create_model_file
    template "model.erb", File.join('app/models', "#{singular_name}.rb")
  end

  protected
  def migration?
    false
  end

  def timestamps?
    options[:timestamps]
  end

  def has_n?
    options[:has_n]
  end

  def has_n_statements
    txt = ""
    options[:has_n].each do |key|
      to, from = key.split(':')
      txt << (from ? "\n  has_n(:#{to}).from(:#{from})\n" : "\n  has_n :#{to}")
    end
    txt
  end

  def has_one?
    options[:has_one]
  end

  def has_one_statements
    txt = ""
    options[:has_one].each do |key|
      to, from = key.split(':')
      txt << (from ? "\n  has_one(:#{to}).from(:#{from})\n" : "\n  has_one :#{to}")
    end
    txt
  end

  def indices?
    options[:indices]
  end


  def index_fragment(property)
    if options[:indices] && options[:indices].include?(property)
      "index :#{property}"
    end
  end

  def parent?
    options[:parent]
  end

  def timestamp_statements
    %q{
  property :created_at, :type => DateTime
  # property :created_on, :type => Date

  property :updated_at, :type => DateTime
  # property :updated_on, :type => Date
}
  end

  hook_for :test_framework
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
neo4j-3.0.0.alpha.3 lib/rails/generators/neo4j/model/model_generator.rb