react_on_rails 2.0.0.rc.1 → 2.0.0.rc.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.eslintrc +1 -1
- data/.rubocop.yml +1 -1
- data/.travis.yml +1 -2
- data/CHANGELOG.md +46 -0
- data/Gemfile +0 -7
- data/README.md +16 -2
- data/Rakefile +1 -1
- data/docs/additional_reading/manual_installation.md +3 -4
- data/lib/generators/react_on_rails/base_generator.rb +12 -6
- data/lib/generators/react_on_rails/bootstrap_generator.rb +5 -4
- data/lib/generators/react_on_rails/dev_tests_generator.rb +20 -2
- data/lib/generators/react_on_rails/generator_helper.rb +8 -5
- data/lib/generators/react_on_rails/generator_messages.rb +39 -0
- data/lib/generators/react_on_rails/heroku_deployment_generator.rb +3 -3
- data/lib/generators/react_on_rails/install_generator.rb +34 -14
- data/lib/generators/react_on_rails/js_linters_generator.rb +1 -1
- data/lib/generators/react_on_rails/react_no_redux_generator.rb +5 -7
- data/lib/generators/react_on_rails/react_with_redux_generator.rb +1 -2
- data/lib/generators/react_on_rails/ruby_linters_generator.rb +5 -3
- data/lib/generators/react_on_rails/templates/base/base/Procfile.dev-hot.tt +4 -0
- data/lib/generators/react_on_rails/templates/base/base/Procfile.dev.tt +0 -1
- data/lib/generators/react_on_rails/templates/base/base/client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx.tt +66 -0
- data/lib/generators/react_on_rails/templates/base/base/client/package.json.tt +3 -2
- data/lib/generators/react_on_rails/templates/base/base/client/server.js +2 -2
- data/lib/generators/react_on_rails/templates/base/base/client/{webpack.client.base.config.js.tt → webpack.client.base.config.js} +4 -2
- data/lib/generators/react_on_rails/templates/base/base/client/webpack.client.hot.config.js.tt +6 -6
- data/lib/generators/react_on_rails/templates/base/base/client/webpack.client.rails.config.js +3 -3
- data/lib/generators/react_on_rails/templates/base/base/package.json +4 -1
- data/lib/generators/react_on_rails/templates/base/server_rendering/client/webpack.server.rails.config.js +3 -3
- data/lib/generators/react_on_rails/templates/bootstrap/client/assets/stylesheets/_post-bootstrap.scss +1 -1
- data/lib/generators/react_on_rails/templates/js_linters/client/.eslintrc +1 -1
- data/lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/containers/HelloWorld.jsx +9 -7
- data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/containers/HelloWorld.jsx +6 -1
- data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/reducers/helloWorldReducer.jsx +4 -4
- data/lib/generators/react_on_rails/templates/ruby_linters/{ruby-lint.yml → ruby-lint.yml.tt} +6 -0
- data/lib/react_on_rails/version.rb +1 -1
- data/package.json +5 -3
- data/rakelib/example_type.rb +1 -1
- data/rakelib/lint.rake +4 -3
- data/react_on_rails.gemspec +12 -2
- data/ruby-lint.yml +1 -0
- metadata +153 -12
- data/lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx +0 -39
- data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx +0 -50
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f249c2ba093b9c1f2099bb6b5d9be21c932023e1
|
4
|
+
data.tar.gz: 8fa0f6dae77949df12cdaea2d4e5bfe176e68bd6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8217b7fa116f964384bcecfb176eeb9036ad990da12d545ec8a2d52d3bc36f0be9edf73b23d3311962748ab72f4f75dc6f41e9e99d4d6bc547785baa3751f079
|
7
|
+
data.tar.gz: 7d5ce3efd0ada7e7d9b722c6fb14e7cfa89466db9c58d95ff5773a7a6a929cf834ef95864749e080092878de8e50ce11de6974a10be8f93c9f278928730d7400
|
data/.eslintrc
CHANGED
data/.rubocop.yml
CHANGED
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,52 @@
|
|
1
1
|
# Change Log
|
2
2
|
All notable changes to this project will be documented in this file. Items under `Unreleased` is upcoming features that will be out in next version.
|
3
3
|
|
4
|
+
## v2.0.0
|
5
|
+
- Move JavaScript part of react_on_rails to npm package 'react-on-rails'.
|
6
|
+
- Converted JavaScript code to ES6! with tests!
|
7
|
+
- No global namespace pollution. ReactOnRails is the only global added.
|
8
|
+
- New API. Instead of placing React components on the global namespace, you instead call ReactOnRails.register, passing an object where keys are the names of your components.
|
9
|
+
```
|
10
|
+
import ReactOnRails from 'react-on-rails';
|
11
|
+
ReactOnRails.registerComponent({name: component});
|
12
|
+
```
|
13
|
+
Best done with Object destructing
|
14
|
+
```
|
15
|
+
import ReactOnRails from 'react-on-rails';
|
16
|
+
ReactOnRails.registerComponent(
|
17
|
+
{
|
18
|
+
Component1,
|
19
|
+
Component2
|
20
|
+
}
|
21
|
+
);
|
22
|
+
```
|
23
|
+
Previously, you used
|
24
|
+
```
|
25
|
+
window.Component1 = Component1;
|
26
|
+
window.Component2 = Component2;
|
27
|
+
```
|
28
|
+
This would pollute the global namespace. See details in the README.md for more information.
|
29
|
+
- Your jade template for the WebpackDevServer setup should use the new API:
|
30
|
+
```
|
31
|
+
ReactOnRails.render(componentName, props, domNodeId);
|
32
|
+
```
|
33
|
+
such as:
|
34
|
+
```
|
35
|
+
ReactOnRails.render("HelloWorldApp", {name: "Stranger"}, 'app');
|
36
|
+
```
|
37
|
+
- All npm dependency libraries updated. Most notable is going to Babel 6.
|
38
|
+
- Dropped support for react 0.13.
|
39
|
+
- JS Linter uses ShakaCode JavaScript style: https://github.com/shakacode/style-guide-javascript
|
40
|
+
- Generators account these differences.
|
41
|
+
|
42
|
+
## v1.2.2
|
43
|
+
### Fixed
|
44
|
+
- Missing Lodash from generated package.json [#175](https://github.com/shakacode/react_on_rails/pull/175)
|
45
|
+
- Rails 3.2 could not run generators [#182](https://github.com/shakacode/react_on_rails/pull/182)
|
46
|
+
- Better placement of jquery_ujs dependency [#171](https://github.com/shakacode/react_on_rails/pull/171)
|
47
|
+
- Add more detailed description when adding --help option to generator [#161](https://github.com/shakacode/react_on_rails/pull/161)
|
48
|
+
- Lots of better docs.
|
49
|
+
|
4
50
|
## v1.2.0
|
5
51
|
### Added
|
6
52
|
- Support `--skip-bootstrap` or `-b` option for generator.
|
data/Gemfile
CHANGED
@@ -7,7 +7,6 @@ gemspec
|
|
7
7
|
# They must be defined here because of the way Travis CI works, in that it will only
|
8
8
|
# bundle install from a single Gemfile. Therefore, all gems that we will need for any dummy/example
|
9
9
|
# app have to be manually added to this file.
|
10
|
-
gem "awesome_print"
|
11
10
|
gem "bootstrap-sass"
|
12
11
|
gem "capybara"
|
13
12
|
gem "capybara-screenshot"
|
@@ -17,12 +16,6 @@ gem "jbuilder", "~> 2.0"
|
|
17
16
|
gem "jquery-rails"
|
18
17
|
gem "launchy"
|
19
18
|
gem "poltergeist"
|
20
|
-
gem "pry"
|
21
|
-
gem "pry-byebug"
|
22
|
-
gem "pry-doc"
|
23
|
-
gem "pry-rails"
|
24
|
-
gem "pry-rescue"
|
25
|
-
gem "pry-stack_explorer"
|
26
19
|
gem "puma"
|
27
20
|
gem "rails", "4.2.5"
|
28
21
|
gem "rails_12factor"
|
data/README.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
[![Build Status](https://travis-ci.org/shakacode/react_on_rails.svg?branch=master)](https://travis-ci.org/shakacode/react_on_rails) [![Coverage Status](https://coveralls.io/repos/shakacode/react_on_rails/badge.svg?branch=master&service=github)](https://coveralls.io/github/shakacode/react_on_rails?branch=master) [![Dependency Status](https://gemnasium.com/shakacode/react_on_rails.svg)](https://gemnasium.com/shakacode/react_on_rails) [![Gem Version](https://badge.fury.io/rb/react_on_rails.svg)](https://badge.fury.io/rb/react_on_rails)
|
2
2
|
|
3
|
+
# NEWS
|
4
|
+
2.0 is about to ship! Please grab the latest and let us know if you see any issues!
|
5
|
+
|
6
|
+
* https://rubygems.org/gems/react_on_rails
|
7
|
+
* https://www.npmjs.com/package/react-on-rails
|
8
|
+
* Branch: https://github.com/shakacode/react_on_rails/tree/npm-react-on-rails-js
|
9
|
+
* PR: https://github.com/shakacode/react_on_rails/pull/148
|
10
|
+
|
3
11
|
# React on Rails
|
4
12
|
React on Rails integrates Facebook's [React](https://github.com/facebook/react) front-end framework with Rails. Currently, both React v0.14 and v0.13 are supported, with server rendering. [Redux](https://github.com/rackt/redux) and [React-Router](https://github.com/rackt/react-redux) are supported as well. See the Rails on Maui [blog post](http://www.railsonmaui.com/blog/2014/10/03/integrating-webpack-and-the-es6-transpiler-into-an-existing-rails-project/) that started it all!
|
5
13
|
|
@@ -106,10 +114,16 @@ We're definitely not doing that. With react_on_rails, webpack is mainly generati
|
|
106
114
|
1. Add the following to your Gemfile and bundle install:
|
107
115
|
|
108
116
|
```ruby
|
109
|
-
gem "react_on_rails"
|
117
|
+
gem "react_on_rails", "~> 2.0.0"
|
118
|
+
```
|
119
|
+
|
120
|
+
2. See help for the generator:
|
121
|
+
|
122
|
+
```bash
|
123
|
+
rails generate react_on_rails:install --help
|
110
124
|
```
|
111
125
|
|
112
|
-
2. Run the generator with a simple "Hello World" example:
|
126
|
+
2. Run the generator with a simple "Hello World" example (more options below):
|
113
127
|
|
114
128
|
```bash
|
115
129
|
rails generate react_on_rails:install
|
data/Rakefile
CHANGED
@@ -44,7 +44,7 @@ See the next section for a sample webpack.server.rails.config.js.
|
|
44
44
|
entry: ['./app/startup/serverRegistration'],
|
45
45
|
```
|
46
46
|
3. Ensure the name of your ouput file (shown [here](https://github.com/shakacode/react-webpack-rails-tutorial/blob/537c985dc82faee333d80509343ca32a3965f9dd/client/webpack.server.rails.config.js#L9)) of your server bundle corresponds to the configuration of the gem. The default path is `app/assets/javascripts/generated`. See below for customization of configuration variables.
|
47
|
-
4. Expose `React` in your webpack config, like [this](https://github.com/shakacode/react-webpack-rails-tutorial/blob/master/client/webpack.server.rails.config.js#
|
47
|
+
4. Expose `React` in your webpack config, like [this](https://github.com/shakacode/react-webpack-rails-tutorial/blob/master/client/webpack.server.rails.build.config.js#L54-L55)
|
48
48
|
|
49
49
|
```javascript
|
50
50
|
{ test: require.resolve('react'), loader: 'expose?React' },
|
@@ -52,9 +52,8 @@ See the next section for a sample webpack.server.rails.config.js.
|
|
52
52
|
// For React 0.14
|
53
53
|
{ test: require.resolve('react-dom/server'), loader: 'expose?ReactDOMServer' }, // not in client one, only server
|
54
54
|
```
|
55
|
-
|
56
|
-
|
57
|
-
Be sure to check out the latest example version of [client/webpack.server.rails.config.js](https://github.com/shakacode/react-webpack-rails-tutorial/blob/master/client/webpack.server.rails.config.js).
|
55
|
+
### Sample webpack.server.rails.build.config.js (ONLY for server rendering)
|
56
|
+
Be sure to check out the latest example version of [client/webpack.server.rails.build.config.js](https://github.com/shakacode/react-webpack-rails-tutorial/blob/master/client/webpack.server.rails.build.config.js).
|
58
57
|
|
59
58
|
```javascript
|
60
59
|
// Common webpack configuration for server bundle
|
@@ -1,12 +1,12 @@
|
|
1
1
|
require "rails/generators"
|
2
|
-
|
3
|
-
|
4
|
-
include GeneratorHelper
|
2
|
+
require_relative "generator_messages"
|
3
|
+
require_relative "generator_helper"
|
5
4
|
|
6
5
|
module ReactOnRails
|
7
6
|
module Generators
|
8
7
|
class BaseGenerator < Rails::Generators::Base # rubocop:disable Metrics/ClassLength
|
9
|
-
|
8
|
+
include GeneratorHelper
|
9
|
+
Rails::Generators.hide_namespace(namespace)
|
10
10
|
source_root(File.expand_path("../templates", __FILE__))
|
11
11
|
|
12
12
|
# --redux
|
@@ -62,7 +62,11 @@ module ReactOnRails
|
|
62
62
|
/app/assets/javascripts/generated/*
|
63
63
|
DATA
|
64
64
|
|
65
|
-
dest_file_exists?(".gitignore")
|
65
|
+
if dest_file_exists?(".gitignore")
|
66
|
+
append_to_file(".gitignore", data)
|
67
|
+
else
|
68
|
+
GeneratorMessages.add_error(setup_file_error(".gitignore", data))
|
69
|
+
end
|
66
70
|
end
|
67
71
|
|
68
72
|
def update_application_js
|
@@ -111,6 +115,7 @@ module ReactOnRails
|
|
111
115
|
client/.babelrc
|
112
116
|
client/index.jade
|
113
117
|
client/server.js
|
118
|
+
client/webpack.client.base.config.js
|
114
119
|
client/webpack.client.rails.config.js
|
115
120
|
REACT_ON_RAILS.md
|
116
121
|
client/REACT_ON_RAILS_CLIENT_README.md
|
@@ -120,8 +125,9 @@ module ReactOnRails
|
|
120
125
|
def template_base_files
|
121
126
|
base_path = "base/base/"
|
122
127
|
%w(Procfile.dev
|
128
|
+
Procfile.dev-hot
|
123
129
|
app/views/hello_world/index.html.erb
|
124
|
-
client/
|
130
|
+
client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx
|
125
131
|
client/webpack.client.hot.config.js
|
126
132
|
client/package.json).each { |file| template(base_path + file + ".tt", file) }
|
127
133
|
end
|
@@ -1,11 +1,12 @@
|
|
1
1
|
require "rails/generators"
|
2
|
-
|
3
|
-
|
2
|
+
require_relative "generator_helper"
|
3
|
+
require_relative "generator_messages"
|
4
4
|
|
5
5
|
module ReactOnRails
|
6
6
|
module Generators
|
7
7
|
class BootstrapGenerator < Rails::Generators::Base
|
8
|
-
|
8
|
+
include GeneratorHelper
|
9
|
+
Rails::Generators.hide_namespace(namespace)
|
9
10
|
source_root(File.expand_path("../templates", __FILE__))
|
10
11
|
|
11
12
|
def copy_bootstrap_files
|
@@ -54,7 +55,7 @@ module ReactOnRails
|
|
54
55
|
if File.exist?(application_scss)
|
55
56
|
append_to_file(application_scss, data)
|
56
57
|
else
|
57
|
-
|
58
|
+
GeneratorMessages.add_error(setup_file_error(application_scss, data))
|
58
59
|
end
|
59
60
|
end
|
60
61
|
|
@@ -1,11 +1,11 @@
|
|
1
1
|
require "rails/generators"
|
2
2
|
require_relative "generator_helper"
|
3
|
-
include GeneratorHelper
|
4
3
|
|
5
4
|
module ReactOnRails
|
6
5
|
module Generators
|
7
6
|
class DevTestsGenerator < Rails::Generators::Base
|
8
|
-
|
7
|
+
include GeneratorHelper
|
8
|
+
Rails::Generators.hide_namespace(namespace)
|
9
9
|
source_root(File.expand_path("../templates/dev_tests", __FILE__))
|
10
10
|
|
11
11
|
def copy_rspec_files
|
@@ -28,6 +28,24 @@ module ReactOnRails
|
|
28
28
|
File.open(package_json, "w+") { |f| f.puts new_contents }
|
29
29
|
end
|
30
30
|
|
31
|
+
def change_webpack_client_base_config_to_include_fallback
|
32
|
+
text = <<-TEXT
|
33
|
+
},
|
34
|
+
|
35
|
+
// This fixes an issue with resolving 'react' when using a local symlinked version
|
36
|
+
// of the node_package folder
|
37
|
+
resolveLoader: {
|
38
|
+
fallback: [path.join(__dirname, 'node_modules')],
|
39
|
+
},
|
40
|
+
plugins: [
|
41
|
+
TEXT
|
42
|
+
sentinel = /^\s\s},\n\s\splugins: \[\n/
|
43
|
+
config = File.join(destination_root, "client", "webpack.client.base.config.js")
|
44
|
+
old_contents = File.read(config)
|
45
|
+
new_contents = old_contents.gsub(sentinel, text)
|
46
|
+
File.open(config, "w+") { |f| f.puts new_contents }
|
47
|
+
end
|
48
|
+
|
31
49
|
def add_test_related_gems_to_gemfile
|
32
50
|
gem("rspec-rails", group: :test)
|
33
51
|
gem("capybara", group: :test)
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require "rainbow"
|
2
|
+
|
1
3
|
module GeneratorHelper
|
2
4
|
# Takes a relative path from the destination root, such as `.gitignore` or `app/assets/javascripts/application.js`
|
3
5
|
def dest_file_exists?(file)
|
@@ -10,11 +12,12 @@ module GeneratorHelper
|
|
10
12
|
Dir.exist?(dest_dir) ? dest_dir : nil
|
11
13
|
end
|
12
14
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
def setup_file_error(file, data)
|
16
|
+
<<-MSG
|
17
|
+
#{file} was not found.
|
18
|
+
Please add the following content to your #{file} file:
|
19
|
+
#{data}
|
20
|
+
MSG
|
18
21
|
end
|
19
22
|
|
20
23
|
def empty_directory_with_keep_file(destination, config = {})
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module GeneratorMessages
|
2
|
+
class << self
|
3
|
+
def output
|
4
|
+
@output ||= []
|
5
|
+
end
|
6
|
+
|
7
|
+
def add_error(message)
|
8
|
+
output << format_error(message)
|
9
|
+
end
|
10
|
+
|
11
|
+
def add_warning(message)
|
12
|
+
output << format_warning(message)
|
13
|
+
end
|
14
|
+
|
15
|
+
def add_info(message)
|
16
|
+
output << format_info(message)
|
17
|
+
end
|
18
|
+
|
19
|
+
def errors
|
20
|
+
output
|
21
|
+
end
|
22
|
+
|
23
|
+
def format_error(msg)
|
24
|
+
Rainbow("ERROR: #{msg}").red
|
25
|
+
end
|
26
|
+
|
27
|
+
def format_warning(msg)
|
28
|
+
Rainbow("WARNING: #{msg}").orange
|
29
|
+
end
|
30
|
+
|
31
|
+
def format_info(msg)
|
32
|
+
Rainbow("#{msg}").green
|
33
|
+
end
|
34
|
+
|
35
|
+
def clear
|
36
|
+
@output = []
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
require "rails/generators"
|
2
|
-
|
3
|
-
include GeneratorHelper
|
2
|
+
require_relative "generator_helper"
|
4
3
|
|
5
4
|
module ReactOnRails
|
6
5
|
module Generators
|
7
6
|
class HerokuDeploymentGenerator < Rails::Generators::Base
|
8
|
-
|
7
|
+
include GeneratorHelper
|
8
|
+
Rails::Generators.hide_namespace(namespace)
|
9
9
|
source_root(File.expand_path("../templates", __FILE__))
|
10
10
|
|
11
11
|
def copy_heroku_deployment_files
|
@@ -1,8 +1,12 @@
|
|
1
1
|
require "rails/generators"
|
2
|
+
require_relative "generator_helper"
|
3
|
+
require_relative "generator_messages"
|
2
4
|
|
3
5
|
module ReactOnRails
|
4
6
|
module Generators
|
5
7
|
class InstallGenerator < Rails::Generators::Base
|
8
|
+
include GeneratorHelper
|
9
|
+
|
6
10
|
# fetch USAGE file for details generator description
|
7
11
|
source_root(File.expand_path("../", __FILE__))
|
8
12
|
|
@@ -43,14 +47,32 @@ module ReactOnRails
|
|
43
47
|
desc: "Skip integrating Bootstrap and don't initialize files and regarding configs. Default: false",
|
44
48
|
aliases: "-b"
|
45
49
|
|
50
|
+
# --ignore-warnings
|
51
|
+
class_option :ignore_warnings,
|
52
|
+
type: :boolean,
|
53
|
+
default: false,
|
54
|
+
desc: "Skip warnings. Default: false"
|
55
|
+
|
46
56
|
def run_generators
|
47
|
-
|
48
|
-
|
49
|
-
|
57
|
+
if installation_prerequisites_met? || options.ignore_warnings?
|
58
|
+
invoke_generators
|
59
|
+
else
|
60
|
+
error = "react_on_rails generator prerequisites not met!"
|
61
|
+
GeneratorMessages.add_error(error)
|
62
|
+
# fail("react_on_rails generator prerequisites not met!")
|
63
|
+
end
|
64
|
+
ensure
|
65
|
+
print_errors
|
50
66
|
end
|
51
67
|
|
68
|
+
# Everything here is not run automatically b/c it's private
|
69
|
+
|
52
70
|
private
|
53
71
|
|
72
|
+
def print_errors
|
73
|
+
GeneratorMessages.errors.each { |errors| puts errors }
|
74
|
+
end
|
75
|
+
|
54
76
|
def invoke_generators # rubocop:disable Metrics/CyclomaticComplexity
|
55
77
|
invoke "react_on_rails:base"
|
56
78
|
invoke "react_on_rails:react_no_redux" unless options.redux?
|
@@ -70,29 +92,27 @@ module ReactOnRails
|
|
70
92
|
|
71
93
|
def missing_npm?
|
72
94
|
return false unless `which npm`.blank?
|
73
|
-
error = "
|
95
|
+
error = "npm is required. Please install it before continuing. "
|
74
96
|
error << "https://www.npmjs.com/"
|
75
|
-
|
97
|
+
GeneratorMessages.add_error(error)
|
98
|
+
true
|
76
99
|
end
|
77
100
|
|
78
101
|
def missing_node?
|
79
102
|
return false unless `which node`.blank?
|
80
|
-
error = "** nodejs is required. Please install it before continuing."
|
103
|
+
error = "** nodejs is required. Please install it before continuing. "
|
81
104
|
error << "https://nodejs.org/en/"
|
82
|
-
|
105
|
+
GeneratorMessages.add_error(error)
|
106
|
+
true
|
83
107
|
end
|
84
108
|
|
85
109
|
def uncommitted_changes?
|
86
110
|
return false if ENV["COVERAGE"]
|
87
111
|
status = `git status`
|
88
112
|
return false if status.include?("nothing to commit, working directory clean")
|
89
|
-
error = "
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
def warn_if_nvm_is_not_installed
|
94
|
-
return true unless `which nvm`.blank?
|
95
|
-
puts "** nvm is advised. Please consider installing it. https://github.com/creationix/nvm"
|
113
|
+
error = "You have uncommitted code. Please commit or stash your changes before continuing"
|
114
|
+
GeneratorMessages.add_error(error)
|
115
|
+
true
|
96
116
|
end
|
97
117
|
end
|
98
118
|
end
|