react_webpack_rails 0.5.0 → 0.6.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: 3dedadf24fa2870a3a88a55a64aa0eb3621da825
4
- data.tar.gz: dbf9547a683c1796873a5fd36f5b6def0f04a537
3
+ metadata.gz: ab94298add2a819ece6deb843faba11d9854eb57
4
+ data.tar.gz: 3f287303ddad42a74f2f1940e730648a1fb22c72
5
5
  SHA512:
6
- metadata.gz: 52b54c004400fbfbc56901524e73e5dbc9bfecfad0fe436da5e7d8830f03b0bbdea2c53cf24c560866245704152449205c16bcd5d415f5b4b0c561be3cdb5a4c
7
- data.tar.gz: 5fe97c37924eb22bbda98aef4603980658917fc10a0027f3a5554c5982c7448231a352b058ba135615aac290c04c0d3523d4f54376b86a166ab7fe280bdaf32d
6
+ metadata.gz: 19e00ab4020c5446abc04f4591ae2dd2a1d9ae41904d73596d4761ce6164f7481ef9cd1c62620aa9fb8a0970f4e03d326cb174c5a9bf2b5d7cbc334a6296d0a7
7
+ data.tar.gz: 168c1019d826949b794ada7d57628729cda4757a2e94d790b50dd73c3eb47d3c9f717a8201b4e25834c05f78bf9b87d3b4403970a78b9cb53da78d7a75183388
data/README.md CHANGED
@@ -19,6 +19,7 @@ See [0.4-stable](https://github.com/netguru/react_webpack_rails/tree/0.4-stable)
19
19
  * [rwr-alt](https://github.com/netguru/rwr-alt) plugin that makes it possible to populate and share Alt stores between react component located in different parts of rails views.
20
20
  * [rwr-redux](https://github.com/netguru/rwr-redux) allows to use redux state containers in a rails views.
21
21
  * [rwr-react_router](https://github.com/netguru/rwr-react_router) react-router integration.
22
+ * [rwr-view_helpers](https://github.com/netguru/rwr-view_helpers) handy view helpers.
22
23
 
23
24
  ## Installation
24
25
 
@@ -13,10 +13,20 @@ class ReactIntegration {
13
13
  this.renderComponentToString = this.renderComponentToString.bind(this);
14
14
  }
15
15
 
16
- registerComponent(name, component) {
16
+ registerComponent(...args) {
17
+ if (typeof args[0] === 'object') {
18
+ const component = args[0];
19
+ this.components = Object.assign({}, this.components, component);
20
+ }
21
+
22
+ const [name, component] = args;
17
23
  this.components[name] = component;
18
24
  }
19
25
 
26
+ registerComponents(components) {
27
+ this.components = Object.assign({}, this.components, components);
28
+ }
29
+
20
30
  getComponent(name) {
21
31
  return this.components[name];
22
32
  }
data/js/src/version.js CHANGED
@@ -1 +1 @@
1
- export default '0.5.0';
1
+ export default '0.6.0';
@@ -15,6 +15,18 @@ class HelloComponent extends React.Component {
15
15
  }
16
16
  }
17
17
 
18
+ class FooComponent extends React.Component {
19
+ static propTypes() {
20
+ return {
21
+ username: PropTypes.string.isRequired,
22
+ };
23
+ }
24
+
25
+ render() {
26
+ return (<div>Foo! Bar!</div>);
27
+ }
28
+ }
29
+
18
30
  describe('ReactIntegration', function () {
19
31
  afterEach(function () {
20
32
  subject.components = {};
@@ -27,10 +39,23 @@ describe('ReactIntegration', function () {
27
39
  });
28
40
 
29
41
  describe('#registerComponent', function () {
30
- it('adds component to the components storage', function () {
42
+ it('registers component using separate args', function () {
31
43
  subject.registerComponent('HelloWorld', HelloComponent);
32
44
  expect(subject.components.HelloWorld).toBe(HelloComponent);
33
45
  });
46
+
47
+ it('registers component using Object', function () {
48
+ subject.registerComponent({ HelloComponent });
49
+ expect(subject.components.HelloComponent).toBe(HelloComponent);
50
+ });
51
+ });
52
+
53
+ describe('#registerComponents', function () {
54
+ it('adds multiple components', function () {
55
+ subject.registerComponents({ HelloComponent, FooComponent });
56
+ expect(subject.components.HelloComponent).toBe(HelloComponent);
57
+ expect(subject.components.FooComponent).toBe(FooComponent);
58
+ });
34
59
  });
35
60
 
36
61
  describe('#getComponent', function () {
@@ -0,0 +1,31 @@
1
+ module ReactWebpackRails
2
+ module Install
3
+ require 'generators/react_webpack_rails/merge_helpers'
4
+
5
+ class ViewHelpersGenerator < Rails::Generators::Base
6
+ include MergeHelpers
7
+ desc 'Add View Helpers setup'
8
+ source_root File.expand_path('../../templates', __FILE__)
9
+
10
+ class_option :tmp_package,
11
+ type: :boolean,
12
+ default: false,
13
+ desc: 'Force update tmp/package.json instead package.json'
14
+
15
+ def package
16
+ merge_options = options.tmp_package \
17
+ ? { package_file: 'tmp/package.json', force: true } \
18
+ : {}
19
+ merge_into_package 'packages/view-helpers.json', merge_options
20
+ end
21
+
22
+ def add_rwr_view_helpers
23
+ append_file 'Gemfile' do
24
+ <<-'RB'.strip_heredoc
25
+ gem 'rwr-view_helpers', '~> 0.1.1'
26
+ RB
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -23,14 +23,20 @@ module ReactWebpackRails
23
23
  type: :boolean,
24
24
  default: false,
25
25
  desc: 'Run redux generator'
26
+ class_option :view_helpers,
27
+ type: :boolean,
28
+ default: true,
29
+ desc: 'Run view helpers generator'
26
30
 
27
31
  def generate_core
28
32
  generate 'react_webpack_rails:install:core --tmp-package'
29
33
  end
30
34
 
31
- def generate_hot_reload
32
- return unless options.hot_reload
33
- generate 'react_webpack_rails:install:hot_reload --tmp-package'
35
+ def generate_example
36
+ return unless options.example
37
+ example_generator = 'react_webpack_rails:install:example'
38
+ example_generator += ' --server-side' if options.server_side
39
+ generate example_generator
34
40
  end
35
41
 
36
42
  def generate_server_side
@@ -38,25 +44,28 @@ module ReactWebpackRails
38
44
  generate 'react_webpack_rails:install:server_side --tmp-package'
39
45
  end
40
46
 
47
+ def generate_hot_reload
48
+ return unless options.hot_reload
49
+ generate 'react_webpack_rails:install:hot_reload --tmp-package'
50
+ end
51
+
41
52
  def generate_karma_setup
42
53
  return unless options.karma_setup
43
54
  generate 'react_webpack_rails:install:karma_setup --tmp-package'
44
55
  end
45
56
 
46
- def generate_example
47
- return unless options.example
48
- example_generator = 'react_webpack_rails:install:example'
49
- example_generator += ' --server-side' if options.server_side
50
- generate example_generator
51
- end
52
-
53
57
  def generate_redux
54
58
  return unless options.redux
55
59
  generate 'react_webpack_rails:install:redux --tmp_package'
56
60
  end
57
61
 
62
+ def generate_view_helpers
63
+ return unless options.view_helpers
64
+ generate 'react_webpack_rails:install:view_helpers --tmp_package'
65
+ end
66
+
58
67
  def copy_package
59
- create_file 'package.json', File.read(Rails.root.join('tmp/package.json'))
68
+ create_file 'package.json', File.read(Rails.root.join('tmp', 'package.json'))
60
69
  end
61
70
 
62
71
  def cleanup
@@ -64,7 +73,6 @@ module ReactWebpackRails
64
73
  end
65
74
 
66
75
  def install_gems
67
- return unless options.redux
68
76
  run 'bundle install'
69
77
  end
70
78
 
@@ -0,0 +1,5 @@
1
+ {
2
+ "dependencies": {
3
+ "rwr-view-helpers": "^0.1.1"
4
+ }
5
+ }
@@ -1,38 +1,49 @@
1
- global.__RWR_ENV__ = {};
2
1
  require('babel-core/register');
3
- const IM = require('react-webpack-rails').integrationsManager;
4
2
  require('./index');
5
3
 
4
+ const fs = require('fs');
5
+ const path = require('path');
6
6
  const http = require('http');
7
7
  const dispatcher = require('httpdispatcher');
8
+ const { integrationsManager } = require('react-webpack-rails');
9
+
8
10
  const PORT = 8081;
11
+ const ASSETS_MAPPING_PATH = 'tmp/cache/assets-mapping.json';
9
12
 
10
- function handleRequest(request, response){
11
- try {
12
- console.log(`started: ${request.method} "${request.url}" at ${new Date().toLocaleTimeString()}`);
13
- dispatcher.dispatch(request, response);
14
- } catch(ex) {
15
- console.log(ex)
16
- response.writeHead(500);
17
- response.end(ex.name + ': ' + ex.message);
18
- }
13
+ global.__RWR_ENV__ = {};
14
+ global.__RWR_VIEW_HELPERS__ = { imagePaths: {} };
15
+
16
+ fs.readFile(ASSETS_MAPPING_PATH, (err, data) => {
17
+ if (err) { return err; }
18
+ const imagePaths = data.toString('utf-8');
19
+ global.__RWR_VIEW_HELPERS__.imagePaths = JSON.parse(imagePaths);
20
+ });
21
+
22
+ const handleRequest = (req, res) => {
23
+ const { method, url } = req;
24
+ const reqStartTime = (new Date()).toLocaleTimeString();
25
+
26
+ console.log(`${method} "${url}" - ${reqStartTime}`);
27
+ dispatcher.dispatch(req, res);
19
28
  }
20
29
 
21
- dispatcher.onPost("/run", function(request, response) {
30
+ dispatcher.onPost('/run', (req, res) => {
22
31
  try {
23
- const data = JSON.parse(request.body);
24
- const result = IM.runNodeIntegration(data);
25
- response.writeHead(200, {'Content-Type': 'text/plain'});
26
- response.end(result);
27
- } catch(ex) {
28
- console.log(ex)
29
- response.writeHead(500);
30
- response.end("nodeRun failed:\n" + ex.name + ': ' + ex.message);
31
- }
32
- });
32
+ const data = JSON.parse(req.body);
33
+ const result = integrationsManager.runNodeIntegration(data);
33
34
 
34
- const server = http.createServer(handleRequest);
35
+ res.writeHead(200, { 'Content-Type': 'text/plain' });
36
+ res.end(result);
37
+ } catch(e) {
38
+ console.error(e);
35
39
 
36
- server.listen(PORT, function(){
37
- console.log("Server listening on: http://localhost:%s", PORT);
40
+ res.writeHead(500);
41
+ res.end(`nodeRun failed:\n ${e.name}: ${e.message}`);
42
+ }
38
43
  });
44
+
45
+ http
46
+ .createServer(handleRequest)
47
+ .listen(PORT, () => {
48
+ console.log(`Server listening on: http://localhost:${PORT}`)
49
+ });
@@ -1,3 +1,3 @@
1
1
  module ReactWebpackRails
2
- VERSION = '0.5.0'
2
+ VERSION = '0.6.0'
3
3
  end
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-webpack-rails",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "Js part of react_webpack_rails - webpack based React & Rails integration.",
5
5
  "main": "js/lib/index.js",
6
6
  "files": [
@@ -27,14 +27,10 @@
27
27
  "url": "https://github.com/netguru/react_webpack_rails/issues"
28
28
  },
29
29
  "homepage": "https://github.com/netguru/react_webpack_rails#readme",
30
- "peerDependencies": {
31
- "react": "^15.0.0",
32
- "react-dom": "^15.0.0"
33
- },
34
30
  "dependencies": {
35
31
  "babel-polyfill": "^6.3.0",
36
- "react": "^15.0.1",
37
- "react-dom": "^15.0.1"
32
+ "react": "^15.0.0",
33
+ "react-dom": "^15.0.0"
38
34
  },
39
35
  "devDependencies": {
40
36
  "babel-cli": "^6.10.0",
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.5.0
4
+ version: 0.6.0
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: 2016-07-21 00:00:00.000000000 Z
12
+ date: 2016-08-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -111,6 +111,7 @@ files:
111
111
  - lib/generators/react_webpack_rails/install/karma_setup_generator.rb
112
112
  - lib/generators/react_webpack_rails/install/redux_generator.rb
113
113
  - lib/generators/react_webpack_rails/install/server_side_generator.rb
114
+ - lib/generators/react_webpack_rails/install/view_helpers_generator.rb
114
115
  - lib/generators/react_webpack_rails/install_generator.rb
115
116
  - lib/generators/react_webpack_rails/merge_helpers.rb
116
117
  - lib/generators/react_webpack_rails/package_merge.rb
@@ -126,6 +127,7 @@ files:
126
127
  - lib/generators/react_webpack_rails/templates/packages/js-specs.json
127
128
  - lib/generators/react_webpack_rails/templates/packages/redux.json
128
129
  - lib/generators/react_webpack_rails/templates/packages/server-side.json
130
+ - lib/generators/react_webpack_rails/templates/packages/view-helpers.json
129
131
  - lib/generators/react_webpack_rails/templates/partial/_react_hot_assets.html.erb
130
132
  - lib/generators/react_webpack_rails/templates/react/components/hello-world-test.jsx
131
133
  - lib/generators/react_webpack_rails/templates/react/components/hello-world.jsx