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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.eslintrc +1 -1
  3. data/.rubocop.yml +1 -1
  4. data/.travis.yml +1 -2
  5. data/CHANGELOG.md +46 -0
  6. data/Gemfile +0 -7
  7. data/README.md +16 -2
  8. data/Rakefile +1 -1
  9. data/docs/additional_reading/manual_installation.md +3 -4
  10. data/lib/generators/react_on_rails/base_generator.rb +12 -6
  11. data/lib/generators/react_on_rails/bootstrap_generator.rb +5 -4
  12. data/lib/generators/react_on_rails/dev_tests_generator.rb +20 -2
  13. data/lib/generators/react_on_rails/generator_helper.rb +8 -5
  14. data/lib/generators/react_on_rails/generator_messages.rb +39 -0
  15. data/lib/generators/react_on_rails/heroku_deployment_generator.rb +3 -3
  16. data/lib/generators/react_on_rails/install_generator.rb +34 -14
  17. data/lib/generators/react_on_rails/js_linters_generator.rb +1 -1
  18. data/lib/generators/react_on_rails/react_no_redux_generator.rb +5 -7
  19. data/lib/generators/react_on_rails/react_with_redux_generator.rb +1 -2
  20. data/lib/generators/react_on_rails/ruby_linters_generator.rb +5 -3
  21. data/lib/generators/react_on_rails/templates/base/base/Procfile.dev-hot.tt +4 -0
  22. data/lib/generators/react_on_rails/templates/base/base/Procfile.dev.tt +0 -1
  23. data/lib/generators/react_on_rails/templates/base/base/client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx.tt +66 -0
  24. data/lib/generators/react_on_rails/templates/base/base/client/package.json.tt +3 -2
  25. data/lib/generators/react_on_rails/templates/base/base/client/server.js +2 -2
  26. data/lib/generators/react_on_rails/templates/base/base/client/{webpack.client.base.config.js.tt → webpack.client.base.config.js} +4 -2
  27. data/lib/generators/react_on_rails/templates/base/base/client/webpack.client.hot.config.js.tt +6 -6
  28. data/lib/generators/react_on_rails/templates/base/base/client/webpack.client.rails.config.js +3 -3
  29. data/lib/generators/react_on_rails/templates/base/base/package.json +4 -1
  30. data/lib/generators/react_on_rails/templates/base/server_rendering/client/webpack.server.rails.config.js +3 -3
  31. data/lib/generators/react_on_rails/templates/bootstrap/client/assets/stylesheets/_post-bootstrap.scss +1 -1
  32. data/lib/generators/react_on_rails/templates/js_linters/client/.eslintrc +1 -1
  33. data/lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/containers/HelloWorld.jsx +9 -7
  34. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/containers/HelloWorld.jsx +6 -1
  35. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/reducers/helloWorldReducer.jsx +4 -4
  36. data/lib/generators/react_on_rails/templates/ruby_linters/{ruby-lint.yml → ruby-lint.yml.tt} +6 -0
  37. data/lib/react_on_rails/version.rb +1 -1
  38. data/package.json +5 -3
  39. data/rakelib/example_type.rb +1 -1
  40. data/rakelib/lint.rake +4 -3
  41. data/react_on_rails.gemspec +12 -2
  42. data/ruby-lint.yml +1 -0
  43. metadata +153 -12
  44. data/lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx +0 -39
  45. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx +0 -50
@@ -145,7 +145,7 @@ module ReactOnRails
145
145
  # Assumes we are inside a rails app's folder and necessary gems have been installed
146
146
  def generator_shell_commands
147
147
  shell_commands = []
148
- shell_commands << "rails generate react_on_rails:install #{generator_options}"
148
+ shell_commands << "rails generate react_on_rails:install #{generator_options} --ignore-warnings"
149
149
  shell_commands << "rails generate react_on_rails:dev_tests #{generator_options}"
150
150
  end
151
151
 
@@ -9,7 +9,8 @@ namespace :lint do
9
9
 
10
10
  desc "Run ruby-lint as shell"
11
11
  task :ruby do
12
- sh_in_dir(gem_root, "ruby-lint app spec lib")
12
+ puts "See /ruby-lint.yml for what directories are included."
13
+ sh_in_dir(gem_root, "ruby-lint .")
13
14
  end
14
15
 
15
16
  desc "Run scss-lint as shell"
@@ -19,12 +20,12 @@ namespace :lint do
19
20
 
20
21
  desc "Run eslint as shell"
21
22
  task :eslint do
22
- sh_in_dir(gem_root, "eslint . --ext .jsx and .js")
23
+ sh_in_dir(gem_root, "$(npm bin)/eslint . --ext .jsx and .js")
23
24
  end
24
25
 
25
26
  desc "Run jscs from shell"
26
27
  task :jscs do
27
- sh_in_dir(gem_root, "jscs -e -v .")
28
+ sh_in_dir(gem_root, "$(npm bin)/jscs -e -v .")
28
29
  end
29
30
 
30
31
  desc "Run all eslint, jscs, rubocop linters. Skip ruby-lint and scss"
