discourse-ember-rails 0.18.6
Sign up to get free protection for your applications and to get access to all the features.
- 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 -%>
|