ember-cli-rails 0.9.0 → 0.10.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 66a6b948a0cc20a4a451f0765f34143b6c25c878
4
- data.tar.gz: bc90703a1cf03404bad413c8114c2976f9e4d956
3
+ metadata.gz: 0e8e3eae43c6174217f04aa96d57a7396f6b1ba8
4
+ data.tar.gz: c8d43e9a2efd2b5a9367d6fa974fa3ccedd4bb69
5
5
  SHA512:
6
- metadata.gz: 7b4334c4774fde5f7640736250b69e60fc9875e18eb9c573d16f770b16ae7032cff847c9e0e3c90141c116e9e3bd5d07f8cbbfaca8708ae654190f5bfa9c3e41
7
- data.tar.gz: 949d2dc2b36e751a22ecc56252361d2758b9febbd3821fa62f570e311a45d8c5e78c9fdbd50435f1c2a55b179cfac73b4ecbe2f4a466e8c3622021c5a9d069ee
6
+ metadata.gz: c1f9f0227c30692510edba35b843344b25e839c003437c92df089312c20803246653f9c7e88fddd3ff08d7f684a5ee57c073af3709b64a98e3014ba886442d79
7
+ data.tar.gz: a0789e42c15df281a2cd76ce4e61b30688eb1d60e0a28cd7ab81b9b819b0927b525dbeb1b2b4e0c384e795390ef2f08c327bb6934277b0ccd38707502a70e2ea
@@ -1,6 +1,23 @@
1
1
  master
2
2
  ------
3
3
 