@@ -19,13 +19,23 @@ Gem::Specification.new do |s|
19
19
  s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  s.require_paths = ["lib"]
21
21
 
22
- s.add_dependency "rails", ">= 3.2"
23
- s.add_dependency "execjs", "~> 2.5"
24
22
  s.add_dependency "connection_pool"
23
+ s.add_dependency "execjs", "~> 2.5"
24
+ s.add_dependency "rainbow", "~> 2.0"
25
+ s.add_dependency "rails", ">= 3.2"
25
26
 
26
27
  s.add_development_dependency "bundler", "~> 1.10"
27
28
  s.add_development_dependency "rake", "~> 10.0"
28
29
  s.add_development_dependency "rspec"
29
30
  s.add_development_dependency "coveralls"
30
31
  s.add_development_dependency "generator_spec"
32
+ s.add_development_dependency "pry"
33
+ s.add_development_dependency "pry-byebug"
34
+ s.add_development_dependency "pry-stack_explorer"
35
+ s.add_development_dependency "pry-doc"
36
+ s.add_development_dependency "pry-state"
37
+ s.add_development_dependency "pry-toys"
38
+ s.add_development_dependency "pry-rescue"
39
+ s.add_development_dependency "binding_of_caller"
40
+ s.add_development_dependency "awesome_print"
31
41
  end
@@ -2,6 +2,7 @@
2
2
  ---
3
3
  presenter: syntastic
4
4
 
5
+ # Be sure to edit this per your project!
5
6
  directories:
6
7
  - app
7
8
  - lib
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: react_on_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.rc.1
4
+ version: 2.0.0.rc.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Gordon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-01-04 00:00:00.000000000 Z
11
+ date: 2016-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: connection_pool
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '3.2'
19
+ version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '3.2'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: execjs
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -39,19 +39,33 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.5'
41
41
  - !ruby/object:Gem::Dependency
42
- name: connection_pool
42
+ name: rainbow
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rails
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
59
  - - ">="
46
60
  - !ruby/object:Gem::Version
47
- version: '0'
61
+ version: '3.2'
48
62
  type: :runtime
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
66
  - - ">="
53
67
  - !ruby/object:Gem::Version
54
- version: '0'
68
+ version: '3.2'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: bundler
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -122,6 +136,132 @@ dependencies:
122
136
  - - ">="
123
137
  - !ruby/object:Gem::Version
124
138
  version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: pry
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: pry-byebug
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: pry-stack_explorer
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: pry-doc
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: pry-state
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: pry-toys
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: pry-rescue
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
+ - !ruby/object:Gem::Dependency
238
+ name: binding_of_caller
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ - !ruby/object:Gem::Dependency
252
+ name: awesome_print
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - ">="
256
+ - !ruby/object:Gem::Version
257
+ version: '0'
258
+ type: :development
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - ">="
263
+ - !ruby/object:Gem::Version
264
+ version: '0'
125
265
  description: See README.md
126
266
  email:
127
267
  - justin@shakacode.com
@@ -168,23 +308,26 @@ files:
168
308
  - lib/generators/react_on_rails/bootstrap_generator.rb
169
309
  - lib/generators/react_on_rails/dev_tests_generator.rb
170
310
  - lib/generators/react_on_rails/generator_helper.rb
311
+ - lib/generators/react_on_rails/generator_messages.rb
171
312
  - lib/generators/react_on_rails/heroku_deployment_generator.rb
172
313
  - lib/generators/react_on_rails/install_generator.rb
173
314
  - lib/generators/react_on_rails/js_linters_generator.rb
174
315
  - lib/generators/react_on_rails/react_no_redux_generator.rb
175
316
  - lib/generators/react_on_rails/react_with_redux_generator.rb
176
317
  - lib/generators/react_on_rails/ruby_linters_generator.rb
318
+ - lib/generators/react_on_rails/templates/base/base/Procfile.dev-hot.tt
177
319
  - lib/generators/react_on_rails/templates/base/base/Procfile.dev.tt
178
320
  - lib/generators/react_on_rails/templates/base/base/REACT_ON_RAILS.md
179
321
  - lib/generators/react_on_rails/templates/base/base/app/controllers/hello_world_controller.rb
180
322
  - lib/generators/react_on_rails/templates/base/base/app/views/hello_world/index.html.erb.tt
181
323
  - lib/generators/react_on_rails/templates/base/base/client/.babelrc
182
324
  - lib/generators/react_on_rails/templates/base/base/client/REACT_ON_RAILS_CLIENT_README.md
325
+ - lib/generators/react_on_rails/templates/base/base/client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx.tt
183
326
  - lib/generators/react_on_rails/templates/base/base/client/app/bundles/HelloWorld/startup/clientRegistration.jsx.tt
184
327
  - lib/generators/react_on_rails/templates/base/base/client/index.jade
185
328
  - lib/generators/react_on_rails/templates/base/base/client/package.json.tt
186
329
  - lib/generators/react_on_rails/templates/base/base/client/server.js
