ember-cli-rails 0.5.8 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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