react_on_rails 2.0.0.rc.1 → 2.0.0.rc.3

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.
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
- }