discourse-ember-rails 0.18.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE +19 -0
- data/README.md +341 -0
- data/lib/ember-rails.rb +1 -0
- data/lib/ember/rails/engine.rb +25 -0
- data/lib/ember/rails/version.rb +5 -0
- data/lib/ember_rails.rb +96 -0
- data/lib/generators/ember/adapter_generator.rb +21 -0
- data/lib/generators/ember/bootstrap_generator.rb +76 -0
- data/lib/generators/ember/component_generator.rb +28 -0
- data/lib/generators/ember/controller_generator.rb +34 -0
- data/lib/generators/ember/generator_helpers.rb +58 -0
- data/lib/generators/ember/initializer_generator.rb +23 -0
- data/lib/generators/ember/install_generator.rb +194 -0
- data/lib/generators/ember/instance_initializer_generator.rb +23 -0
- data/lib/generators/ember/model_generator.rb +48 -0
- data/lib/generators/ember/resource_generator.rb +29 -0
- data/lib/generators/ember/resource_override.rb +38 -0
- data/lib/generators/ember/route_generator.rb +21 -0
- data/lib/generators/ember/service_generator.rb +23 -0
- data/lib/generators/ember/template_generator.rb +23 -0
- data/lib/generators/ember/view_generator.rb +24 -0
- data/lib/generators/templates/adapter.js +5 -0
- data/lib/generators/templates/adapter.js.coffee +5 -0
- data/lib/generators/templates/adapter.js.em +3 -0
- data/lib/generators/templates/app.js +11 -0
- data/lib/generators/templates/app.js.coffee +11 -0
- data/lib/generators/templates/app.js.em +11 -0
- data/lib/generators/templates/application.hbs +3 -0
- data/lib/generators/templates/application.js +11 -0
- data/lib/generators/templates/application.js.coffee +11 -0
- data/lib/generators/templates/application.js.em +10 -0
- data/lib/generators/templates/application_adapter.js +5 -0
- data/lib/generators/templates/application_adapter.js.coffee +5 -0
- data/lib/generators/templates/application_adapter.js.em +3 -0
- data/lib/generators/templates/array_controller.js +5 -0
- data/lib/generators/templates/array_controller.js.coffee +5 -0
- data/lib/generators/templates/array_controller.js.em +3 -0
- data/lib/generators/templates/component.js +4 -0
- data/lib/generators/templates/component.js.coffee +6 -0
- data/lib/generators/templates/component.js.em +6 -0
- data/lib/generators/templates/component.template.hbs +2 -0
- data/lib/generators/templates/controller.js +5 -0
- data/lib/generators/templates/controller.js.coffee +6 -0
- data/lib/generators/templates/controller.js.em +3 -0
- data/lib/generators/templates/model.js +13 -0
- data/lib/generators/templates/model.js.coffee +12 -0
- data/lib/generators/templates/model.js.em +12 -0
- data/lib/generators/templates/object_controller.js +5 -0
- data/lib/generators/templates/object_controller.js.coffee +5 -0
- data/lib/generators/templates/object_controller.js.em +3 -0
- data/lib/generators/templates/route.js +5 -0
- data/lib/generators/templates/route.js.coffee +5 -0
- data/lib/generators/templates/route.js.em +3 -0
- data/lib/generators/templates/router.js +5 -0
- data/lib/generators/templates/router.js.coffee +5 -0
- data/lib/generators/templates/router.js.em +5 -0
- data/lib/generators/templates/template.hbs +5 -0
- data/lib/generators/templates/view.js +5 -0
- data/lib/generators/templates/view.js.coffee +4 -0
- data/lib/generators/templates/view.js.em +4 -0
- metadata +329 -0
| @@ -0,0 +1,48 @@ | |
| 1 | 
            +
            require 'generators/ember/generator_helpers'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Ember
         | 
| 4 | 
            +
              module Generators
         | 
| 5 | 
            +
                class ModelGenerator < ::Rails::Generators::NamedBase
         | 
| 6 | 
            +
                  include Ember::Generators::GeneratorHelpers
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                  source_root File.expand_path("../../templates", __FILE__)
         | 
| 9 | 
            +
                  desc "creates a new ember.js model"
         | 
| 10 | 
            +
                  argument :attributes, :type => :array, :default => [], :banner => "field[:type] field[:type] ..."
         | 
| 11 | 
            +
                  class_option :javascript_engine, :desc => "engine for javascripts"
         | 
| 12 | 
            +
                  class_option :ember_path, :type => :string, :aliases => "-d", :desc => "custom ember app path"
         | 
