Sha256: b10bb9037b50fe206265ee2a64e3135266c8ed94da9a103b1ec564eb6c0f977f

Contents?: true

Size: 1.59 KB

Versions: 22

Compression:

Stored size: 1.59 KB

Contents

require 'generators/ember/generator_helpers'

module Ember
  module Generators
    class ModelGenerator < ::Rails::Generators::NamedBase
      include Ember::Generators::GeneratorHelpers

      source_root File.expand_path("../../templates", __FILE__)
      desc "creates a new ember.js model"
      argument :attributes, :type => :array, :default => [], :banner => "field[:type] field[:type] ..."
      class_option :javascript_engine, :desc => "engine for javascripts"
      class_option :ember_path, :type => :string, :aliases => "-d", :default => false, :desc => "custom ember app path"
      class_option :app_name, :type => :string, :aliases => "-n", :default => false, :desc => "Custom ember app name"

      def create_model_files
        file_path = File.join(ember_path, 'models', class_path, "#{file_name}.#{engine_extension}")
        template "model.#{engine_extension}", file_path
      end

    private
      EMBER_TYPE_LOOKUP = {
        nil  => 'string',
        :binary => 'string',
        :string => 'string',
        :text => 'string',
        :boolean => 'boolean',
        :date => 'date',
        :datetime =>'date',
        :time => 'date',
        :timestamp => 'date',
        :decimal => 'number',
        :float => 'number',
        :integer => 'number',
        :primary_key => 'number'
      }

      def parse_attributes!
        self.attributes = (attributes || []).map do |attr|
          name, type = attr.split(':')
          key = type.try(:to_sym)
          ember_type = EMBER_TYPE_LOOKUP[key] || type

          { :name => name, :type => ember_type }
        end
      end
    end
  end
end

Version data entries

22 entries across 22 versions & 2 rubygems

Version Path
ember-rails-0.19.3 lib/generators/ember/model_generator.rb
ember-rails-0.18.5 lib/generators/ember/model_generator.rb
ember-rails-0.19.2 lib/generators/ember/model_generator.rb
ember-rails-0.18.4 lib/generators/ember/model_generator.rb
ember-rails-0.19.1 lib/generators/ember/model_generator.rb
ember-rails-0.19.0 lib/generators/ember/model_generator.rb
ember-rails-0.18.3 lib/generators/ember/model_generator.rb
ember-rails-0.18.2 lib/generators/ember/model_generator.rb
ember-rails-0.18.1 lib/generators/ember/model_generator.rb
ember-rails-lite-0.18.0 lib/generators/ember/model_generator.rb
ember-rails-0.18.0 lib/generators/ember/model_generator.rb
ember-rails-0.17.0 lib/generators/ember/model_generator.rb
ember-rails-0.16.4 lib/generators/ember/model_generator.rb
ember-rails-0.16.3 lib/generators/ember/model_generator.rb
ember-rails-0.16.2 lib/generators/ember/model_generator.rb
ember-rails-0.16.1 lib/generators/ember/model_generator.rb
ember-rails-0.16.0 lib/generators/ember/model_generator.rb
ember-rails-0.15.1 lib/generators/ember/model_generator.rb
ember-rails-0.15.0 lib/generators/ember/model_generator.rb
ember-rails-0.14.1 lib/generators/ember/model_generator.rb