4
+ 0.10.0
5
+ ------
6
+
7
+ * Remove `bin/heroku_install` to simplify Heroku setup.
8
+ To upgrade, remove your project's generated `bin/heroku_install`.
9
+ Next, execute `rake ember:heroku`. [#544]
10
+ * Generate an empty `yarn.lock` so that Heroku understands that the
11
+ application's deployment target requires `yarn`. Closes [#538]. [#540]
12
+ * No longer support `rails < 4.2`. [#543]
13
+ * Generate an empty `yarn.lock` so that Heroku understands that the
14
+ application's deployment target requires `yarn`. Closes [#538]. [#540]
15
+
16
+ [#543]: https://github.com/thoughtbot/ember-cli-rails/pull/543
17
+ [#544]: https://github.com/thoughtbot/ember-cli-rails/pull/544
18
+ [#538]: https://github.com/thoughtbot/ember-cli-rails/issues/538
19
+ [#540]: https://github.com/thoughtbot/ember-cli-rails/pull/540
20
+
4
21
  0.9.0
5
22
  -----
6
23
 
data/README.md CHANGED
@@ -476,13 +476,13 @@ EmberCli.configure do |c|
476
476
  end
477
477
  ```
478
478
 
479
- Next, mount the applications alongside the rest of Rails' routes:
479
+ Next, mount the applications alongside the rest of Rails' routes. Note that `admin_panel` route is added before the `frontend` route because it's more specific:
480
480
 
481
481
  ```rb
482
482
  # /config/routes.rb
483
483
  Rails.application.routes.draw do
484
- mount_ember_app :frontend, to: "/"
485
484
  mount_ember_app :admin_panel, to: "/admin_panel"
485
+ mount_ember_app :frontend, to: "/"
486
486
  end
487
487
  ```
488
488
 
@@ -661,7 +661,7 @@ This project supports:
661
661
  This project supports:
662
662
 
663
663
  * Ruby versions `>= 2.2.0`
664
- * Rails versions `>=4.1.x`.
664
+ * Rails versions `>=4.2.x`.
665
665
 
666
666
  To learn more about supported versions and upgrades, read the [upgrading guide].
667
667
 
@@ -1,69 +1,3 @@
1
- require "fileutils"
2
- require "ember-cli-rails-assets"
3
- require "ember_cli/engine"
4
- require "ember_cli/configuration"
5
- require "ember_cli/helpers"
6
- require "ember_cli/errors"
7
-
8
- module EmberCli
9
- extend self
10
-
11
- def configure
12
- yield configuration
13
- end
14
-
15
- def configuration
16
- Configuration.instance
17
- end
18
-
19
- def app(name)
20
- apps.fetch(name) do
21
- fail KeyError, "#{name.inspect} app is not defined"
22
- end
23
- end
24
-
25
- def build(name)
26
- app(name).build
27
- end
28
-
29
- alias_method :[], :app
30
-
31
- def skip?
32
- ENV["SKIP_EMBER"].present?
33
- end
34
-
35
- def install_dependencies!
36
- each_app(&:install_dependencies)
37
- end
38
-
39
- def test!
40
- each_app(&:test)
41
- end
42
-
43
- def compile!
44
- cleanup!
45
- each_app(&:compile)
46
- end
47
-
48
- def root
49
- @root ||= Rails.root.join("tmp", "ember-cli").tap(&:mkpath)
50
- end
51
-
52
- def env
53
- @env ||= Helpers.current_environment
54
- end
55
-
56
- delegate :apps, to: :configuration
57
-
58
- private
59
-
60
- def cleanup!
61
- root.children.each { |tmp_file| FileUtils.rm_rf(tmp_file) }
62
- end
63
-
64
- def each_app
65
- apps.each { |_, app| yield app }
66
- end
67
- end
1
+ require "ember_cli"
68
2
 
69
3
  EmberCLI = EmberCli
@@ -0,0 +1,72 @@
1
+ require "fileutils"
2
+ require "ember-cli-rails-assets"
3
+ require "ember_cli/engine"
4
+ require "ember_cli/configuration"
5
+ require "ember_cli/helpers"
6
+ require "ember_cli/errors"
7
+
8
+ module EmberCli
9
+ extend self
10
+
11
+ def configure
12
+ yield configuration
13
+ end
14
+
15
+ def configuration
16
+ Configuration.instance
17
+ end
18
+
19
+ def app(name)
20
+ apps.fetch(name) do
21
+ fail KeyError, "#{name.inspect} app is not defined"
22
+ end
23
+ end
24
+ alias_method :[], :app
25
+
26
+ def apps
27
+ configuration.apps
28
+ end
29
+
30
+ def build(name)
31
+ app(name).build
32
+ end
33
+
34
+ def any?(*arguments, &block)
35
+ apps.values.any?(*arguments, &block)
36
+ end
37
+
38
+ def skip?
39
+ ENV["SKIP_EMBER"].present?
40
+ end
41
+
42
+ def install_dependencies!
43
+ each_app(&:install_dependencies)
44
+ end
45
+
46
+ def test!
47
+ each_app(&:test)
48
+ end
49
+
50
+ def compile!
51
+ cleanup!
52
+ each_app(&:compile)
53
+ end
54
+
55
+ def root
56
+ @root ||= Rails.root.join("tmp", "ember-cli").tap(&:mkpath)
57
+ end
58
+
59
+ def env
60
+ @env ||= Helpers.current_environment
61
+ end
62
+
63
+ private
64
+
65
+ def cleanup!
66
+ root.children.each { |tmp_file| FileUtils.rm_rf(tmp_file) }
67
+ end
68
+
69
+ def each_app
70
+ apps.each { |_, app| yield app }
71
+ end
72
+ end
@@ -33,6 +33,10 @@ module EmberCli
33
33
  paths.dist
34
34
  end
35
35
 
36
+ def cached_directories
37
+ paths.cached_directories
38
+ end
39
+
36
40
  def compile
37
41
  @compiled ||= begin
38
42
  prepare
@@ -83,6 +87,14 @@ module EmberCli
83
87
  deploy.mountable?
84
88
  end
85
89
 
90
+ def yarn_enabled?
91
+ options.fetch(:yarn, false)
92
+ end
93
+
94
+ def bower?
95
+ paths.bower_json.exist?
96
+ end
97
+
86
98
  def to_rack
87
99
  deploy.to_rack
88
100
  end
@@ -36,7 +36,7 @@ module EmberCli
36
36
  end
37
37
 
38
38
  def bower_json
39
- ember_cli_root.join("bower.json")
39
+ root.join("bower.json")
40
40
  end
41
41
 
42
42
  def ember
@@ -108,6 +108,13 @@ module EmberCli
108
108
  @bundler ||= path_for_executable("bundler")
109
109
  end
110
110
 
111
+ def cached_directories
112
+ [
113
+ node_modules,
114
+ (bower_components if bower_json.exist?),
115
+ ].compact
116
+ end
117
+
111
118
  private
112
119
 
113
120
  attr_reader :app, :ember_cli_root, :environment, :rails_root
@@ -1,3 +1,3 @@
1
1
  module EmberCli
2
- VERSION = "0.9.0".freeze
2
+ VERSION = "0.10.0".freeze
3
3
  end
@@ -4,9 +4,8 @@ Description:
4
4
  Once the generator is complete, execute the following:
5
5
 
6
6
  $ heroku buildpacks:clear
7
- $ heroku buildpacks:add --index 1 https://github.com/heroku/heroku-buildpack-nodejs
8
- $ heroku buildpacks:add --index 2 https://github.com/heroku/heroku-buildpack-ruby
9
- $ heroku config:set NPM_CONFIG_PRODUCTION=false
7
+ $ heroku buildpacks:add --index 1 heroku/nodejs
8
+ $ heroku buildpacks:add --index 2 heroku/ruby
10
9
  $ heroku config:unset SKIP_EMBER
11
10
 
12
11
  Example:
@@ -16,5 +15,4 @@ Example:
16
15
  rails_12factor
17
16
 
18
17
  This will create:
19
- bin/heroku_install
20
18
  package.json
@@ -8,19 +8,44 @@ module EmberCli
8
8
  template "package.json.erb", "package.json"
9
9
  end
10
10
 
11
- def copy_setup_heroku_file
12
- template "bin_heroku_install.erb", "bin/heroku_install"
13
- run "chmod a+x bin/heroku_install"
11
+ def identify_as_yarn_project
12
+ if EmberCli.any?(&:yarn_enabled?)
13
+ template "yarn.lock.erb", "yarn.lock"
14
+ end
14
15
  end
15
16
 
16
17
  def inject_12factor_gem
17
18
  gem "rails_12factor", group: [:staging, :production]
18
19
  end
19
20
 
21
+ private
22
+
23
+ def cache_directories
24
+ all_cached_directories.map do |cached_directory|
25
+ cached_directory.relative_path_from(Rails.root).to_s
26
+ end
27
+ end
28
+
29
+ def all_cached_directories
30
+ app_specific_cached_directories + project_root_cached_directories
31
+ end
32
+
33
+ def app_specific_cached_directories
34
+ apps.flat_map(&:cached_directories)
35
+ end
36
+
37
+ def project_root_cached_directories
38
+ [Rails.root.join("node_modules")]
39
+ end
40
+
20
41
  def app_paths
21
42
  EmberCli.apps.values.map do |app|
22
43
  app.root_path.relative_path_from(Rails.root)
23
44
  end
24
45
  end
46
+
47
+ def apps
48
+ EmberCli.apps.values
49
+ end
25
50
  end
26
51
  end
@@ -1,15 +1,8 @@
1
1
  {
2
- "scripts": {
3
- "postinstall": "sh bin/heroku_install"
4
- },
2
+ <% if EmberCli.any?(&:bower?) %>
5
3
  "dependencies": {
6
4
  "bower": "*"
7
5
  },
8
- "cacheDirectories": [
9
- <%- app_paths.each do |app_path| -%>
10
- "<%= app_path %>/node_modules",
11
- "<%= app_path %>/bower_components",
12
- <%- end -%>
13
- "node_modules"
14
- ]
6
+ <% end %>
7
+ "cacheDirectories": <%= cache_directories.to_json %>
15
8
  }
@@ -16,10 +16,5 @@ namespace :ember do
16
16
  end
17
17
 
18
18
  unless EmberCli.skip?
19
- # Hook into assets:precompile:all for Rails 3.1+
20
- if Rails::VERSION::MAJOR < 4
21
- task "assets:precompile:all" => "ember:compile"
22
- else
23
- task "assets:precompile" => "ember:compile"
24
- end
19
+ task "assets:precompile" => "ember:compile"
25
20
  end
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.9.0
4
+ version: 0.10.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: 2017-06-14 00:00:00.000000000 Z
13
+ date: 2017-09-01 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: ember-cli-rails-assets
@@ -68,6 +68,20 @@ dependencies:
68
68
  - - "~>"
69
69
  - !ruby/object:Gem::Version
70
70
  version: 0.1.0
71
+ - !ruby/object:Gem::Dependency
72
+ name: generator_spec
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - "~>"
76
+ - !ruby/object:Gem::Version
77
+ version: 0.9.0
78
+ type: :development
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - "~>"
83
+ - !ruby/object:Gem::Version
84
+ version: 0.9.0
71
85
  description:
72
86
  email:
73
87
  - pavel@pravosud.com
@@ -84,6 +98,7 @@ files:
84
98
  - app/helpers/ember_rails_helper.rb
85
99
  - app/views/ember_cli/ember/index.html.erb
86
100
  - lib/ember-cli-rails.rb
101
+ - lib/ember_cli.rb
87
102
  - lib/ember_cli/app.rb
88
103
  - lib/ember_cli/build_monitor.rb
89
104
  - lib/ember_cli/command.rb
@@ -100,8 +115,8 @@ files:
100
115
  - lib/ember_cli/version.rb
101
116
  - lib/generators/ember/heroku/USAGE
102
117
  - lib/generators/ember/heroku/heroku_generator.rb
103
- - lib/generators/ember/heroku/templates/bin_heroku_install.erb
104
118
  - lib/generators/ember/heroku/templates/package.json.erb
119
+ - lib/generators/ember/heroku/templates/yarn.lock.erb
105
120
  - lib/generators/ember/init/USAGE
106
121
  - lib/generators/ember/init/init_generator.rb
107
122
  - lib/generators/ember/init/templates/initializer.rb
@@ -1,12 +0,0 @@
1
- #!/usr/bin/env sh
2
-
3
- set -e
4
-
5
- bower="$(pwd)/node_modules/.bin/bower"
6
-
7
- for app in <%= app_paths.map { |app_path| %{"#{app_path}"} }.join(" ") -%>; do
8
- cd $app &&
9
- npm install &&
10
- $bower install &&
11
- cd -
12
- done