react_webpack_rails 0.0.3 → 0.0.4

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: e5c7c1e774861da4a8dd6be317a5f624bb1d8f2e
4
- data.tar.gz: 5f26add913b827882a39f459ca6546f16b4483e0
3
+ metadata.gz: 3fd3ea5641aff396b2ade349f530503b12fda9dc
4
+ data.tar.gz: 65b1f0030b965aef255c22e58ed19b4309529a91
5
5
  SHA512:
6
- metadata.gz: 55934857a674403c7fbf1215877e54ef69bc2e121f7d47ad0bcc9e8dfc03f3bf27c56f243495f13ec6f7d62d791e9348a0a9142430acdc69a3dbc5085608f7bb
7
- data.tar.gz: bef5eef2a86dc6bca571ba6ae52b74c25ae69098ce470982b90bdc4b225cc47b2236b60aed1481b1dcad4b6a7ae8493cfdcb3460a1f19d7de57aa3d316efd7ff
6
+ metadata.gz: 2afdd1696782b2b19b7520c14ea07b7c6b63838a7e945109c623f12af6cd03a9b91b761b8f568f570ed81ce3738726fd4c36f4973b971bfd378dedf97d017a52
7
+ data.tar.gz: 269768ac294ea3e532978fa23e9a3a6db9830aeaec1385a61cd0058020061d9de3e0608570e24a6a300fca4d365cace7b7268261c24b743987e672cfef83121d
@@ -1,3 +1,34 @@
1
+ ## 0.0.4 (October 26, 2015)
2
+ * Add [react-router [v1]](https://github.com/rackt/react-router) integration:
3
+ * js helpers:
4
+ * `registerRouter`
5
+ * `getRouter`
6
+ * `renderRouter`
7
+ * rails helper:
8
+ * `react_router`
9
+ * Add `unmountComponent` js helper.
10
+ * Bump package.json.
11
+ * Add React 0.14 compatibility.
12
+ * Add `.babelrc` file as part of generator.
13
+
14
+ ### migration 0.0.3 -> 0.0.4
15
+ * Make sure your package.json is up-to-date.
16
+ * install `react-dom 0.14`:
17
+ ```
18
+ $ npm install react-dom --save`
19
+ ```
20
+ * Expose `ReactDOM` in app/react/index.js.
21
+ ```js
22
+ import ReactDOM from 'react-dom';
23
+ window.ReactDOM = ReactDOM;
24
+ ```
25
+ * Create `.bablerc` in your project directory:
26
+ ```js
27
+ {
28
+ "stage": 1
29
+ }
30
+ ```
31
+
1
32
  ## 0.0.3 (September 6, 2015)
2
33
  * Reorganize config files.
3
34
  * Add UJS helpers:
data/README.md CHANGED
@@ -35,6 +35,7 @@ This will create following files:
35
35
  │ ├── dev.config.js
36
36
  │ ├── production.config.js
37
37
  │ └── tests.config.js
38
+ |── .babelrc
38
39
  ├── karma.conf.js
39
40
  ├── package.json
40
41
  └── webpack.config.js
@@ -55,6 +56,10 @@ And require integration and bundle files in `application.js`
55
56
  //= require react_bundle
56
57
  ```
57
58
 
59
+ ### Babel
60
+
61
+ By default, `react-webpack-rails` uses Babel Stage 1 - Proposal. If you want to change the stage, you can do so in the `.babelrc` file. It is however not recommended to use Stage 0 in a production app, because the features present there can be dropped, which would break your application.
62
+
58
63
  ## Usage
59
64
  ##### Check [docs](https://github.com/netguru/react_webpack_rails/tree/master/docs) for detailed api description.
60
65
  #### Register component in index.js
@@ -96,6 +101,9 @@ or manually:
96
101
 
97
102
  $ webpack -p --config YOUR_CONFIG
98
103
 
104
+ #### Deployment
105
+ Check [docs/deployment.md](docs/deployment.md)
106
+
99
107
  ## Development
100
108
 
101
109
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake rspec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -1,81 +1,11 @@
1
1
  # Docs
2
-
3
- ## UJS helpers
4
-
5
- * ### registerComponent
6
- ```js
7
- registerComponent(String componentName, class|function component)
8
- ```
9
-
10
- Register component so it's globally accessible.
11
-
12
- ##### example:
13
-
14
- ```js
15
- import MyComponent from 'my-component';
16
-
17
- registerComponent('MyComponentName', MyComponent);
18
- ```
19
-
20
- **note:** Registered components are accessible in globally exposed `ReactRailsUJS` under `reactComponents` property.
21
-
22
- * ### getComponent
23
-
24
- ```js
25
- getComponent(String componentName)
26
- ```
27
-
28
- Shortcut for accessing registered component.
29
-
30
- ##### example:
31
-
32
- ```js
33
- getComponent('MyComponentName');
34
- ```
35
-
36
- * ### createComponent
37
-
38
- ```js
39
- createComponent(String componentName[, Object props])
40
- ```
41
-
42
- Wrapper over React.createElement that creates ready to render component with props.
43
-
44
- ##### example:
45
-
46
- ```js
47
- createComponent('MyComponentName', {foo: 'bar'});
48
- ```
49
-
50
- * ### renderComponent
51
-
52
- ```js
53
- renderComponent(String componentName, Object props, DOMElement container)
54
- ```
55
-
56
- Wrapper over `React.render` and `React.createElement`. Renders component with given props into specified DOM element.
57
-
58
- ##### example:
59
-
60
- ```js
61
- var element = document.getElementById('my-element');
62
- renderComponent('MyComponentName', {foo: 'bar'}, element);
63
- ```
64
-
65
- ## Rails helpers
66
-
67
- * ### react_component
68
-
69
- ```ruby
70
- react_component(String component_name[, Object props])
71
- ```
72
-
73
- Creates DOM node with props as data attributes in rendered view so ReactRailsUJS can grab it and mount proper component.
74
-
75
- ##### example:
76
-
77
- ```ruby
78
- <%= react_component('MyComponentName', MySerializer.new(my_data)) %>
79
- ```
80
-
81
- **note:** Props Object will parsed to JSON. Be careful when passing rails models there - all its data accessible after `.to_json` will be exposed as data-attributes. We recommend using serializers to control it.
2
+ 1. [Api](https://github.com/netguru/react_webpack_rails/blob/master/docs/api.md)
3
+ 1. [UJS helpers](https://github.com/netguru/react_webpack_rails/blob/master/docs/api.md#ujs-helpers)
4
+ * [registerComponent](https://github.com/netguru/react_webpack_rails/blob/master/docs/api.md#registercomponent)
5
+ * [createComponent](https://github.com/netguru/react_webpack_rails/blob/master/docs/api.md#getcomponent)
6
+ * [renderComponent](https://github.com/netguru/react_webpack_rails/blob/master/docs/api.md#rendercomponent)
7
+ * [getRouter](https://github.com/netguru/react_webpack_rails/blob/master/docs/api.md#getrouter)
8
+ * [renderRouter](https://github.com/netguru/react_webpack_rails/blob/master/docs/api.md#renderrouter)
9
+ 1. [Rails helpers](https://github.com/netguru/react_webpack_rails/blob/master/docs/api.md#rails-helpers)
10
+ * [react_component]( https://github.com/netguru/react_webpack_rails/blob/master/docs/api.md#react_component)
11
+ * [react_router](https://github.com/netguru/react_webpack_rails/blob/master/docs/api.md#react_router)
@@ -0,0 +1,152 @@
1
+ ## UJS helpers
2
+
3
+ * ### registerComponent
4
+ ```js
5
+ registerComponent(String componentName, class|function component)
6
+ ```
7
+
8
+ Register component so it's globally accessible.
9
+
10
+ ##### example:
11
+
12
+ ```js
13
+ import MyComponent from 'my-component';
14
+
15
+ registerComponent('MyComponentName', MyComponent);
16
+ ```
17
+
18
+ **note:** Registered components are accessible in globally exposed `ReactRailsUJS` under `reactComponents` property.
19
+
20
+ * ### getComponent
21
+
22
+ ```js
23
+ getComponent(String componentName)
24
+ ```
25
+
26
+ Shortcut for accessing registered component.
27
+
28
+ ##### example:
29
+
30
+ ```js
31
+ getComponent('MyComponentName');
32
+ ```
33
+
34
+ * ### createComponent
35
+
36
+ ```js
37
+ createComponent(String componentName[, Object props])
38
+ ```
39
+
40
+ Wrapper over React.createElement that creates ready to render component with props.
41
+
42
+ ##### example:
43
+
44
+ ```js
45
+ createComponent('MyComponentName', {foo: 'bar'});
46
+ ```
47
+
48
+ * ### renderComponent
49
+
50
+ ```js
51
+ renderComponent(String componentName, Object props, DOMElement container)
52
+ ```
53
+
54
+ Wrapper over `React.render` and `React.createElement`. Renders component with given props into specified DOM element.
55
+
56
+ ##### example:
57
+
58
+ ```js
59
+ var element = document.getElementById('my-element');
60
+ renderComponent('MyComponentName', {foo: 'bar'}, element);
61
+ ```
62
+
63
+ * ### unmountComponent
64
+
65
+ ```js
66
+ unmountComponent(DOMElement container)
67
+ ```
68
+
69
+ Wrapper over `React.unmountComponentAtNode`. It will unmount component from given DOM node.
70
+
71
+ ##### example:
72
+
73
+ ```js
74
+ var element = document.getElementById('my-element');
75
+ unmountComponent(element);
76
+ ```
77
+
78
+ * ### registerRouter
79
+ ```js
80
+ registerRouter(String routerName, class|function component)
81
+ ```
82
+
83
+ Register router so it's globally accessible.
84
+
85
+ ##### example:
86
+
87
+ ```js
88
+ import MyComponent from 'my-component';
89
+
90
+ registerComponent('MyComponentName', MyComponent);
91
+ ```
92
+
93
+ **note:** Registered components are accessible in globally exposed `ReactRailsUJS` under `reactRouters` property.
94
+
95
+ * ### getRouter
96
+
97
+ ```js
98
+ getRouter(String routerName)
99
+ ```
100
+
101
+ Shortcut for accessing registered router.
102
+
103
+ ##### example:
104
+
105
+ ```js
106
+ getRouter('MyRouterName');
107
+ ```
108
+
109
+ * ### renderRouter
110
+
111
+ ```js
112
+ renderRouter(String routerName, Object props, DOMElement container)
113
+ ```
114
+
115
+ Wrapper ove `Router.run` function with possibility to pass props to handler.
116
+
117
+ ##### example:
118
+
119
+ ```js
120
+ var element = document.getElementById('my-element');
121
+ renderComponent('MyComponentName', {foo: 'bar'}, element);
122
+ ```
123
+
124
+ ## Rails helpers
125
+
126
+ * ### react_component
127
+
128
+ ```ruby
129
+ react_component(String component_name[, Object props])
130
+ ```
131
+
132
+ Creates DOM node with props as data attributes in rendered view so ReactRailsUJS can grab it and mount proper component.
133
+
134
+ ##### example:
135
+
136
+ ```ruby
137
+ <%= react_component('MyComponentName', MySerializer.new(my_data)) %>
138
+ ```
139
+
140
+ **note:** Props Object will be parsed to JSON. Be careful when passing rails models there - all its data accessible after `.to_json` will be exposed as data-attributes. We recommend using serializers to control it.
141
+
142
+ * ### react_router
143
+
144
+ ```ruby
145
+ react_router(String router_name)
146
+ ```
147
+
148
+ ##### example:
149
+
150
+ ```ruby
151
+ <%= react_router('MyRouterName') %>
152
+ ```
@@ -0,0 +1,65 @@
1
+ #### Heroku
2
+ Heroku will generally assume that it is a Rails application if deployed without further configuration. However, Heroku needs to install the
3
+ node packages and use webpack to seed the asset pipeline with the `react_bundle`.
4
+
5
+ Two main steps are necessary to allow the application to properly deploy onto Heroku. First, tell Heroku that you're using two buildpacks and make sure
6
+ the nodejs one is first:
7
+
8
+ ```bash
9
+ $ heroku buildpacks:clear # this line is only necessary if buildpacks were previously specified
10
+ $ heroku buildpacks:add --index 1 https://github.com/heroku/heroku-buildpack-nodejs
11
+ $ heroku buildpacks:add --index 2 https://github.com/heroku/heroku-buildpack-ruby
12
+ ```
13
+
14
+ Second, amend the provided `package.json` file to include a `postinstall` script that is the same as the build script (by default; otherwise
15
+ however as configured for production as described earlier for webpack). This `postinstall` script makes sure the `react_bundle` file is put
16
+ into `app/assets/javascript` before Heroku's `assets:precompile` step when it builds the Rails app.
17
+
18
+ ```json
19
+ "scripts": {
20
+ "test": "karma start",
21
+ "start": "webpack -w --config webpack/dev.config.js",
22
+ "build": "webpack -p --config webpack/production.config.js",
23
+ "postinstall": "webpack -p --config webpack/production.config.js"
24
+ },
25
+ ```
26
+
27
+ Deploying to Heroku should now work correctly:
28
+
29
+ ```bash
30
+ $ git push heroku master # or however you'd like to push to Heroku
31
+ ```
32
+
33
+ #### Tie Webpack assets to Rails rake tasks
34
+
35
+ Rake task `assets.rake`
36
+ ```ruby
37
+ # The webpack must compile assets before assets:environment task.
38
+ # Otherwise Sprockets sees no changes and doesn't precompile assets.
39
+ Rake::Task['assets:precompile']
40
+ .clear_prerequisites
41
+ .enhance(['assets:compile_environment'])
42
+
43
+ # Remove Webpack assets as well
44
+ Rake::Task['assets:clobber'].enhance do
45
+ Rake::Task['assets:clobber_webpack'].invoke
46
+ end
47
+
48
+ namespace :assets do
49
+ #In this task, set prerequisites for the assets:precompile task
50
+ task :compile_environment => :webpack do
51
+ Rake::Task['assets:environment'].invoke
52
+ end
53
+
54
+ desc 'Compile Webpack assets'
55
+ task :webpack do
56
+ sh "NODE_ENV=#{Rails.env} npm run build" # this runs a react_webpack_rails script
57
+ end
58
+
59
+ desc 'Remove compiled Webpack assets'
60
+ task :clobber_webpack do
61
+ rm_rf "#{Rails.application.config.root}/app/assets/javascripts/react_bundle.js"
62
+ rm_rf "#{Rails.application.config.root}/app/assets/stylesheets/react_bundle.css"
63
+ end
64
+ end
65
+ ```
@@ -6,12 +6,24 @@
6
6
  // jQuery is optional. Use it to support legacy browsers.
7
7
  var $ = (typeof window.jQuery !== 'undefined') && window.jQuery;
8
8
 
9
+ var _ReactDOM = function () {
10
+ if(typeof window.ReactDOM !== 'undefined'){
11
+ return window.ReactDOM;
12
+ };
13
+ if(parseFloat(window.React.version) >= 0.14) {
14
+ console.warn("ReactDOM is missing. Make sure it's exposed in app/react/index.js");
15
+ };
16
+ return window.React;
17
+ }
18
+
9
19
  // create the namespace
10
20
  window.ReactRailsUJS = {
11
21
  CLASS_NAME_ATTR: 'data-react-class',
12
22
  PROPS_ATTR: 'data-react-props',
23
+ ROUTER_FLAG: 'data-react-router',
13
24
  RAILS_ENV_DEVELOPMENT: <%= Rails.env == "development" %>,
14
25
  reactComponents: {},
26
+ reactRouters: {},
15
27
  // helper method for the mount and unmount methods to find the
16
28
  // `data-react-class` DOM elements
17
29
  _findDOMNodes: function(searchSelector) {
@@ -45,7 +57,28 @@
45
57
 
46
58
  renderComponent: function (name, props, element) {
47
59
  var component = window.ReactRailsUJS.createComponent(name, props);
48
- React.render(component, element);
60
+ _ReactDOM().render(component, element);
61
+ },
62
+
63
+ unmountComponent: function (node) {
64
+ _ReactDOM().unmountComponentAtNode(node);
65
+ },
66
+
67
+ registerRouter: function(name, routes) {
68
+ window.ReactRailsUJS.reactRouters[name] = routes;
69
+ },
70
+
71
+ getRouter: function(name) {
72
+ return window.ReactRailsUJS.reactRouters[name];
73
+ },
74
+
75
+ renderRouter: function(name, element) {
76
+ if(window.ReactRailsUJS.routerEnabled == true){
77
+ throw new Error("Error when renering " + name + "router: can't render more than one router.")
78
+ }
79
+ window.ReactRailsUJS.routerEnabled = true;
80
+ var router = window.ReactRailsUJS.getRouter(name);
81
+ _ReactDOM().render(router, element);
49
82
  },
50
83
 
51
84
  mountComponents: function(searchSelector) {
@@ -54,25 +87,27 @@
54
87
  for (var i = 0; i < nodes.length; ++i) {
55
88
  var node = nodes[i];
56
89
  var className = node.getAttribute(window.ReactRailsUJS.CLASS_NAME_ATTR);
57
-
58
- // Assume className is simple and can be found at top-level (window).
59
- // Fallback to eval to handle cases like 'My.React.ComponentName'.
60
-
61
- var constructor = window.ReactRailsUJS.reactComponents[className];
62
90
  var propsJson = node.getAttribute(window.ReactRailsUJS.PROPS_ATTR);
91
+ try {
92
+ var isRouter = JSON.parse(node.getAttribute(window.ReactRailsUJS.ROUTER_FLAG));
93
+ } catch(error) {
94
+ var isRouter = false
95
+ }
63
96
  var props = propsJson && JSON.parse(propsJson);
64
-
65
- React.render(React.createElement(constructor, props), node);
97
+ if (isRouter) {
98
+ window.ReactRailsUJS.renderRouter(className, node)
99
+ } else {
100
+ window.ReactRailsUJS.renderComponent(className, props, node)
101
+ }
66
102
  }
67
103
  },
68
104
 
69
105
  unmountComponents: function(searchSelector) {
70
106
  var nodes = window.ReactRailsUJS._findDOMNodes(searchSelector);
71
-
107
+ window.ReactRailsUJS.routerEnabled = false;
72
108
  for (var i = 0; i < nodes.length; ++i) {
73
109
  var node = nodes[i];
74
-
75
- React.unmountComponentAtNode(node);
110
+ window.ReactRailsUJS.unmountComponent(node);
76
111
  }
77
112
  }
78
113
  };
@@ -82,6 +117,11 @@
82
117
  window.getComponent = ReactRailsUJS.getComponent;
83
118
  window.createComponent = ReactRailsUJS.createComponent;
84
119
  window.renderComponent = ReactRailsUJS.renderComponent;
120
+ window.unmountComponent = ReactRailsUJS.unmountComponent;
121
+
122
+ window.registerRouter = ReactRailsUJS.registerRouter;
123
+ window.getRouter = ReactRailsUJS.getRouter;
124
+ window.renderRouter = ReactRailsUJS.renderRouter;
85
125
 
86
126
  // functions not exposed publicly
87
127
  function handleTurbolinksEvents () {
@@ -2,8 +2,11 @@ module ReactWebpackRails
2
2
  class InstallGenerator < Rails::Generators::Base
3
3
  source_root File.expand_path('../templates', __FILE__)
4
4
  class_option :example, type: :boolean, default: true, desc: 'Include example component and test files.'
5
+ class_option :router, type: :boolean, default: true, desc: 'Add and expose react-router globally.'
6
+
5
7
 
6
8
  def generate_layout
9
+ copy_file '.babelrc', '.babelrc'
7
10
  copy_file 'webpack.config.js', 'webpack.config.js'
8
11
  copy_file 'webpack/dev.config.js', 'webpack/dev.config.js'
9
12
  copy_file 'webpack/production.config.js', 'webpack/production.config.js'
@@ -6,7 +6,9 @@ module.exports = function (config) {
6
6
  singleRun: true,
7
7
  frameworks: ['mocha', 'sinon'],
8
8
  files: ['webpack/tests.config.js'],
9
- preprocessors: {'webpack/tests.config.js': ['webpack', 'sourcemap']},
9
+ preprocessors: {
10
+ 'webpack/tests.config.js': ['webpack', 'sourcemap']
11
+ },
10
12
  reporters: ['dots'],
11
13
  webpack: {
12
14
  module: {
@@ -1,26 +1,28 @@
1
1
  {
2
2
  "name": "<%="#{Rails.application.class.parent_name}"%>",
3
3
  "devDependencies": {
4
- "babel-eslint": "^4.1.1",
5
- "eslint": "^0.24.1",
6
- "eslint-plugin-react": "^3.3.1",
7
- "expect": "^1.9.0",
8
- "karma": "^0.13.9",
9
- "karma-chrome-launcher": "^0.2.0",
4
+ "babel-eslint": "^4.1.3",
5
+ "eslint": "^1.7.3",
6
+ "eslint-plugin-react": "^3.6.3",
7
+ "expect": "^1.12.2",
8
+ "karma": "^0.13.13",
9
+ "karma-chrome-launcher": "^0.2.1",
10
10
  "karma-mocha": "^0.2.0",
11
11
  "karma-sinon": "^1.0.4",
12
- "karma-sourcemap-loader": "^0.3.5",
12
+ "karma-sourcemap-loader": "^0.3.6",
13
13
  "karma-webpack": "^1.7.0",
14
14
  "webpack-notifier": "^1.2.1"
15
15
  },
16
16
  "dependencies": {
17
- "babel-core": "^5.8.19",
17
+ "babel-core": "^5.8.25",
18
18
  "babel-loader": "^5.3.2",
19
19
  "extract-text-webpack-plugin": "^0.8.2",
20
- "node-sass": "^3.2.0",
21
- "react": "^0.13.3",
20
+ "node-sass": "^3.3.3",
21
+ "react": "^0.14.0",
22
+ "react-dom": "^0.14.0",
23
+ <%= options.router ? ' "react-router": "1.0.0-rc3",' : ''%>
22
24
  "react-tools": "*",
23
- "sass-loader": "^2.0.1",
25
+ "sass-loader": "^3.0.0",
24
26
  "webpack": "^1.12.1"
25
27
  },
26
28
  "scripts": {
@@ -1,11 +1,12 @@
1
- window.React = require('react');
1
+ import React from 'react';
2
+ import ReactDOM from 'react-dom';
3
+ window.React = React;
4
+ window.ReactDOM = ReactDOM;
2
5
  <% if options.example %>
3
6
  import HelloWorld from './components/hello-world';
4
-
5
- registerComponent('hello-world', HelloWorld);
7
+ registerComponent('HelloWorld', HelloWorld);
6
8
  <% else %>
7
9
  // example usage:
8
10
  // import HelloWorld from './components/hello-world';
9
-
10
- // registerComponent('hello-world', HelloWorld);
11
+ // registerComponent('HelloWorld', HelloWorld);
11
12
  <% end %>
@@ -2,5 +2,6 @@ const WebpackNotifierPlugin = require('webpack-notifier');
2
2
  const config = require('./../webpack.config');
3
3
 
4
4
  config.plugins.push(new WebpackNotifierPlugin());
5
+ config.devtool = 'eval-source-map';
5
6
 
6
7
  module.exports = config;
@@ -1,3 +1,3 @@
1
1
  module ReactWebpackRails
2
- VERSION = '0.0.3'.freeze
2
+ VERSION = '0.0.4'.freeze
3
3
  end
@@ -2,17 +2,20 @@ module ReactWebpackRails
2
2
  module ViewHelpers
3
3
  # based on https://github.com/reactjs/react-rails/blob/master/lib/react/rails/view_helper.rb
4
4
  def react_component(name, props = {}, options = {}, &block)
5
- options = { tag: options } if options.is_a?(Symbol)
6
-
7
5
  html_options = options.reverse_merge(data: {})
8
6
  html_options[:data].tap do |data|
9
7
  data[:react_class] = name
10
8
  data[:react_props] = (props.is_a?(String) ? props : props.to_json)
9
+ data[:react_router] = options.delete(:react_router)
11
10
  end
12
11
  html_tag = html_options[:tag] || :div
13
12
  html_options.except!(:tag)
14
13
 
15
14
  content_tag(html_tag, '', html_options, &block)
16
15
  end
16
+
17
+ def react_router(name)
18
+ react_component(name, {}, react_router: true)
19
+ end
17
20
  end
18
21
  end
@@ -25,4 +25,6 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency 'bundler', '~> 1.10'
26
26
  spec.add_development_dependency 'rake', '~> 10.0'
27
27
  spec.add_development_dependency 'rspec', '~> 3.3'
28
+
29
+ spec.add_dependency 'rails', '>= 3.2'
28
30
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: react_webpack_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rafał Gawlik
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2015-09-06 00:00:00.000000000 Z
12
+ date: 2015-10-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -53,6 +53,20 @@ dependencies:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
55
  version: '3.3'
56
+ - !ruby/object:Gem::Dependency
57
+ name: rails
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '3.2'
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '3.2'
56
70
  description: ''
57
71
  email:
58
72
  - gawlikraf@gmail.com
@@ -72,8 +86,11 @@ files:
72
86
  - bin/console
73
87
  - bin/setup
74
88
  - docs/README.md
89
+ - docs/api.md
90
+ - docs/deployment.md
75
91
  - lib/assets/javascripts/react_integration.js.erb
76
92
  - lib/generators/react_webpack_rails/install_generator.rb
93
+ - lib/generators/react_webpack_rails/templates/.babelrc
77
94
  - lib/generators/react_webpack_rails/templates/karma.conf.js
78
95
  - lib/generators/react_webpack_rails/templates/package.json.erb
79
96
  - lib/generators/react_webpack_rails/templates/react/components/hello-world-test.jsx
@@ -114,3 +131,4 @@ signing_key:
114
131
  specification_version: 4
115
132
  summary: React and Rails integration done with webpack
116
133
  test_files: []
134
+ has_rdoc: