ember-cli-rails 0.5.8 → 0.6.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.
@@ -5,16 +5,7 @@ module EmberCli
5
5
  include Singleton
6
6
 
7
7
  def app(name, **options)
8
- if options.has_key? :build_timeout
9
- deprecate_timeout
10
- end
11
-
12
- if options.has_key? :enable
13
- deprecate_enable
14
- end
15
-
16
8
  app = App.new(name, options)
17
- app.sprockets.register!
18
9
  apps.store(name, app)
19
10
  end
20
11
 
@@ -30,38 +21,14 @@ module EmberCli
30
21
  @npm_path ||= Helpers.which("npm")
31
22
  end
32
23
 
33
- def bundler_path
34
- @bundler_path ||= Helpers.which("bundler")
24
+ def tee_path
25
+ @tee_path ||= Helpers.which("tee")
35
26
  end
36
27
 
37
- def build_timeout=(*)
38
- deprecate_timeout
28
+ def bundler_path
29
+ @bundler_path ||= Helpers.which("bundler")
39
30
  end
40
31
 
41
32
  attr_accessor :watcher
42
-
43
- private
44
-
45
- def deprecate_enable
46
- warn <<-WARN.strip_heredoc
47
-
48
- The `enable` lambda configuration has been removed.
49
-
50
- Please read https://github.com/thoughtbot/ember-cli-rails/pull/261 for
51
- details.
52
-
53
- WARN
54
- end
55
-
56
- def deprecate_timeout
57
- warn <<-WARN.strip_heredoc
58
-
59
- The `build_timeout` configuration has been removed.
60
-
61
- Please read https://github.com/thoughtbot/ember-cli-rails/pull/259 for
62
- details.
63
-
64
- WARN
65
- end
66
33
  end
67
34
  end
@@ -0,0 +1,30 @@
1
+ module EmberCli
2
+ class DirectoryAssetMap
3
+ def initialize(directory)
4
+ @directory = Pathname(directory)
5
+ end
6
+
7
+ def to_h
8
+ {
9
+ "assets" => files_with_data,
10
+ "prepend" => "assets/",
11
+ }
12
+ end
13
+
14
+ def files_with_data
15
+ files.reduce({}) do |manifest, file|
16
+ name = File.basename(file.path)
17
+
18
+ manifest[name] = name
19
+
20
+ manifest
21
+ end
22
+ end
23
+
24
+ private
25
+
26
+ def files
27
+ @directory.children.map { |path| File.new(path) }
28
+ end
29
+ end
30
+ end
@@ -5,20 +5,8 @@ module EmberCli
5
5
  require "ember_cli/route_helpers"
6
6
  end
7
7
 
8
- initializer "ember-cli-rails.enable" do
9
- EmberCli.enable! unless EmberCli.skip?
10
- end
11
-
12
8
  config.to_prepare do
13
9
  ActionController::Base.helper EmberRailsHelper
14
10
  end
15
-
16
- config.after_initialize do
17
- if defined?(ApplicationController)
18
- require "ember_cli/controller_extension"
19
-
20
- ApplicationController.include(EmberCli::ControllerExtension)
21
- end
22
- end
23
11
  end
24
12
  end
@@ -1,5 +1,5 @@
1
1
  module EmberCli
2
- class Constraint
2
+ class HtmlConstraint
3
3
  def matches?(request)
4
4
  matches = request.format.to_s =~ /html/ || -1
5
5
 
@@ -18,28 +18,28 @@ module EmberCli
18
18
  end
19
19
  end
20
20
 
21
+ def index_file
22
+ dist.join("index.html")
23
+ end
24
+
21
25
  def tmp
22
26
  @tmp ||= root.join("tmp").tap(&:mkpath)
23
27
  end
24
28
 
25
29
  def log
26
- @log ||= rails_root.join("log", "ember-#{app_name}.#{environment}.log")
30
+ @log ||= logs.join("ember-#{app_name}.#{environment}.log")
27
31
  end
28
32
 
29
33
  def dist
30
34
  @dist ||= ember_cli_root.join("apps", app_name).tap(&:mkpath)