| 13 | 
            +
                  class_option :app_name, :type => :string, :aliases => "-n", :desc => "Custom ember app name"
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                  def create_model_files
         | 
| 16 | 
            +
                    file_path = File.join(ember_path, 'models', class_path, "#{file_name}.#{engine_extension}")
         | 
| 17 | 
            +
                    template "model.#{engine_extension}", file_path
         | 
| 18 | 
            +
                  end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                private
         | 
| 21 | 
            +
                  EMBER_TYPE_LOOKUP = {
         | 
| 22 | 
            +
                    nil  => 'string',
         | 
| 23 | 
            +
                    :binary => 'string',
         | 
| 24 | 
            +
                    :string => 'string',
         | 
| 25 | 
            +
                    :text => 'string',
         | 
| 26 | 
            +
                    :boolean => 'boolean',
         | 
| 27 | 
            +
                    :date => 'date',
         | 
| 28 | 
            +
                    :datetime =>'date',
         | 
| 29 | 
            +
                    :time => 'date',
         | 
| 30 | 
            +
                    :timestamp => 'date',
         | 
| 31 | 
            +
                    :decimal => 'number',
         | 
| 32 | 
            +
                    :float => 'number',
         | 
| 33 | 
            +
                    :integer => 'number',
         | 
| 34 | 
            +
                    :primary_key => 'number'
         | 
| 35 | 
            +
                  }
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                  def parse_attributes!
         | 
| 38 | 
            +
                    self.attributes = (attributes || []).map do |attr|
         | 
| 39 | 
            +
                      name, type = attr.split(':')
         | 
| 40 | 
            +
                      key = type.try(:to_sym)
         | 
| 41 | 
            +
                      ember_type = EMBER_TYPE_LOOKUP[key] || type
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                      { :name => name, :type => ember_type }
         | 
| 44 | 
            +
                    end
         | 
| 45 | 
            +
                  end
         | 
| 46 | 
            +
                end
         | 
| 47 | 
            +
              end
         | 
| 48 | 
            +
            end
         | 
| @@ -0,0 +1,29 @@ | |
| 1 | 
            +
            require 'generators/ember/generator_helpers'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Ember
         | 
| 4 | 
            +
              module Generators
         | 
| 5 | 
            +
                class ResourceGenerator < ::Rails::Generators::NamedBase
         | 
| 6 | 
            +
                  include Ember::Generators::GeneratorHelpers
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                  source_root File.expand_path("../../templates", __FILE__)
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  desc "Creates a new Ember.js router, controller, view and template"
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                  class_option :javascript_engine, :desc => "Engine for JavaScripts"
         | 
| 13 | 
            +
                  class_option :skip_route, :type => :boolean, :default => false, :desc => "Don't create route"
         | 
| 14 | 
            +
                  class_option :array, :type => :boolean, :default => false, :desc => "Create an Ember.ArrayController to represent multiple objects"
         | 
| 15 | 
            +
                  class_option :object, :type => :boolean, :default => false, :desc => "Create an Ember.Controller to represent a single object"
         | 
| 16 | 
            +
                  class_option :app_name, :type => :string, :aliases => "-n", :desc => "Custom ember app name"
         | 
| 17 | 
            +
             | 
| 18 | 
            +
             | 
| 19 | 
            +
                  def create_resource_files
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                    invoke('ember:route', [ name ], options) unless options[:skip_route]
         | 
| 22 | 
            +
                    invoke('ember:controller', [ name ], options)
         | 
| 23 | 
            +
                    invoke('ember:view', [ name ], options)
         | 
| 24 | 
            +
                    invoke('ember:template', [ name ], options) 
         | 
| 25 | 
            +
                  end
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                end
         | 
| 28 | 
            +
              end
         | 
| 29 | 
            +
            end
         | 
| @@ -0,0 +1,38 @@ | |
| 1 | 
            +
            require "rails/generators"
         | 
| 2 | 
            +
            require "rails/generators/rails/resource/resource_generator"
         | 
| 3 | 
            +
            require "generators/ember/controller_generator"
         | 
| 4 | 
            +
            require "generators/ember/view_generator"
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            module Rails
         | 
| 7 | 
            +
              module Generators
         | 
| 8 | 
            +
                ResourceGenerator.class_eval do
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  class_option :javascript_engine, :desc => "Engine for JavaScripts"
         | 
| 11 | 
            +
                  class_option :ember_path, :type => :string, :aliases => "-d", :desc => "Custom ember app path"
         | 
| 12 | 
            +
                  class_option :with_template, :type => :boolean, :default => false, :desc => "Create template for this view"
         | 
