ember-cli-rails 0.9.0 → 0.10.0

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