31
35
  end
32
36
 
33
- def assets
34
- @assets ||= ember_cli_root.join("assets").tap(&:mkpath)
35
- end
36
-
37
- def app_assets
38
- @app_assets ||= assets.join(app_name)
37
+ def asset_map
38
+ @asset_map ||= Pathname.glob(assets.join("assetMap*.json")).first
39
39
  end
40
40
 
41
- def applications
42
- @applications ||= rails_root.join("public", "_apps").tap(&:mkpath)
41
+ def assets
42
+ @assets ||= dist.join("assets").tap(&:mkpath)
43
43
  end
44
44
 
45
45
  def gemfile
@@ -97,6 +97,10 @@ module EmberCli
97
97
  @npm ||= app_options.fetch(:npm_path) { configuration.npm_path }
98
98
  end
99
99
 
100
+ def tee
101
+ @tee ||= app_options.fetch(:tee_path) { configuration.tee_path }
102
+ end
103
+
100
104
  def bundler
101
105
  @bundler ||= app_options.fetch(:bundler_path) do
102
106
  configuration.bundler_path
@@ -109,6 +113,10 @@ module EmberCli
109
113
 
110
114
  delegate :name, :options, to: :app, prefix: true
111
115
 
116
+ def logs
117
+ rails_root.join("log").tap(&:mkpath)
118
+ end
119
+
112
120
  def default_root
113
121
  rails_root.join(app_name)
114
122
  end
@@ -1,4 +1,4 @@
1
- require "ember_cli/constraint"
1
+ require "ember_cli/html_constraint"
2
2
 
3
3
  module ActionDispatch
4
4
  module Routing
@@ -14,10 +14,14 @@ module ActionDispatch
14
14
  format: :html,
15
15
  )
16
16
 
17
+ dist_directory = EmberCli[app_name].paths.dist
18
+
17
19
  Rails.application.routes.draw do
18
- scope constraints: EmberCli::Constraint.new do
20
+ scope constraints: EmberCli::HtmlConstraint.new do
19
21
  get("#{to}(*rest)", routing_options)
20
22
  end
23
+
24
+ mount Rack::File.new(dist_directory.to_s) => to
21
25
  end
22
26
  end
23
27
  end
@@ -51,8 +51,12 @@ module EmberCli
51
51
  attr_reader :ember, :env, :options, :paths
52
52
 
53
53
  def spawn(command)
54
- Kernel.spawn(env, command, chdir: paths.root.to_s, out: paths.log.to_s) ||
55
- exit(1)
54
+ Kernel.spawn(
55
+ env,
56
+ command,
57
+ chdir: paths.root.to_s,
58
+ err: paths.build_error_file.to_s,
59
+ ) || exit(1)
56
60
  end
57
61
 
58
62
  def exec(command)
@@ -1,3 +1,3 @@
1
1
  module EmberCli
2
- VERSION = "0.5.8".freeze
2
+ VERSION = "0.6.0".freeze
3
3
  end
@@ -10,7 +10,7 @@ Description:
10
10
  $ heroku config:unset SKIP_EMBER
11
11
 
12
12
  Example:
13
- rails generate ember-cli:heroku
13
+ rails generate ember:heroku
14
14
 
15
15
  This will install the following gems:
16
16
  rails_12factor
@@ -2,7 +2,7 @@ module EmberCli
2
2
  class HerokuGenerator < Rails::Generators::Base
3
3
  source_root File.expand_path("../templates", __FILE__)
4
4
 
5
- namespace "ember-cli:heroku"
5
+ namespace "ember:heroku"
6
6
 
7
7
  def copy_package_json_file
8
8
  template "package.json.erb", "package.json"
@@ -13,16 +13,6 @@ module EmberCli
13
13
  run "chmod a+x bin/heroku_install"
14
14
  end
15
15
 
16
- def config_js_compressor
17
- production_config = "config/environments/production.rb"
18
-
19
- inject_into_file production_config, before: "end\n" do
20
- <<-RUBY
21
- config.assets.js_compressor = nil
22
- RUBY
23
- end
24
- end
25
-
26
16
  def inject_12factor_gem
