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