Sha256: e2e0b2787c719384e0a11ac5ebc2614cccd61ab9a49a128264e4e7ef6745787c

Contents?: true

Size: 1.78 KB

Versions: 5

Compression:

Stored size: 1.78 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|
      txt << has_x('has_n', key)
    end
    txt
  end

  def has_one?
    options[:has_one]
  end

  def has_x(method, key)
    to, from = key.split(':')
    (from ? "\n  #{method}(:#{to}).from(:#{from})\n" : "\n  #{method} :#{to}")
  end

  def has_one_statements
    txt = ""
    options[:has_one].each do |key|
      txt << has_x('has_one', key)
    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

5 entries across 5 versions & 1 rubygems

Version Path
neo4j-3.0.0.alpha.11 lib/rails/generators/neo4j/model/model_generator.rb
neo4j-3.0.0.alpha.10 lib/rails/generators/neo4j/model/model_generator.rb
neo4j-3.0.0.alpha.9 lib/rails/generators/neo4j/model/model_generator.rb
neo4j-3.0.0.alpha.8 lib/rails/generators/neo4j/model/model_generator.rb
neo4j-3.0.0.alpha.7 lib/rails/generators/neo4j/model/model_generator.rb