| 13 | 
            +
                  class_option :app_name, :type => :string, :aliases => "-n", :desc => "Custom ember app name"
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                  def add_ember
         | 
| 16 | 
            +
                    say_status :invoke, "ember:model", :white
         | 
| 17 | 
            +
                    with_padding do
         | 
| 18 | 
            +
                      invoke "ember:model"
         | 
| 19 | 
            +
                    end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                    say_status :invoke, "ember controller and view (singular)", :white
         | 
| 22 | 
            +
                    with_padding do
         | 
| 23 | 
            +
                      invoke "ember:view", [singular_name], options.merge(:object => true)
         | 
| 24 | 
            +
                    end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                    @_invocations[Ember::Generators::ControllerGenerator].delete "create_controller_files"
         | 
| 27 | 
            +
                    @_invocations[Ember::Generators::ViewGenerator].delete "create_view_files"
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                    say_status :invoke, "ember controller and view (plural)", :white
         | 
| 30 | 
            +
                    with_padding do
         | 
| 31 | 
            +
                      invoke "ember:view", [plural_name], options.merge(:array => true)
         | 
| 32 | 
            +
                    end
         | 
| 33 | 
            +
                  end
         | 
| 34 | 
            +
                end
         | 
| 35 | 
            +
              end
         | 
| 36 | 
            +
            end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
             | 
| @@ -0,0 +1,21 @@ | |
| 1 | 
            +
            require 'generators/ember/generator_helpers'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Ember
         | 
| 4 | 
            +
              module Generators
         | 
| 5 | 
            +
                class RouteGenerator < ::Rails::Generators::NamedBase
         | 
| 6 | 
            +
                  include Ember::Generators::GeneratorHelpers
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                  source_root File.expand_path("../../templates", __FILE__)
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  desc "Creates a new Ember.js route"
         | 
| 11 | 
            +
                  class_option :ember_path, :type => :string, :aliases => "-d", :desc => "Custom ember app path"
         | 
| 12 | 
            +
                  class_option :javascript_engine, :desc => "Engine for JavaScripts"
         | 
| 13 | 
            +
                  class_option :app_name, :type => :string, :aliases => "-n", :desc => "Custom ember app name"
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                  def create_route_files
         | 
| 16 | 
            +
                    file_path = File.join(ember_path, 'routes', class_path, "#{file_name}_route.#{engine_extension}")
         | 
| 17 | 
            +
                    template "route.#{engine_extension}", file_path
         | 
| 18 | 
            +
                  end
         | 
| 19 | 
            +
                end
         | 
| 20 | 
            +
              end
         | 
| 21 | 
            +
            end
         | 
| @@ -0,0 +1,23 @@ | |
| 1 | 
            +
            require 'generators/ember/generator_helpers'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Ember
         | 
| 4 | 
            +
              module Generators
         | 
| 5 | 
            +
                class ServiceGenerator < ::Rails::Generators::NamedBase
         | 
| 6 | 
            +
                  include Ember::Generators::GeneratorHelpers
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                  source_root File.expand_path("../../templates", __FILE__)
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  desc "Creates a new Ember.js service"
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                  class_option :javascript_engine, :desc => "Engine for JavaScripts"
         | 
| 13 | 
            +
                  class_option :ember_path, :type => :string, :aliases => "-d", :desc => "Custom ember app path"
         | 
| 14 | 
            +
                  class_option :app_name, :type => :string, :aliases => "-n", :desc => "Custom ember app name"
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                  def create_service_files
         | 
| 17 | 
            +
                    file_path = File.join(ember_path, 'services', class_path, "#{file_name.dasherize}.#{engine_extension}")
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                    template "service.#{engine_extension}", file_path
         | 
| 20 | 
            +
                  end
         | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
              end
         | 
| 23 | 
            +
            end
         | 
| @@ -0,0 +1,23 @@ | |
| 1 | 
            +
            require 'generators/ember/generator_helpers'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Ember
         | 
| 4 | 
            +
              module Generators
         | 
| 5 | 
            +
                class TemplateGenerator < ::Rails::Generators::NamedBase
         | 
| 6 | 
            +
                  include Ember::Generators::GeneratorHelpers
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                  source_root File.expand_path("../../templates", __FILE__)
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  desc "Creates a new Ember.js template"
         | 
| 11 | 
            +
                  class_option :javascript_engine, :desc => "Engine for JavaScripts"
         | 
| 12 | 
            +
                  class_option :ember_path, :type => :string, :aliases => "-d", :desc => "Custom ember app path"
         | 
| 13 | 
            +
             | 
| 14 | 
            +
             | 
| 15 | 
            +
             | 