187
- - lib/generators/react_on_rails/templates/base/base/client/webpack.client.base.config.js.tt
330
+ - lib/generators/react_on_rails/templates/base/base/client/webpack.client.base.config.js
188
331
  - lib/generators/react_on_rails/templates/base/base/client/webpack.client.hot.config.js.tt
189
332
  - lib/generators/react_on_rails/templates/base/base/client/webpack.client.rails.config.js
190
333
  - lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb
@@ -209,12 +352,10 @@ files:
209
352
  - lib/generators/react_on_rails/templates/js_linters/client/.eslintignore
210
353
  - lib/generators/react_on_rails/templates/js_linters/client/.eslintrc
211
354
  - lib/generators/react_on_rails/templates/js_linters/client/.jscsrc
212
- - lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx
213
355
  - lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/containers/HelloWorld.jsx
214
356
  - lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/startup/HelloWorldAppClient.jsx.tt
215
357
  - lib/generators/react_on_rails/templates/no_redux/server_rendering/client/app/bundles/HelloWorld/startup/HelloWorldAppServer.jsx
216
358
  - lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/actions/helloWorldActionCreators.jsx
217
- - lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx
218
359
  - lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/constants/helloWorldConstants.jsx
219
360
  - lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/containers/HelloWorld.jsx
220
361
  - lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/reducers/helloWorldReducer.jsx
@@ -227,7 +368,7 @@ files:
227
368
  - lib/generators/react_on_rails/templates/ruby_linters/.scss-lint.yml
228
369
  - lib/generators/react_on_rails/templates/ruby_linters/lib/tasks/brakeman.rake
229
370
  - lib/generators/react_on_rails/templates/ruby_linters/lib/tasks/ci.rake
230
- - lib/generators/react_on_rails/templates/ruby_linters/ruby-lint.yml
371
+ - lib/generators/react_on_rails/templates/ruby_linters/ruby-lint.yml.tt
231
372
  - lib/react_on_rails.rb
232
373
  - lib/react_on_rails/configuration.rb
233
374
  - lib/react_on_rails/engine.rb
@@ -1,39 +0,0 @@
1
- import React, { PropTypes } from 'react';
2
- import _ from 'lodash';
3
-
4
- // Simple example of a React "dumb" component
5
- export default class HelloWorldWidget extends React.Component {
6
- static propTypes = {
7
- name: PropTypes.string.isRequired,
8
- _updateName: PropTypes.func.isRequired,
9
- };
10
-
11
- constructor(props, context) {
12
- super(props, context);
13
-
14
- // Uses lodash to bind all methods to the context of the object instance, otherwise
15
- // the methods defined here would not refer to the component's class, not the component
16
- // instance itself.
17
- _.bindAll(this, '_handleChange');
18
- }
19
-
20
- // React will automatically provide us with the event `e`
21
- _handleChange(e) {
22
- const name = e.target.value;
23
- this.props._updateName(name);
24
- }
25
-
26
- render() {
27
- return (
28
- <div>
29
- <h3>
30
- Hello, {this.props.name}!
31
- </h3>
32
- <p>
33
- Say hello to:
34
- <input type="text" value={this.props.name} onChange={this._handleChange} />
35
- </p>
36
- </div>
37
- );
38
- }
39
- }
@@ -1,50 +0,0 @@
1
- // HelloWorldWidget is an arbitrary name for any "dumb" component. We do not recommend suffixing all your
2
- // dump component names with Widget.
3
-
4
- import React, { PropTypes } from 'react';
5
- import Immutable from 'immutable';
6
- import _ from 'lodash';
7
-
8
- // Simple example of a React "dumb" component
9
- export default class HelloWorldWidget extends React.Component {
10
- static propTypes = {
11
- // We prefix all property and variable names pointing to Immutable.js objects with '$$'.
12
- // This allows us to immediately know we don't call $$helloWorldStore['someProperty'], but instead use
13
- // the Immutable.js `get` API for Immutable.Map
14
- actions: PropTypes.shape({
15
- updateName: PropTypes.func.isRequired,
16
- }).isRequired,
17
- $$helloWorldStore: PropTypes.instanceOf(Immutable.Map).isRequired,
18
- };
19
-
20
- constructor(props, context) {
21
- super(props, context);
22
-
23
- // Uses lodash to bind all methods to the context of the object instance, otherwise
24
- // the methods defined here would not refer to the component's class, not the component
25
- // instance itself.
26
- _.bindAll(this, '_handleChange');
27
- }
28
-
29
- // React will automatically provide us with the event `e`
30
- _handleChange(e) {
31
- const name = e.target.value;
32
- this.props.actions.updateName(name);
33
- }
34
-
35
- render() {
36
- const $$helloWorldStore = this.props.$$helloWorldStore;
37
- const name = $$helloWorldStore.get('name');
38
- return (
39
- <div>
40
- <h3>
41
- Hello, {name}!
42
- </h3>
43
- <p>
44
- Say hello to:
45
- <input type="text" value={name} onChange={this._handleChange} />
46
- </p>
47
- </div>
48
- );
49
- }
50
- }