emberjs-rails 0.1.0
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 +21 -0
- data/README.md +43 -0
- data/app/assets/javascripts/ember-rails/application.module.es6 +20 -0
- data/app/assets/javascripts/ember-rails/module_prefix.module.es6.erb +1 -0
- data/app/assets/javascripts/ember-rails/shims.js +11 -0
- data/lib/ember/rails/engine.rb +32 -0
- data/lib/ember/rails/version.rb +7 -0
- data/lib/ember_rails.rb +137 -0
- data/lib/emberjs-rails.rb +3 -0
- data/lib/generators/ember/adapter_generator.rb +23 -0
- data/lib/generators/ember/bootstrap_generator.rb +95 -0
- data/lib/generators/ember/component_generator.rb +28 -0
- data/lib/generators/ember/controller_generator.rb +35 -0
- data/lib/generators/ember/generator_helpers.rb +76 -0
- data/lib/generators/ember/initializer_generator.rb +25 -0
- data/lib/generators/ember/install_generator.rb +186 -0
- data/lib/generators/ember/instance_initializer_generator.rb +26 -0
- data/lib/generators/ember/model_generator.rb +51 -0
- data/lib/generators/ember/resource_generator.rb +30 -0
- data/lib/generators/ember/resource_override.rb +37 -0
- data/lib/generators/ember/route_generator.rb +23 -0
- data/lib/generators/ember/service_generator.rb +25 -0
- data/lib/generators/ember/template_generator.rb +22 -0
- data/lib/generators/ember/view_generator.rb +25 -0
- data/lib/generators/templates/adapter.coffee +5 -0
- data/lib/generators/templates/adapter.em +3 -0
- data/lib/generators/templates/adapter.js +5 -0
- data/lib/generators/templates/app.coffee +11 -0
- data/lib/generators/templates/app.em +11 -0
- data/lib/generators/templates/app.js +11 -0
- data/lib/generators/templates/app.module.es6 +17 -0
- data/lib/generators/templates/application.coffee +12 -0
- data/lib/generators/templates/application.em +12 -0
- data/lib/generators/templates/application.es6 +15 -0
- data/lib/generators/templates/application.hbs +3 -0
- data/lib/generators/templates/application.js +22 -0
- data/lib/generators/templates/application_adapter.coffee +4 -0
- data/lib/generators/templates/application_adapter.em +3 -0
- data/lib/generators/templates/application_adapter.js +4 -0
- data/lib/generators/templates/application_adapter.module.es6 +4 -0
- data/lib/generators/templates/array_controller.coffee +5 -0
- data/lib/generators/templates/array_controller.em +3 -0
- data/lib/generators/templates/array_controller.js +5 -0
- data/lib/generators/templates/array_controller.module.es6 +7 -0
- data/lib/generators/templates/component.coffee +5 -0
- data/lib/generators/templates/component.em +5 -0
- data/lib/generators/templates/component.js +4 -0
- data/lib/generators/templates/component.module.es6 +7 -0
- data/lib/generators/templates/component.template.hbs +1 -0
- data/lib/generators/templates/controller.coffee +5 -0
- data/lib/generators/templates/controller.em +3 -0
- data/lib/generators/templates/controller.js +5 -0
- data/lib/generators/templates/controller.module.es6 +7 -0
- data/lib/generators/templates/environment.coffee +7 -0
- data/lib/generators/templates/environment.em +7 -0
- data/lib/generators/templates/environment.js +7 -0
- data/lib/generators/templates/environment.module.es6 +9 -0
- data/lib/generators/templates/initializer.coffee +6 -0
- data/lib/generators/templates/initializer.em +5 -0
- data/lib/generators/templates/initializer.js +7 -0
- data/lib/generators/templates/initializer.module.es6 +7 -0
- data/lib/generators/templates/instance-initializer.coffee +6 -0
- data/lib/generators/templates/instance-initializer.em +6 -0
- data/lib/generators/templates/instance-initializer.js +7 -0
- data/lib/generators/templates/instance-initializer.module.es6 +7 -0
- data/lib/generators/templates/model.coffee +12 -0
- data/lib/generators/templates/model.em +12 -0
- data/lib/generators/templates/model.js +13 -0
- data/lib/generators/templates/model.module.es6 +15 -0
- data/lib/generators/templates/object_controller.coffee +5 -0
- data/lib/generators/templates/object_controller.em +3 -0
- data/lib/generators/templates/object_controller.js +5 -0
- data/lib/generators/templates/object_controller.module.es6 +7 -0
- data/lib/generators/templates/route.coffee +5 -0
- data/lib/generators/templates/route.em +3 -0
- data/lib/generators/templates/route.js +5 -0
- data/lib/generators/templates/route.module.es6 +7 -0
- data/lib/generators/templates/router.coffee +4 -0
- data/lib/generators/templates/router.em +4 -0
- data/lib/generators/templates/router.js +5 -0
- data/lib/generators/templates/router.module.es6 +13 -0
- data/lib/generators/templates/service.coffee +3 -0
- data/lib/generators/templates/service.em +1 -0
- data/lib/generators/templates/service.js +3 -0
- data/lib/generators/templates/service.module.es6 +5 -0
- data/lib/generators/templates/template.hbs +5 -0
- data/lib/generators/templates/view.coffee +4 -0
- data/lib/generators/templates/view.em +4 -0
- data/lib/generators/templates/view.js +5 -0
- data/lib/generators/templates/view.module.es6 +7 -0
- metadata +413 -0
@@ -0,0 +1,186 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'generators/ember/generator_helpers'
|
4
|
+
require 'net/http'
|
5
|
+
require 'uri'
|
6
|
+
require 'fileutils'
|
7
|
+
|
8
|
+
module Ember
|
9
|
+
module Generators
|
10
|
+
class InstallGenerator < ::Rails::Generators::Base
|
11
|
+
class InvalidChannel < ::Thor::Error; end
|
12
|
+
class ConflictingOptions < ::Thor::Error; end
|
13
|
+
class InsufficientOptions < ::Thor::Error; end
|
14
|
+
|
15
|
+
::InvalidChannel = InvalidChannel
|
16
|
+
::ConflictingOptions = ConflictingOptions
|
17
|
+
::InsufficientOptions = InsufficientOptions
|
18
|
+
|
19
|
+
desc 'Install Ember.js into your vendor folder'
|
20
|
+
class_option :head,
|
21
|
+
type: :boolean,
|
22
|
+
default: false,
|
23
|
+
desc: 'Download Ember.js & Ember data from canary channel. This is deprecated. Use channel instead.'
|
24
|
+
class_option :channel,
|
25
|
+
type: :string,
|
26
|
+
required: false,
|
27
|
+
desc: "Ember release channel Choose between 'release', 'beta' or 'canary'"
|
28
|
+
class_option :ember_only,
|
29
|
+
type: :boolean,
|
30
|
+
required: false,
|
31
|
+
desc: 'Only download Ember.',
|
32
|
+
aliases: '--ember'
|
33
|
+
class_option :ember_data_only,
|
34
|
+
type: :boolean,
|
35
|
+
required: false,
|
36
|
+
desc: 'Only download ember-data',
|
37
|
+
aliases: '--ember-data'
|
38
|
+
class_option :tag,
|
39
|
+
type: :string,
|
40
|
+
required: false,
|
41
|
+
desc: 'Download tagged release use syntax v1.0.0-beta.3/ember-data & v1.0.0-rc.8/ember'
|
42
|
+
|
43
|
+
def initialize(args = [], options = {}, config = {})
|
44
|
+
super(args, options, config)
|
45
|
+
check_options
|
46
|
+
process_options
|
47
|
+
end
|
48
|
+
|
49
|
+
def ember
|
50
|
+
unless options.ember_data_only?
|
51
|
+
get_ember_js_for(:development)
|
52
|
+
get_ember_js_for(:production)
|
53
|
+
end
|
54
|
+
rescue Thor::Error
|
55
|
+
say('WARNING: no ember files on this channel or tag', :yellow)
|
56
|
+
end
|
57
|
+
|
58
|
+
def ember_data
|
59
|
+
unless options.ember_only?
|
60
|
+
get_ember_data_for(:development)
|
61
|
+
get_ember_data_for(:production)
|
62
|
+
end
|
63
|
+
rescue Thor::Error
|
64
|
+
say('WARNING: no ember-data files on this channel or tag', :yellow)
|
65
|
+
end
|
66
|
+
|
67
|
+
private
|
68
|
+
|
69
|
+
def get_ember_data_for(environment)
|
70
|
+
create_file "vendor/assets/ember/#{environment}/ember-data.js" do
|
71
|
+
fetch url_for(channel, 'ember-data', environment), "vendor/assets/ember/#{environment}/ember-data.js"
|
72
|
+
end
|
73
|
+
|
74
|
+
sourcemap_url = "#{base_url}/#{channel}/ember-data.js.map"
|
75
|
+
if resource_exist?(sourcemap_url)
|
76
|
+
create_file "vendor/assets/ember/#{environment}/ember-data.js.map" do
|
77
|
+
fetch sourcemap_url, "vendor/assets/ember/#{environment}/ember-data.js.map", false
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
def get_ember_js_for(environment)
|
83
|
+
create_file "vendor/assets/ember/#{environment}/ember.js" do
|
84
|
+
fetch url_for(channel, 'ember', environment), "vendor/assets/ember/#{environment}/ember.js"
|
85
|
+
end
|
86
|
+
|
87
|
+
compiler_url = "#{base_url}/#{channel}/ember-template-compiler.js"
|
88
|
+
if resource_exist?(compiler_url)
|
89
|
+
create_file "vendor/assets/ember/#{environment}/ember-template-compiler.js" do
|
90
|
+
fetch "#{base_url}/#{channel}/ember-template-compiler.js",
|
91
|
+
"vendor/assets/ember/#{environment}/ember-template-compiler.js"
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def url_for(channel, component, environment)
|
97
|
+
base = "#{base_url}/#{channel}/#{component}"
|
98
|
+
|
99
|
+
case environment
|
100
|
+
when :production
|
101
|
+
"#{base}.prod.js"
|
102
|
+
when :development
|
103
|
+
if resource_exist?("#{base}.debug.js")
|
104
|
+
"#{base}.debug.js" # Ember.js 1.10.0.beta.1 or later
|
105
|
+
else
|
106
|
+
"#{base}.js"
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
def check_options
|
112
|
+
say('WARNING: --head option is deprecated in favor of --channel=canary', :yellow) if options.head?
|
113
|
+
if options.head? && options.channel?
|
114
|
+
say 'ERROR: conflicting options. --head and --channel. Use either --head or --channel=<channel>', :red
|
115
|
+
raise ConflictingOptions
|
116
|
+
end
|
117
|
+
if options.channel? && !%w[release beta canary].include?(options[:channel])
|
118
|
+
say 'ERROR: channel can either be release, beta or canary', :red
|
119
|
+
raise InvalidChannel
|
120
|
+
end
|
121
|
+
if options.channel? && options.tag?
|
122
|
+
say 'ERROR: conflicting options. --tag and --channel. --tag is incompatible with other options', :red
|
123
|
+
raise ConflictingOptions
|
124
|
+
end
|
125
|
+
if options.head? && options.tag?
|
126
|
+
say 'ERROR: conflicting options. --tag and --head. --tag is incompatible with other options', :red
|
127
|
+
raise ConflictingOptions
|
128
|
+
end
|
129
|
+
if options.tag? && !(options.ember_only? || options.ember_data_only?)
|
130
|
+
say 'ERROR: insufficient options. --tag needs to be combined with eithe --ember or --ember-data', :red
|
131
|
+
raise InsufficientOptions
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
def process_options
|
136
|
+
@channel = :canary if options.head?
|
137
|
+
@channel = "tags/#{options.tag}" if options.tag?
|
138
|
+
end
|
139
|
+
|
140
|
+
def base_url
|
141
|
+
'http://builds.emberjs.com'
|
142
|
+
end
|
143
|
+
|
144
|
+
def channel
|
145
|
+
@channel ||= if options.channel
|
146
|
+
options[:channel]
|
147
|
+
else
|
148
|
+
:release
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
def fetch(from, to, prepend_verbose = true)
|
153
|
+
message = "#{from} -> #{to}"
|
154
|
+
say_status('downloading:', message, :green)
|
155
|
+
|
156
|
+
uri = URI(from)
|
157
|
+
output = StringIO.new
|
158
|
+
if prepend_verbose
|
159
|
+
output.puts "// Fetched from channel: #{channel}, with url " + uri.to_s
|
160
|
+
output.puts "// Fetched on: #{Time.now.utc.iso8601}"
|
161
|
+
end
|
162
|
+
|
163
|
+
response = Net::HTTP.get_response(uri)
|
164
|
+
case response.code
|
165
|
+
when '404'
|
166
|
+
say "ERROR: Error reading the content from the channel with url #{from}. File not found", :red
|
167
|
+
raise Thor::Error
|
168
|
+
when '200'
|
169
|
+
output.puts response.body.force_encoding('UTF-8')
|
170
|
+
else
|
171
|
+
say "ERROR: Unexpected error with status #{response.code} reading the content from the channel with url #{from}.",
|
172
|
+
:red
|
173
|
+
raise Thor::Error
|
174
|
+
end
|
175
|
+
output.rewind
|
176
|
+
output.read
|
177
|
+
end
|
178
|
+
|
179
|
+
def resource_exist?(target)
|
180
|
+
uri = URI(target)
|
181
|
+
response = Net::HTTP.new(uri.host, uri.port).head(uri.path)
|
182
|
+
response.code == '200'
|
183
|
+
end
|
184
|
+
end
|
185
|
+
end
|
186
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'generators/ember/generator_helpers'
|
4
|
+
|
5
|
+
module Ember
|
6
|
+
module Generators
|
7
|
+
class InstanceInitializerGenerator < ::Rails::Generators::NamedBase
|
8
|
+
include Ember::Generators::GeneratorHelpers
|
9
|
+
|
10
|
+
source_root File.expand_path('../templates', __dir__)
|
11
|
+
|
12
|
+
desc 'Creates a new Ember.js instance initializer'
|
13
|
+
|
14
|
+
class_option :javascript_engine, desc: 'Engine for JavaScripts'
|
15
|
+
class_option :ember_path, type: :string, aliases: '-d', desc: 'Custom ember app path'
|
16
|
+
class_option :app_name, type: :string, aliases: '-n', desc: 'Custom ember app name'
|
17
|
+
|
18
|
+
def create_instance_initializer_files
|
19
|
+
file_path = File.join(ember_path, 'instance-initializers', class_path,
|
20
|
+
"#{file_name.dasherize}.#{engine_extension}")
|
21
|
+
|
22
|
+
template "instance-initializer.#{engine_extension}", file_path
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'generators/ember/generator_helpers'
|
4
|
+
|
5
|
+
module Ember
|
6
|
+
module Generators
|
7
|
+
class ModelGenerator < ::Rails::Generators::NamedBase
|
8
|
+
include Ember::Generators::GeneratorHelpers
|
9
|
+
|
10
|
+
source_root File.expand_path('../templates', __dir__)
|
11
|
+
desc 'creates a new ember.js model'
|
12
|
+
argument :attributes, type: :array, default: [], banner: 'field[:type] field[:type] ...'
|
13
|
+
class_option :javascript_engine, desc: 'engine for javascripts'
|
14
|
+
class_option :ember_path, type: :string, aliases: '-d', desc: 'custom ember app path'
|
15
|
+
class_option :app_name, type: :string, aliases: '-n', desc: 'Custom ember app name'
|
16
|
+
|
17
|
+
def create_model_files
|
18
|
+
file_path = File.join(ember_path, 'models', class_path, "#{file_name.dasherize}.#{engine_extension}")
|
19
|
+
template "model.#{engine_extension}", file_path
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
EMBER_TYPE_LOOKUP = {
|
25
|
+
nil => 'string',
|
26
|
+
:binary => 'string',
|
27
|
+
:string => 'string',
|
28
|
+
:text => 'string',
|
29
|
+
:boolean => 'boolean',
|
30
|
+
:date => 'date',
|
31
|
+
:datetime => 'date',
|
32
|
+
:time => 'date',
|
33
|
+
:timestamp => 'date',
|
34
|
+
:decimal => 'number',
|
35
|
+
:float => 'number',
|
36
|
+
:integer => 'number',
|
37
|
+
:primary_key => 'number'
|
38
|
+
}.freeze
|
39
|
+
|
40
|
+
def parse_attributes!
|
41
|
+
self.attributes = (attributes || []).map do |attr|
|
42
|
+
name, type = attr.split(':')
|
43
|
+
key = type.try(:to_sym)
|
44
|
+
ember_type = EMBER_TYPE_LOOKUP[key] || type
|
45
|
+
|
46
|
+
{ name: name, type: ember_type }
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'generators/ember/generator_helpers'
|
4
|
+
|
5
|
+
module Ember
|
6
|
+
module Generators
|
7
|
+
class ResourceGenerator < ::Rails::Generators::NamedBase
|
8
|
+
include Ember::Generators::GeneratorHelpers
|
9
|
+
|
10
|
+
source_root File.expand_path('../templates', __dir__)
|
11
|
+
|
12
|
+
desc 'Creates a new Ember.js router, controller, view and template'
|
13
|
+
|
14
|
+
class_option :javascript_engine, desc: 'Engine for JavaScripts'
|
15
|
+
class_option :skip_route, type: :boolean, default: false, desc: "Don't create route"
|
16
|
+
class_option :array, type: :boolean, default: false,
|
17
|
+
desc: 'Create an Ember.ArrayController to represent multiple objects'
|
18
|
+
class_option :object, type: :boolean, default: false,
|
19
|
+
desc: 'Create an Ember.Controller to represent a single object'
|
20
|
+
class_option :app_name, type: :string, aliases: '-n', desc: 'Custom ember app name'
|
21
|
+
|
22
|
+
def create_resource_files
|
23
|
+
invoke('ember:route', [name], options) unless options[:skip_route]
|
24
|
+
invoke('ember:controller', [name], options)
|
25
|
+
invoke('ember:view', [name], options)
|
26
|
+
invoke('ember:template', [name], options)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'rails/generators'
|
4
|
+
require 'rails/generators/rails/resource/resource_generator'
|
5
|
+
require 'generators/ember/controller_generator'
|
6
|
+
require 'generators/ember/view_generator'
|
7
|
+
|
8
|
+
module Rails
|
9
|
+
module Generators
|
10
|
+
ResourceGenerator.class_eval do
|
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 add_ember
|
17
|
+
say_status :invoke, 'ember:model', :white
|
18
|
+
with_padding do
|
19
|
+
invoke 'ember:model'
|
20
|
+
end
|
21
|
+
|
22
|
+
say_status :invoke, 'ember controller and view (singular)', :white
|
23
|
+
with_padding do
|
24
|
+
invoke 'ember:view', [singular_name], options.merge(object: true)
|
25
|
+
end
|
26
|
+
|
27
|
+
@_invocations[Ember::Generators::ControllerGenerator].delete 'create_controller_files'
|
28
|
+
@_invocations[Ember::Generators::ViewGenerator].delete 'create_view_files'
|
29
|
+
|
30
|
+
say_status :invoke, 'ember controller and view (plural)', :white
|
31
|
+
with_padding do
|
32
|
+
invoke 'ember:view', [plural_name], options.merge(array: true)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'generators/ember/generator_helpers'
|
4
|
+
|
5
|
+
module Ember
|
6
|
+
module Generators
|
7
|
+
class RouteGenerator < ::Rails::Generators::NamedBase
|
8
|
+
include Ember::Generators::GeneratorHelpers
|
9
|
+
|
10
|
+
source_root File.expand_path('../templates', __dir__)
|
11
|
+
|
12
|
+
desc 'Creates a new Ember.js route'
|
13
|
+
class_option :ember_path, type: :string, aliases: '-d', desc: 'Custom ember app path'
|
14
|
+
class_option :javascript_engine, desc: 'Engine for JavaScripts'
|
15
|
+
class_option :app_name, type: :string, aliases: '-n', desc: 'Custom ember app name'
|
16
|
+
|
17
|
+
def create_route_files
|
18
|
+
file_path = File.join(ember_path, 'routes', class_path, "#{file_name.dasherize}.#{engine_extension}")
|
19
|
+
template "route.#{engine_extension}", file_path
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'generators/ember/generator_helpers'
|
4
|
+
|
5
|
+
module Ember
|
6
|
+
module Generators
|
7
|
+
class ServiceGenerator < ::Rails::Generators::NamedBase
|
8
|
+
include Ember::Generators::GeneratorHelpers
|
9
|
+
|
10
|
+
source_root File.expand_path('../templates', __dir__)
|
11
|
+
|
12
|
+
desc 'Creates a new Ember.js service'
|
13
|
+
|
14
|
+
class_option :javascript_engine, desc: 'Engine for JavaScripts'
|
15
|
+
class_option :ember_path, type: :string, aliases: '-d', desc: 'Custom ember app path'
|
16
|
+
class_option :app_name, type: :string, aliases: '-n', desc: 'Custom ember app name'
|
17
|
+
|
18
|
+
def create_service_files
|
19
|
+
file_path = File.join(ember_path, 'services', class_path, "#{file_name.dasherize}.#{engine_extension}")
|
20
|
+
|
21
|
+
template "service.#{engine_extension}", file_path
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'generators/ember/generator_helpers'
|
4
|
+
|
5
|
+
module Ember
|
6
|
+
module Generators
|
7
|
+
class TemplateGenerator < ::Rails::Generators::NamedBase
|
8
|
+
include Ember::Generators::GeneratorHelpers
|
9
|
+
|
10
|
+
source_root File.expand_path('../templates', __dir__)
|
11
|
+
|
12
|
+
desc 'Creates a new Ember.js template'
|
13
|
+
class_option :javascript_engine, desc: 'Engine for JavaScripts'
|
14
|
+
class_option :ember_path, type: :string, aliases: '-d', desc: 'Custom ember app path'
|
15
|
+
|
16
|
+
def create_template_files
|
17
|
+
file_path = File.join(ember_path, 'templates', class_path, "#{file_name.dasherize}.hbs")
|
18
|
+
template 'template.hbs', file_path
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'generators/ember/generator_helpers'
|
4
|
+
|
5
|
+
module Ember
|
6
|
+
module Generators
|
7
|
+
class ViewGenerator < ::Rails::Generators::NamedBase
|
8
|
+
include Ember::Generators::GeneratorHelpers
|
9
|
+
|
10
|
+
source_root File.expand_path('../templates', __dir__)
|
11
|
+
|
12
|
+
desc 'Creates a new Ember.js view and associated Handlebars template'
|
13
|
+
class_option :javascript_engine, desc: 'Engine for JavaScripts'
|
14
|
+
class_option :ember_path, type: :string, aliases: '-d', desc: 'Custom ember app path'
|
15
|
+
class_option :with_template, type: :boolean, default: false, desc: 'Create template for this view'
|
16
|
+
class_option :app_name, type: :string, aliases: '-n', desc: 'Custom ember app name'
|
17
|
+
|
18
|
+
def create_view_files
|
19
|
+
file_path = File.join(ember_path, 'views', class_path, "#{file_name.dasherize}.#{engine_extension}")
|
20
|
+
template "view.#{engine_extension}", file_path
|
21
|
+
invoke('ember:template', [name], options) if options[:with_template]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
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,17 @@
|
|
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
|
+
//
|
12
|
+
//= require_self
|
13
|
+
|
14
|
+
import Application from 'ember-rails/application';
|
15
|
+
|
16
|
+
// for more details see: http://emberjs.com/guides/application/
|
17
|
+
export default Application;
|
@@ -0,0 +1,12 @@
|
|
1
|
+
#= require jquery
|
2
|
+
#= require jquery_ujs
|
3
|
+
<%= "#= require handlebars\n" if Ember::Handlebars::Template.handlebars_available? -%>
|
4
|
+
#= require ./environment
|
5
|
+
#= require ember
|
6
|
+
#= require ember-data
|
7
|
+
#= require active-model-adapter
|
8
|
+
#= require_self
|
9
|
+
#= require ./<%= application_name.underscore.dasherize %>
|
10
|
+
|
11
|
+
# for more details see: http://emberjs.com/guides/application/
|
12
|
+
window.<%= application_name.camelize %> = Ember.Application.create()
|
@@ -0,0 +1,12 @@
|
|
1
|
+
#= require jquery
|
2
|
+
#= require jquery_ujs
|
3
|
+
<%= "#= require handlebars\n" if Ember::Handlebars::Template.handlebars_available? -%>
|
4
|
+
#= require ./environment
|
5
|
+
#= require ember
|
6
|
+
#= require ember-data
|
7
|
+
#= require active-model-adapter
|
8
|
+
#= require_self
|
9
|
+
#= require ./<%= application_name.underscore.dasherize %>
|
10
|
+
|
11
|
+
# for more details see: http://emberjs.com/guides/application/
|
12
|
+
window.<%= application_name.camelize %> = Ember.Application.create()
|
@@ -0,0 +1,15 @@
|
|
1
|
+
//= require jquery
|
2
|
+
//= require jquery_ujs
|
3
|
+
<%= "//= require handlebars\n" if Ember::Handlebars::Template.handlebars_available? -%>
|
4
|
+
//= require ./environment
|
5
|
+
//= require ember
|
6
|
+
//= require ember-data
|
7
|
+
//= require ember-rails/application
|
8
|
+
//
|
9
|
+
//= require ./<%= application_name.underscore.dasherize %>
|
10
|
+
//= require_self
|
11
|
+
|
12
|
+
import <%= application_name.camelize %> from '<%= application_name.underscore.dasherize %>';
|
13
|
+
// import config from 'environment'; // You can use `config` for application specific variables such as API key, etc.
|
14
|
+
|
15
|
+
<%= application_name.camelize %>.create();
|
@@ -0,0 +1,22 @@
|
|
1
|
+
//= require jquery
|
2
|
+
//= require jquery_ujs
|
3
|
+
<%= "//= require handlebars\n" if Ember::Handlebars::Template.handlebars_available? -%>
|
4
|
+
//= require ./environment
|
5
|
+
//= require ember
|
6
|
+
//= require ember-data
|
7
|
+
//= require active-model-adapter
|
8
|
+
<%- if engine_extension == 'module.es6' -%>
|
9
|
+
//= require ember-rails/application
|
10
|
+
//
|
11
|
+
//= require ./<%= application_name.underscore.dasherize %>
|
12
|
+
//= require_self
|
13
|
+
|
14
|
+
require('<%= application_name.underscore.dasherize %>');
|
15
|
+
<%- else -%>
|
16
|
+
|
17
|
+
//= require_self
|
18
|
+
//= require ./<%= application_name.underscore.dasherize %>
|
19
|
+
<%- end -%>
|
20
|
+
|
21
|
+
// for more details see: http://emberjs.com/guides/application/
|
22
|
+
<%= application_name.camelize %> = Ember.Application.create();
|