27
17
  gem "rails_12factor", group: [:staging, :production]
28
18
  end
@@ -0,0 +1,8 @@
1
+ Description:
2
+ Generates `ember.rb` initializer.
3
+
4
+ Example:
5
+ rails generate ember:init
6
+
7
+ This will create:
8
+ config/initializers/ember.rb
@@ -2,7 +2,7 @@ module EmberCli
2
2
  class InitGenerator < Rails::Generators::Base
3
3
  source_root File.expand_path("../templates", __FILE__)
4
4
 
5
- namespace "ember-cli:init"
5
+ namespace "ember:init"
6
6
 
7
7
  def copy_initializer_file
8
8
  copy_file "initializer.rb", "config/initializers/ember.rb"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ember-cli-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.8
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Pravosud
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-12-07 00:00:00.000000000 Z
13
+ date: 2015-12-11 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: railties
@@ -32,48 +32,20 @@ dependencies:
32
32
  - - "<"
33
33
  - !ruby/object:Gem::Version
34
34
  version: '5'
35
- - !ruby/object:Gem::Dependency
36
- name: non-stupid-digest-assets
37
- requirement: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - "~>"
40
- - !ruby/object:Gem::Version
41
- version: 1.0.0
42
- type: :runtime
43
- prerelease: false
44
- version_requirements: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - "~>"
47
- - !ruby/object:Gem::Version
48
- version: 1.0.0
49
- - !ruby/object:Gem::Dependency
50
- name: sprockets
51
- requirement: !ruby/object:Gem::Requirement
52
- requirements:
53
- - - ">="
54
- - !ruby/object:Gem::Version
55
- version: '2.0'
56
- type: :runtime
57
- prerelease: false
58
- version_requirements: !ruby/object:Gem::Requirement
59
- requirements:
60
- - - ">="
61
- - !ruby/object:Gem::Version
62
- version: '2.0'
63
35
  - !ruby/object:Gem::Dependency
64
36
  name: cocaine
65
37
  requirement: !ruby/object:Gem::Requirement
66
38
  requirements:
67
39
  - - "~>"
68
40
  - !ruby/object:Gem::Version
69
- version: 0.5.0
41
+ version: 0.5.8
70
42
  type: :runtime
71
43
  prerelease: false
72
44
  version_requirements: !ruby/object:Gem::Requirement
73
45
  requirements:
74
46
  - - "~>"
75
47
  - !ruby/object:Gem::Version
76
- version: 0.5.0
48
+ version: 0.5.8
77
49
  description:
78
50
  email:
79
51
  - pavel@pravosud.com
@@ -91,31 +63,30 @@ files:
91
63
  - app/views/ember_cli/ember/index.html.erb
92
64
  - lib/ember-cli-rails.rb
93
65
  - lib/ember_cli/app.rb
66
+ - lib/ember_cli/asset_map.rb
94
67
  - lib/ember_cli/assets.rb
95
68
  - lib/ember_cli/build_monitor.rb
96
69
  - lib/ember_cli/capture.rb
97
70
  - lib/ember_cli/command.rb
98
71
  - lib/ember_cli/configuration.rb
99
- - lib/ember_cli/constraint.rb
100
- - lib/ember_cli/controller_extension.rb
72
+ - lib/ember_cli/directory_asset_map.rb
101
73
  - lib/ember_cli/engine.rb
102
74
  - lib/ember_cli/errors.rb
103
75
  - lib/ember_cli/helpers.rb
76
+ - lib/ember_cli/html_constraint.rb
104
77
  - lib/ember_cli/html_page.rb
105
- - lib/ember_cli/missing_manifest.rb
106
78
  - lib/ember_cli/path_set.rb
107
79
  - lib/ember_cli/route_helpers.rb
108
80
  - lib/ember_cli/runner.rb
109
81
  - lib/ember_cli/shell.rb
110
- - lib/ember_cli/sprockets.rb
111
82
  - lib/ember_cli/version.rb
