gnarails 1.0.0 → 2.0.0
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.
- checksums.yaml +4 -4
- data/.circleci/config.yml +21 -90
- data/.ruby-version +1 -1
- data/CHANGELOG.md +50 -0
- data/README.md +1 -34
- data/bin/ci_pronto +1 -1
- data/gnarails.gemspec +2 -3
- data/gnarly.rb +44 -137
- data/lib/gnarails/version.rb +1 -1
- data/templates/.circleci/config.yml +7 -2
- data/templates/Procfile +1 -0
- data/templates/{script → bin}/brakeman +1 -1
- data/templates/{script → bin}/ci_pronto +1 -1
- data/test-app/app/views/layouts/application.html.erb +4 -2
- data/test-app/spec/factories/job_postings.rb +1 -1
- metadata +9 -64
- data/bin/generate-react-test-app.sh +0 -2
- data/templates/.ruby-version +0 -1
- data/templates/Dockerfile-assets +0 -24
- data/templates/docker-compose.yml/docker-compose-webpack.yml +0 -26
- data/templates/react/.babelrc +0 -18
- data/templates/react/.eslintrc.js +0 -45
- data/templates/react/controllers/home_controller.rb +0 -4
- data/templates/react/js/Router/Router.jsx +0 -22
- data/templates/react/js/Router/index.js +0 -3
- data/templates/react/js/api/index.js +0 -17
- data/templates/react/js/api/sessions.js +0 -8
- data/templates/react/js/app_constants/index.js +0 -6
- data/templates/react/js/components/App/App.jsx +0 -15
- data/templates/react/js/components/App/App.tests.jsx +0 -15
- data/templates/react/js/components/App/_styles.scss +0 -3
- data/templates/react/js/components/App/index.js +0 -3
- data/templates/react/js/index.scss +0 -2
- data/templates/react/js/packs/main.jsx +0 -13
- data/templates/react/js/redux/entity_getter.js +0 -7
- data/templates/react/js/redux/history.js +0 -5
- data/templates/react/js/redux/initial_state.js +0 -5
- data/templates/react/js/redux/middlewares/authentication_middleware/authentication_middleware.tests.js +0 -109
- data/templates/react/js/redux/middlewares/authentication_middleware/helpers.js +0 -21
- data/templates/react/js/redux/middlewares/authentication_middleware/helpers.tests.js +0 -84
- data/templates/react/js/redux/middlewares/authentication_middleware/index.js +0 -20
- data/templates/react/js/redux/middlewares/index.js +0 -11
- data/templates/react/js/redux/nodes/app/actions.js +0 -36
- data/templates/react/js/redux/nodes/app/config.js +0 -12
- data/templates/react/js/redux/nodes/app/reducer.js +0 -35
- data/templates/react/js/redux/nodes/app/reducer.tests.js +0 -78
- data/templates/react/js/redux/reducers.js +0 -11
- data/templates/react/js/redux/store.js +0 -14
- data/templates/react/js/storage.js +0 -15
- data/templates/react/js/styles/_variables.scss +0 -1
- data/templates/react/js/test/.setup.js +0 -51
- data/templates/react/js/test/connect_wrapper.jsx +0 -28
- data/templates/react/js/test/create_request_mock.js +0 -29
- data/templates/react/js/test/mock_store.js +0 -12
- data/templates/react/layout.html.erb +0 -16
- data/templates/react/rails_routes.rb +0 -5
- data/templates/react/views/home/default.html.erb +0 -1
@@ -1,11 +0,0 @@
|
|
1
|
-
import { combineReducers } from 'redux';
|
2
|
-
import { reducer as formReducer } from 'redux-form';
|
3
|
-
import { routerReducer } from 'react-router-redux';
|
4
|
-
|
5
|
-
import app from 'redux/nodes/app/reducer';
|
6
|
-
|
7
|
-
export default combineReducers({
|
8
|
-
app,
|
9
|
-
form: formReducer,
|
10
|
-
router: routerReducer,
|
11
|
-
});
|
@@ -1,14 +0,0 @@
|
|
1
|
-
import { applyMiddleware, compose, createStore } from 'redux';
|
2
|
-
import Es6ObjectAssign from 'es6-object-assign';
|
3
|
-
import Es6Promise from 'es6-promise';
|
4
|
-
import middlewares from 'redux/middlewares';
|
5
|
-
import reducers from 'redux/reducers';
|
6
|
-
import InitialState from 'redux/initial_state';
|
7
|
-
|
8
|
-
const appliedMiddleware = applyMiddleware(...middlewares);
|
9
|
-
|
10
|
-
// ie polyfills
|
11
|
-
Es6ObjectAssign.polyfill();
|
12
|
-
Es6Promise.polyfill();
|
13
|
-
|
14
|
-
export default createStore(reducers, InitialState, compose(appliedMiddleware));
|
@@ -1,15 +0,0 @@
|
|
1
|
-
import appConstants from 'app_constants';
|
2
|
-
|
3
|
-
const prefix = appConstants.APP_NAME;
|
4
|
-
|
5
|
-
export default {
|
6
|
-
getItem: (key) => {
|
7
|
-
return global.window.localStorage.getItem(`${prefix}:${key}`);
|
8
|
-
},
|
9
|
-
removeItem: (key) => {
|
10
|
-
return global.window.localStorage.removeItem(`${prefix}:${key}`);
|
11
|
-
},
|
12
|
-
setItem: (key, value) => {
|
13
|
-
return global.window.localStorage.setItem(`${prefix}:${key}`, value);
|
14
|
-
},
|
15
|
-
};
|
@@ -1 +0,0 @@
|
|
1
|
-
$black: #000000;
|
@@ -1,51 +0,0 @@
|
|
1
|
-
var jsdom = require('jsdom').JSDOM;
|
2
|
-
var exposedProperties = ['window', 'navigator', 'document'];
|
3
|
-
var Enzyme = require('enzyme');
|
4
|
-
var Adapter = require('enzyme-adapter-react-16');
|
5
|
-
|
6
|
-
Enzyme.configure({ adapter: new Adapter() });
|
7
|
-
|
8
|
-
jsdom = new jsdom('<!DOCTYPE html><html><body></body></html>');
|
9
|
-
|
10
|
-
global.document = jsdom.window.document;
|
11
|
-
global.window = document.defaultView;
|
12
|
-
|
13
|
-
Object.keys(document.defaultView).forEach((property) => {
|
14
|
-
if (typeof global[property] === 'undefined') {
|
15
|
-
exposedProperties.push(property);
|
16
|
-
global[property] = document.defaultView[property];
|
17
|
-
}
|
18
|
-
});
|
19
|
-
|
20
|
-
function mockStorage() {
|
21
|
-
let storage = {};
|
22
|
-
|
23
|
-
return {
|
24
|
-
setItem(key, value = '') {
|
25
|
-
storage[key] = value;
|
26
|
-
},
|
27
|
-
getItem(key) {
|
28
|
-
return storage[key];
|
29
|
-
},
|
30
|
-
removeItem(key) {
|
31
|
-
delete storage[key];
|
32
|
-
},
|
33
|
-
get length() {
|
34
|
-
return Object.keys(storage).length;
|
35
|
-
},
|
36
|
-
key(i) {
|
37
|
-
return Object.keys(storage)[i] || null;
|
38
|
-
},
|
39
|
-
clear () {
|
40
|
-
storage = {};
|
41
|
-
},
|
42
|
-
};
|
43
|
-
}
|
44
|
-
|
45
|
-
global.navigator = {
|
46
|
-
userAgent: 'node.js'
|
47
|
-
};
|
48
|
-
|
49
|
-
global.window = {
|
50
|
-
localStorage: mockStorage(),
|
51
|
-
};
|
@@ -1,28 +0,0 @@
|
|
1
|
-
import React, { Component } from 'react';
|
2
|
-
import { has } from 'lodash';
|
3
|
-
import { Provider } from 'react-redux';
|
4
|
-
import { MemoryRouter } from 'react-router';
|
5
|
-
|
6
|
-
import createStore from 'test/mock_store';
|
7
|
-
|
8
|
-
const defaultStore = { router: { location: { pathname: '/' } } };
|
9
|
-
|
10
|
-
const connectWrapper = (WrappedComponent, store = defaultStore) => {
|
11
|
-
class Wrapper extends Component {
|
12
|
-
render() {
|
13
|
-
const providerStore = has(store, 'getState') ? store : createStore(store);
|
14
|
-
|
15
|
-
return (
|
16
|
-
<Provider store={providerStore}>
|
17
|
-
<MemoryRouter>
|
18
|
-
<WrappedComponent {...this.props} />
|
19
|
-
</MemoryRouter>
|
20
|
-
</Provider>
|
21
|
-
);
|
22
|
-
}
|
23
|
-
}
|
24
|
-
|
25
|
-
return Wrapper;
|
26
|
-
};
|
27
|
-
|
28
|
-
export default connectWrapper;
|
@@ -1,29 +0,0 @@
|
|
1
|
-
import nock from 'nock';
|
2
|
-
|
3
|
-
const createRequestMock = ({
|
4
|
-
bearerToken,
|
5
|
-
host,
|
6
|
-
method,
|
7
|
-
params,
|
8
|
-
path,
|
9
|
-
responseStatus = 200,
|
10
|
-
response,
|
11
|
-
}) => {
|
12
|
-
const reqheaders = { Authorization: `Bearer ${bearerToken}` };
|
13
|
-
const req = bearerToken ? nock(host, { reqheaders }) : nock(host);
|
14
|
-
|
15
|
-
if (params) {
|
16
|
-
return req[method](path, JSON.stringify(params))
|
17
|
-
.reply(responseStatus, response);
|
18
|
-
}
|
19
|
-
|
20
|
-
if (responseStatus >= 300) {
|
21
|
-
return req[method](path)
|
22
|
-
.replyWithError(response);
|
23
|
-
}
|
24
|
-
|
25
|
-
return req[method](path)
|
26
|
-
.reply(responseStatus, response);
|
27
|
-
};
|
28
|
-
|
29
|
-
export default createRequestMock;
|
@@ -1,12 +0,0 @@
|
|
1
|
-
import configureStore from 'redux-mock-store';
|
2
|
-
import thunkMiddleware from 'redux-thunk';
|
3
|
-
|
4
|
-
import authenticationMiddleware from 'redux/middlewares/authentication_middleware';
|
5
|
-
|
6
|
-
export const middlewares = [thunkMiddleware, authenticationMiddleware];
|
7
|
-
|
8
|
-
export default (store) => {
|
9
|
-
const mockStore = configureStore(middlewares);
|
10
|
-
|
11
|
-
return mockStore(store);
|
12
|
-
};
|
@@ -1,16 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<title>placeholder_application_title</title>
|
5
|
-
<%= csrf_meta_tags %>
|
6
|
-
|
7
|
-
<%= stylesheet_link_tag 'application', media: 'all' %>
|
8
|
-
<%= javascript_include_tag 'application' %>
|
9
|
-
<%= javascript_pack_tag 'main' %>
|
10
|
-
<%= stylesheet_pack_tag 'main' %>
|
11
|
-
</head>
|
12
|
-
|
13
|
-
<body>
|
14
|
-
<div id="react"></div>
|
15
|
-
</body>
|
16
|
-
</html>
|
@@ -1 +0,0 @@
|
|
1
|
-
<div></div>
|