Sha256: 4b3f019514db63b684a2649542043121e7ffd6e9e97c84e4709d2b8a96378f77

Contents?: true

Size: 1.8 KB

Versions: 13

Compression:

Stored size: 1.8 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_many,   :type => :array,  :desc => "A list of has_many 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_many?
    options[:has_many]
  end

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

13 entries across 13 versions & 1 rubygems

Version Path
neo4j-4.0.0 lib/rails/generators/neo4j/model/model_generator.rb
neo4j-4.0.0.rc.4 lib/rails/generators/neo4j/model/model_generator.rb
neo4j-4.0.0.rc.3 lib/rails/generators/neo4j/model/model_generator.rb
neo4j-4.0.0.rc.1 lib/rails/generators/neo4j/model/model_generator.rb
neo4j-3.0.4 lib/rails/generators/neo4j/model/model_generator.rb
neo4j-3.0.3 lib/rails/generators/neo4j/model/model_generator.rb
neo4j-3.0.2 lib/rails/generators/neo4j/model/model_generator.rb
neo4j-3.0.1 lib/rails/generators/neo4j/model/model_generator.rb
neo4j-3.0.0 lib/rails/generators/neo4j/model/model_generator.rb
neo4j-3.0.0.rc.5 lib/rails/generators/neo4j/model/model_generator.rb
neo4j-3.0.0.rc.4 lib/rails/generators/neo4j/model/model_generator.rb
neo4j-3.0.0.rc.3 lib/rails/generators/neo4j/model/model_generator.rb
neo4j-3.0.0.rc.2 lib/rails/generators/neo4j/model/model_generator.rb