| 16 | 
            +
                  def create_template_files
         | 
| 17 | 
            +
                    file_path = File.join(ember_path, 'templates', class_path, "#{file_name}.hbs")
         | 
| 18 | 
            +
                    template 'template.hbs', file_path
         | 
| 19 | 
            +
                  end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
              end
         | 
| 23 | 
            +
            end
         | 
| @@ -0,0 +1,24 @@ | |
| 1 | 
            +
            require 'generators/ember/generator_helpers'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Ember
         | 
| 4 | 
            +
              module Generators
         | 
| 5 | 
            +
                class ViewGenerator < ::Rails::Generators::NamedBase
         | 
| 6 | 
            +
                  include Ember::Generators::GeneratorHelpers
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                  source_root File.expand_path("../../templates", __FILE__)
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  desc "Creates a new Ember.js view and associated Handlebars template"
         | 
| 11 | 
            +
                  class_option :javascript_engine, :desc => "Engine for JavaScripts"
         | 
| 12 | 
            +
                  class_option :ember_path, :type => :string, :aliases => "-d", :desc => "Custom ember app path"
         | 
| 13 | 
            +
                  class_option :with_template, :type => :boolean, :default => false, :desc => "Create template for this view"
         | 
| 14 | 
            +
                  class_option :app_name, :type => :string, :aliases => "-n", :desc => "Custom ember app name"
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                  def create_view_files
         | 
| 17 | 
            +
                    file_path = File.join(ember_path, 'views', class_path, "#{file_name}_view.#{engine_extension}")
         | 
| 18 | 
            +
                    template "view.#{engine_extension}", file_path
         | 
| 19 | 
            +
                    invoke('ember:template', [ name ], options) if options[:with_template]
         | 
| 20 | 
            +
                  end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                end
         | 
| 23 | 
            +
              end
         | 
| 24 | 
            +
            end
         | 
| @@ -0,0 +1,11 @@ | |
| 1 | 
            +
            //= require_tree ./adapters
         | 
| 2 | 
            +
            //= require_tree ./mixins
         | 
| 3 | 
            +
            //= require_tree ./models
         | 
| 4 | 
            +
            //= require_tree ./controllers
         | 
| 5 | 
            +
            //= require_tree ./views
         | 
| 6 | 
            +
            //= require_tree ./helpers
         | 
| 7 | 
            +
            //= require_tree ./components
         | 
| 8 | 
            +
            //= require_tree ./templates
         | 
| 9 | 
            +
            //= require_tree ./routes
         | 
| 10 | 
            +
            //= require ./router
         | 
| 11 | 
            +
            //= require_self
         | 
| @@ -0,0 +1,11 @@ | |
| 1 | 
            +
            #= require_tree ./adapters
         | 
| 2 | 
            +
            #= require_tree ./mixins
         | 
| 3 | 
            +
            #= require_tree ./models
         | 
| 4 | 
            +
            #= require_tree ./controllers
         | 
| 5 | 
            +
            #= require_tree ./views
         | 
| 6 | 
            +
            #= require_tree ./helpers
         | 
| 7 | 
            +
            #= require_tree ./components
         | 
| 8 | 
            +
            #= require_tree ./templates
         | 
| 9 | 
            +
            #= require_tree ./routes
         | 
| 10 | 
            +
            #= require ./router
         | 
| 11 | 
            +
            #= require_self
         | 
| @@ -0,0 +1,11 @@ | |
| 1 | 
            +
            #= require_tree ./adapters
         | 
| 2 | 
            +
            #= require_tree ./mixins
         | 
| 3 | 
            +
            #= require_tree ./models
         | 
| 4 | 
            +
            #= require_tree ./controllers
         | 
| 5 | 
            +
            #= require_tree ./views
         | 
| 6 | 
            +
            #= require_tree ./helpers
         | 
| 7 | 
            +
            #= require_tree ./components
         | 
| 8 | 
            +
            #= require_tree ./templates
         | 
| 9 | 
            +
            #= require_tree ./routes
         | 
| 10 | 
            +
            #= require ./router
         | 
| 11 | 
            +
            #= require_self
         | 
| @@ -0,0 +1,11 @@ | |
| 1 | 
            +
            //= require jquery
         | 
| 2 | 
            +
            //= require jquery_ujs
         | 
| 3 | 
            +
            <%= "//= require handlebars\n" if ::Rails.configuration.handlebars.ember_template == 'Handlebars' -%>
         | 
| 4 | 
            +
            //= require ember
         | 
| 5 | 
            +
            //= require ember-data
         | 
| 6 | 
            +
            //= require_self
         | 