112
- - lib/generators/ember-cli/heroku/USAGE
113
- - lib/generators/ember-cli/heroku/heroku_generator.rb
114
- - lib/generators/ember-cli/heroku/templates/bin_heroku_install.erb
115
- - lib/generators/ember-cli/heroku/templates/package.json.erb
116
- - lib/generators/ember-cli/init/USAGE
117
- - lib/generators/ember-cli/init/init_generator.rb
118
- - lib/generators/ember-cli/init/templates/initializer.rb
83
+ - lib/generators/ember/heroku/USAGE
84
+ - lib/generators/ember/heroku/heroku_generator.rb
85
+ - lib/generators/ember/heroku/templates/bin_heroku_install.erb
86
+ - lib/generators/ember/heroku/templates/package.json.erb
87
+ - lib/generators/ember/init/USAGE
88
+ - lib/generators/ember/init/init_generator.rb
89
+ - lib/generators/ember/init/templates/initializer.rb
119
90
  - lib/tasks/ember-cli.rake
120
91
  homepage: https://github.com/thoughtbot/ember-cli-rails
121
92
  licenses:
@@ -1,19 +0,0 @@
1
- module EmberCli
2
- module ControllerExtension
3
- def self.included(base)
4
- build_ember_app = lambda do
5
- app = params[:ember_app]
6
-
7
- if app.present?
8
- EmberCli[app].build
9
- end
10
- end
11
-
12
- if base.respond_to?(:before_action)
13
- base.before_action(&build_ember_app)
14
- else
15
- base.before_filter(&build_ember_app)
16
- end
17
- end
18
- end
19
- end
@@ -1,11 +0,0 @@
1
- module EmberCli
2
- class MissingManifest
3
- def files
4
- {}
5
- end
6
-
7
- def assets
8
- {}
9
- end
10
- end
11
- end
@@ -1,82 +0,0 @@
1
- require "sprockets"
2
- require "ember_cli/errors"
3
- require "non-stupid-digest-assets"
4
- require "ember_cli/html_page"
5
- require "ember_cli/missing_manifest"
6
- require "ember_cli/assets"
7
-
8
- module EmberCli
9
- class Sprockets
10
- class AssetPipelineError < BuildError; end
11
-
12
- def initialize(app)
13
- @app = app
14
- end
15
-
16
- def register!
17
- register_or_raise!(Rails.configuration.assets.precompile)
18
- register_or_raise!(NonStupidDigestAssets.whitelist)
19
- end
20
-
21
- def index_html(head:, body:)
22
- html_page = HtmlPage.new(
23
- content: app.index_file.read,
24
- head: head,
25
- body: body,
26
- )
27
-
28
- html_page.render
29
- end
30
-
31
- def javascript_assets
32
- assets.javascripts
33
- end
34
-
35
- def stylesheet_assets
36
- assets.stylesheets
37
- end
38
-
39
- private
40
-
41
- attr_reader :app
42
-
43
- def assets
44
- Assets.new(
45
- app_name: app.name,
46
- ember_app_name: ember_app_name,
47
- manifest: rails_manifest,
48
- )
49
- end
50
-
51
- def ember_app_name
52
- @ember_app_name ||= app.options.fetch(:name) { package_json.fetch(:name) }
53
- end
54
-
55
- def package_json
56
- @package_json ||=
57
- JSON.parse(app.paths.package_json_file.read).with_indifferent_access
58
- end
59
-
60
- def rails_manifest
61
- if Rails.application.respond_to?(:assets_manifest)
62
- Rails.application.assets_manifest
63
- else
64
- MissingManifest.new
65
- end
66
- end
67
-
68
- def asset_matcher
69
- %r{\A#{app.name}/}
70
- end
71
-
72
- def register_or_raise!(precompiled_assets)
73
- if precompiled_assets.include?(asset_matcher)
74
- raise AssetPipelineError.new <<-MSG.strip_heredoc
75
- EmberCLI application #{app.name.inspect} already registered!
76
- MSG
77
- else
78
- precompiled_assets << asset_matcher
79
- end
80
- end
81
- end
82
- end