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