| 7 | 
            +
            //= require ./<%= application_name.underscore %>
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            // for more details see: http://emberjs.com/guides/application/
         | 
| 10 | 
            +
            <%= application_name.camelize %> = Ember.Application.create();
         | 
| 11 | 
            +
             | 
| @@ -0,0 +1,11 @@ | |
| 1 | 
            +
            #= require jquery
         | 
| 2 | 
            +
            #= require jquery_ujs
         | 
| 3 | 
            +
            <%= "#= require handlebars\n" if ::Rails.configuration.handlebars.ember_template == 'Handlebars' -%>
         | 
| 4 | 
            +
            #= require ember
         | 
| 5 | 
            +
            #= require ember-data
         | 
| 6 | 
            +
            #= require_self
         | 
| 7 | 
            +
            #= require <%= application_name.underscore %>
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            # for more details see: http://emberjs.com/guides/application/
         | 
| 10 | 
            +
            window.<%= application_name.camelize %> = Ember.Application.create()
         | 
| 11 | 
            +
             | 
| @@ -0,0 +1,10 @@ | |
| 1 | 
            +
            #= require jquery
         | 
| 2 | 
            +
            #= require jquery_ujs
         | 
| 3 | 
            +
            <%= "#= require handlebars\n" if ::Rails.configuration.handlebars.ember_template == 'Handlebars' -%>
         | 
| 4 | 
            +
            #= require ember
         | 
| 5 | 
            +
            #= require ember-data
         | 
| 6 | 
            +
            #= require_self
         | 
| 7 | 
            +
            #= require <%= application_name.underscore %>
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            # for more details see: http://emberjs.com/guides/application/
         | 
| 10 | 
            +
            window.<%= application_name.camelize %> = Ember.Application.create()
         | 
| @@ -0,0 +1,13 @@ | |
| 1 | 
            +
            // for more details see: http://emberjs.com/guides/models/defining-models/
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            <%= application_name.camelize %>.<%= class_name %> = DS.Model.extend({
         | 
| 4 | 
            +
            <% attributes.each_with_index do |attribute, idx| -%>
         | 
| 5 | 
            +
              <%= attribute[:name].camelize(:lower) %>: <%=
         | 
| 6 | 
            +
              if %w(references belongs_to).member?(attribute[:type])
         | 
| 7 | 
            +
                "DS.belongsTo('%s')" % attribute[:name].camelize(:lower)
         | 
| 8 | 
            +
              else
         | 
| 9 | 
            +
                "DS.attr('%s')" % attribute[:type]
         | 
| 10 | 
            +
              end
         | 
| 11 | 
            +
              %><% if (idx < attributes.length-1) %>,<% end %>
         | 
| 12 | 
            +
            <% end -%>
         | 
| 13 | 
            +
            });
         | 
| @@ -0,0 +1,12 @@ | |
| 1 | 
            +
            # for more details see: http://emberjs.com/guides/models/defining-models/
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            <%= application_name.camelize %>.<%= class_name %> = DS.Model.extend<%= "()" if attributes.length == 0 %>
         | 
| 4 | 
            +
            <% attributes.each do |attribute| -%>
         | 
| 5 | 
            +
              <%= attribute[:name].camelize(:lower) %>: <%=
         | 
| 6 | 
            +
              if %w(references belongs_to).member?(attribute[:type])
         | 
| 7 | 
            +
                "DS.belongsTo '%s'" % attribute[:name].camelize(:lower)
         | 
| 8 | 
            +
              else
         | 
| 9 | 
            +
                "DS.attr '%s'" % attribute[:type]
         | 
| 10 | 
            +
              end
         | 
| 11 | 
            +
              %>
         | 
| 12 | 
            +
            <% end -%>
         | 
| @@ -0,0 +1,12 @@ | |
| 1 | 
            +
            # for more details see: http://emberjs.com/guides/models/defining-models/
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            class <%= application_name.camelize %>.<%= class_name %> extends DS.Model
         | 
| 4 | 
            +
            <% attributes.each do |attribute| -%>
         | 
| 5 | 
            +
              <%= attribute[:name].camelize(:lower) %>: <%=
         | 
| 6 | 
            +
              if %w(references belongs_to).member?(attribute[:type])
         | 
| 7 | 
            +
                "DS.belongsTo '%s'" % attribute[:name].camelize(:lower)
         | 
| 8 | 
            +
              else
         | 
| 9 | 
            +
                "DS.attr '%s'" % attribute[:type]
         | 
| 10 | 
            +
              end
         | 
| 11 | 
            +
              %>
         | 
| 12 | 
            +
            <% end -%>
         |