react_on_rails 1.0.0.pre → 1.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.
Files changed (89) hide show
  1. checksums.yaml +4 -4
  2. data/.dockerignore +2 -0
  3. data/.eslintignore +2 -0
  4. data/.eslintrc +1 -0
  5. data/.gitignore +4 -0
  6. data/.jscsrc +2 -2
  7. data/.rubocop.yml +2 -0
  8. data/.scss-lint.yml +3 -3
  9. data/.travis.yml +31 -18
  10. data/Dockerfile_ci +12 -0
  11. data/Dockerfile_tests +12 -0
  12. data/{LICENSE.txt → LICENSE} +0 -0
  13. data/README.md +170 -290
  14. data/Rakefile +20 -7
  15. data/app/helpers/react_on_rails_helper.rb +5 -5
  16. data/docker-compose.yml +12 -0
  17. data/docs/Contributing.md +26 -2
  18. data/docs/gen-notes/react_syntax.md +3 -0
  19. data/docs/gen-notes/reducers.md +31 -0
  20. data/docs/generator_testing_script.md +50 -0
  21. data/docs/linters.md +8 -0
  22. data/docs/manual_configuration.md +202 -0
  23. data/docs/node_dependencies_and_npm.md +29 -0
  24. data/lib/generators/react_on_rails/base_generator.rb +116 -0
  25. data/lib/generators/react_on_rails/bootstrap_generator.rb +84 -0
  26. data/lib/generators/react_on_rails/generator_helper.rb +48 -0
  27. data/lib/generators/react_on_rails/heroku_deployment_generator.rb +22 -0
  28. data/lib/generators/react_on_rails/install_generator.rb +86 -0
  29. data/lib/generators/react_on_rails/linters_generator.rb +38 -0
  30. data/lib/generators/react_on_rails/react_no_redux_generator.rb +37 -0
  31. data/lib/generators/react_on_rails/react_with_redux_generator.rb +61 -0
  32. data/lib/generators/react_on_rails/templates/base/base/Procfile.dev.tt +4 -0
  33. data/lib/generators/react_on_rails/templates/base/base/REACT_ON_RAILS.md +16 -0
  34. data/lib/generators/react_on_rails/templates/base/base/app/controllers/hello_world_controller.rb +5 -0
  35. data/lib/generators/react_on_rails/templates/base/base/app/views/hello_world/index.html.erb.tt +6 -0
  36. data/lib/generators/react_on_rails/templates/base/base/client/.babelrc +3 -0
  37. data/lib/generators/react_on_rails/templates/base/base/client/REACT_ON_RAILS_CLIENT_README.md +3 -0
  38. data/lib/generators/react_on_rails/templates/base/base/client/app/bundles/HelloWorld/startup/clientGlobals.jsx +4 -0
  39. data/lib/generators/react_on_rails/templates/base/base/client/index.jade +15 -0
  40. data/lib/generators/react_on_rails/templates/base/base/client/npm-shrinkwrap.json +2907 -0
  41. data/lib/generators/react_on_rails/templates/base/base/client/server.js +58 -0
  42. data/lib/generators/react_on_rails/templates/base/base/client/webpack.client.base.config.js +58 -0
  43. data/lib/generators/react_on_rails/templates/base/base/client/webpack.client.hot.config.js +65 -0
  44. data/lib/generators/react_on_rails/templates/base/base/client/webpack.client.rails.config.js +45 -0
  45. data/lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb +30 -0
  46. data/lib/generators/react_on_rails/templates/base/base/lib/tasks/assets.rake +26 -0
  47. data/lib/generators/react_on_rails/templates/base/base/package.json +31 -0
  48. data/lib/generators/react_on_rails/templates/base/server_rendering/client/app/bundles/HelloWorld/startup/serverGlobals.jsx +3 -0
  49. data/lib/generators/react_on_rails/templates/base/server_rendering/client/webpack.server.rails.config.js +37 -0
  50. data/lib/generators/react_on_rails/templates/bootstrap/app/assets/stylesheets/_bootstrap-custom.scss +63 -0
  51. data/lib/generators/react_on_rails/templates/bootstrap/client/assets/stylesheets/_post-bootstrap.scss +10 -0
  52. data/lib/generators/react_on_rails/templates/bootstrap/client/assets/stylesheets/_pre-bootstrap.scss +8 -0
  53. data/lib/generators/react_on_rails/templates/bootstrap/client/assets/stylesheets/_react-on-rails-sass-helper.scss +19 -0
  54. data/lib/generators/react_on_rails/templates/bootstrap/client/bootstrap-sass.config.js +89 -0
  55. data/lib/generators/react_on_rails/templates/client/README.md +97 -0
  56. data/lib/generators/react_on_rails/templates/heroku_deployment/.buildpacks +2 -0
  57. data/lib/generators/react_on_rails/templates/heroku_deployment/Procfile +1 -0
  58. data/lib/generators/react_on_rails/templates/linters/client/.eslintignore +1 -0
  59. data/lib/generators/react_on_rails/templates/linters/client/.eslintrc +17 -0
  60. data/lib/generators/react_on_rails/templates/linters/client/.jscsrc +7 -0
  61. data/lib/generators/react_on_rails/templates/linters/lib/tasks/brakeman.rake +17 -0
  62. data/lib/generators/react_on_rails/templates/linters/lib/tasks/ci.rake +33 -0
  63. data/lib/generators/react_on_rails/templates/linters/lib/tasks/linters.rake +81 -0
  64. data/lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx +39 -0
  65. data/lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/containers/HelloWorld.jsx +33 -0
  66. data/lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/startup/HelloWorldAppClient.jsx +11 -0
  67. data/lib/generators/react_on_rails/templates/no_redux/base/client/package.json.tt +75 -0
  68. data/lib/generators/react_on_rails/templates/no_redux/server_rendering/client/app/bundles/HelloWorld/startup/HelloWorldAppServer.jsx +11 -0
  69. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/actions/helloWorldActionCreators.jsx +8 -0
  70. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx +48 -0
  71. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/constants/helloWorldConstants.jsx +8 -0
  72. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/containers/HelloWorld.jsx +43 -0
  73. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/reducers/helloWorldReducer.jsx +21 -0
  74. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/reducers/index.jsx +14 -0
  75. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/startup/HelloWorldAppClient.jsx +20 -0
  76. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/store/helloWorldStore.jsx +35 -0
  77. data/lib/generators/react_on_rails/templates/redux/base/client/app/lib/middlewares/loggerMiddleware.js +25 -0
  78. data/lib/generators/react_on_rails/templates/redux/base/client/package.json.tt +82 -0
  79. data/lib/generators/react_on_rails/templates/redux/server_rendering/client/app/bundles/HelloWorld/startup/HelloWorldAppServer.jsx +21 -0
  80. data/lib/react_on_rails.rb +1 -7
  81. data/lib/react_on_rails/configuration.rb +14 -5
  82. data/lib/react_on_rails/engine.rb +7 -0
  83. data/lib/react_on_rails/server_rendering_pool.rb +14 -1
  84. data/lib/react_on_rails/version.rb +1 -1
  85. data/react_on_rails.gemspec +2 -2
  86. data/ruby-lint.yml +1 -0
  87. metadata +75 -11
  88. data/Dockerfile +0 -14
  89. data/docs/README.md +0 -1
@@ -0,0 +1,58 @@
1
+ // This file is used by the webpack HMR dev server to load your component without using Rails
2
+ // It should simply match routes to basic HTML or jade files that render your component
3
+ /* eslint-disable no-console, func-names, no-var */
4
+ var bodyParser = require('body-parser');
5
+ var webpack = require('webpack');
6
+ var WebpackDevServer = require('webpack-dev-server');
7
+ var jade = require('jade');
8
+ var sleep = require('sleep');
9
+ var config = require('./webpack.client.hot.config');
10
+
11
+ var server = new WebpackDevServer(webpack(config), {
12
+ publicPath: config.output.publicPath,
13
+ hot: true,
14
+ historyApiFallback: true,
15
+ stats: {
16
+ colors: true,
17
+ hash: false,
18
+ version: false,
19
+ chunks: false,
20
+ children: false,
21
+ },
22
+ });
23
+
24
+ // See tutorial for example of using AJAX:
25
+ // https://github.com/shakacode/react-webpack-rails-tutorial
26
+
27
+ // server.app.use(bodyParser.json(null));
28
+ // server.app.use(bodyParser.urlencoded({extended: true}));
29
+ // server.app.get('/hello_world.json', function(req, res) {
30
+ // res.setHeader('Content-Type', 'application/json');
31
+ // res.send(JSON.stringify(name));
32
+ // });
33
+
34
+ // server.app.post('/hello_world.json', function(req, res) {
35
+ // console.log('Processing name: %j', req.body.name);
36
+ // console.log('(shhhh...napping 1 seconds)');
37
+ // sleep.sleep(1);
38
+ // console.log('Just got done with nap!');
39
+ // name = req.body.name;
40
+ // res.setHeader('Content-Type', 'application/json');
41
+ // res.send(JSON.stringify(req.body.name));
42
+ // });
43
+
44
+ var initialName = 'Stranger';
45
+
46
+ server.app.use('/', function(req, res) {
47
+ var locals = {
48
+ props: JSON.stringify(initialName),
49
+ };
50
+ var layout = process.cwd() + '/index.jade';
51
+ var html = jade.compileFile(layout, { pretty: true })(locals);
52
+ res.send(html);
53
+ });
54
+
55
+ server.listen(4000, 'localhost', function(err) {
56
+ if (err) console.log(err);
57
+ console.log('Listening at localhost:4000...');
58
+ });
@@ -0,0 +1,58 @@
1
+ // Common client-side webpack configuration used by webpack.hot.config and webpack.rails.config.
2
+
3
+ const webpack = require('webpack');
4
+ const path = require('path');
5
+
6
+ module.exports = {
7
+
8
+ // the project dir
9
+ context: __dirname,
10
+ entry: {
11
+
12
+ // See use of 'vendor' in the CommonsChunkPlugin inclusion below.
13
+ vendor: [
14
+ 'babel-core/polyfill',
15
+ 'jquery',
16
+ 'jquery-ujs',
17
+ 'react',
18
+ 'react-dom',
19
+ ],
20
+
21
+ // This will contain the app entry points defined by webpack.hot.config and webpack.rails.config
22
+ app: [
23
+ './app/bundles/HelloWorld/startup/clientGlobals',
24
+ ],
25
+ },
26
+ resolve: {
27
+ extensions: ['', '.webpack.js', '.web.js', '.js', '.jsx', '.scss', '.css', 'config.js'],
28
+ alias: {
29
+ lib: path.join(process.cwd(), 'app', 'lib'),
30
+ },
31
+ },
32
+ plugins: [
33
+
34
+ // https://webpack.github.io/docs/list-of-plugins.html#2-explicit-vendor-chunk
35
+ new webpack.optimize.CommonsChunkPlugin({
36
+
37
+ // This name 'vendor' ties into the entry definition
38
+ name: 'vendor',
39
+
40
+ // We don't want the default vendor.js name
41
+ filename: 'vendor-bundle.js',
42
+
43
+ // Passing Infinity just creates the commons chunk, but moves no modules into it.
44
+ // In other words, we only put what's in the vendor entry definition in vendor-bundle.js
45
+ minChunks: Infinity,
46
+ }),
47
+ ],
48
+ module: {
49
+ loaders: [
50
+
51
+ // React is necessary for the client rendering:
52
+ {test: require.resolve('react'), loader: 'expose?React'},
53
+ {test: require.resolve('react-dom'), loader: 'expose?ReactDOM'},
54
+ {test: require.resolve('jquery'), loader: 'expose?jQuery'},
55
+ {test: require.resolve('jquery'), loader: 'expose?$'},
56
+ ],
57
+ },
58
+ };
@@ -0,0 +1,65 @@
1
+ // This config file setups up the Webpack Dev Server: https://webpack.github.io/docs/webpack-dev-server.html
2
+ // Run like this:
3
+ // cd client && node server.js
4
+
5
+ const webpack = require('webpack');
6
+ const path = require('path');
7
+ const config = require('./webpack.client.base.config');
8
+
9
+ config.entry.app.push(
10
+
11
+ // Webpack dev server
12
+ 'webpack-dev-server/client?http://localhost:4000',
13
+ 'webpack/hot/dev-server',
14
+
15
+ // See: https://github.com/shakacode/bootstrap-sass-loader
16
+ // We're using the bootstrap-sass loader.
17
+ 'bootstrap-sass!./bootstrap-sass.config.js'
18
+ );
19
+
20
+ config.output = {
21
+
22
+ // this file is served directly by webpack
23
+ filename: '[name]-bundle.js',
24
+ path: __dirname,
25
+ };
26
+ config.plugins.unshift(new webpack.HotModuleReplacementPlugin());
27
+ config.devtool = 'eval-source-map';
28
+
29
+ // All the styling loaders only apply to hot-reload, not rails
30
+ config.module.loaders.push(
31
+ {
32
+ test: /\.jsx?$/,
33
+ loader: 'babel',
34
+ exclude: /node_modules/,
35
+ query: {
36
+ plugins: ['react-transform'],
37
+ extra: {
38
+ 'react-transform': {
39
+ transforms: [
40
+ {
41
+ transform: 'react-transform-hmr',
42
+ imports: ['react'],
43
+ locals: ['module'],
44
+ },
45
+ ],
46
+ },
47
+ },
48
+ },
49
+ },
50
+ {test: /\.css$/, loader: 'style-loader!css-loader'},
51
+ {
52
+ test: /\.scss$/,
53
+ loader: 'style!css!sass?outputStyle=expanded&imagePath=/assets/images&includePaths[]=' +
54
+ path.resolve(__dirname, './assets/stylesheets'),
55
+ },
56
+
57
+ // The url-loader uses DataUrls. The file-loader emits files.
58
+ {test: /\.woff$/, loader: 'url-loader?limit=10000&mimetype=application/font-woff'},
59
+ {test: /\.woff2$/, loader: 'url-loader?limit=10000&mimetype=application/font-woff'},
60
+ {test: /\.ttf$/, loader: 'file-loader'},
61
+ {test: /\.eot$/, loader: 'file-loader'},
62
+ {test: /\.svg$/, loader: 'file-loader'}
63
+ );
64
+
65
+ module.exports = config;
@@ -0,0 +1,45 @@
1
+ // Run like this:
2
+ // cd client && npm run build:dev
3
+ // Note that Foreman (Procfile.dev) has also been configured to take care of this.
4
+
5
+ // NOTE: All style sheets handled by the asset pipeline in rails
6
+
7
+ const webpack = require('webpack');
8
+ const config = require('./webpack.client.base.config');
9
+
10
+ const devBuild = process.env.NODE_ENV !== 'production';
11
+
12
+ config.output = {
13
+ filename: '[name]-bundle.js',
14
+ path: '../app/assets/javascripts/generated',
15
+ };
16
+
17
+ // You can add entry points specific to rails here
18
+ config.entry.vendor.unshift(
19
+ 'es5-shim/es5-shim',
20
+ 'es5-shim/es5-sham'
21
+ );
22
+
23
+ // See webpack.common.config for adding modules common to both the webpack dev server and rails
24
+
25
+ config.module.loaders.push(
26
+ {test: /\.jsx?$/, loader: 'babel-loader', exclude: /node_modules/},
27
+ {test: require.resolve('react'), loader: 'imports?shim=es5-shim/es5-shim&sham=es5-shim/es5-sham'}
28
+ );
29
+
30
+ module.exports = config;
31
+
32
+ if (devBuild) {
33
+ console.log('Webpack dev build for Rails'); // eslint-disable-line no-console
34
+ module.exports.devtool = 'eval-source-map';
35
+ } else {
36
+ config.plugins.push(
37
+ new webpack.DefinePlugin({
38
+ 'process.env': {
39
+ NODE_ENV: JSON.stringify('production'),
40
+ },
41
+ }),
42
+ new webpack.optimize.DedupePlugin()
43
+ );
44
+ console.log('Webpack production build for Rails'); // eslint-disable-line no-console
45
+ }
@@ -0,0 +1,30 @@
1
+ # Shown below are the defaults for configuration
2
+ ReactOnRails.configure do |config|
3
+ # Client bundles are configured in application.js
4
+
5
+ # Server rendering:
6
+ # Server bundle is a single file for all server rendering of components.
7
+ # It is important to set this to "" if you are not doing server rendering to avoid an extraneous log warning
8
+ # that the default file of server-bundle.js does not exist.
9
+ config.server_bundle_js_file = "app/assets/javascripts/generated/server-bundle.js" # This is the default
10
+ # increase if you're on JRuby
11
+ config.server_renderer_pool_size = 1
12
+ # seconds
13
+ config.server_renderer_timeout = 20
14
+ # If set to true, this forces Rails to reload the server bundle if it is modified
15
+ config.reload_server_js_every_request = Rails.env.development?
16
+ # For server rendering. This can be set to false so that server side messages are discarded.
17
+ # Default is true. Be cautious about turning this off.
18
+ config.replay_console = true
19
+ # Default is true. Logs server rendering messags to Rails.logger.info
20
+ config.logging_on_server = true
21
+
22
+ # The following options can be overriden by passing to the helper method:
23
+
24
+ # Default is false
25
+ config.prerender = false
26
+ # Default is false, meaning that you expose ReactComponents directly
27
+ config.generator_function = false
28
+ # Default is true for development, off otherwise
29
+ config.trace = Rails.env.development?
30
+ end
@@ -0,0 +1,26 @@
1
+ # lib/tasks/assets.rake
2
+ # The webpack task must run before assets:environment task.
3
+ # Otherwise Sprockets cannot find the files that webpack produces.
4
+ # This is the secret sauce for how a Heroku deployment knows to create the webpack generated JavaScript files.
5
+ Rake::Task["assets:precompile"]
6
+ .clear_prerequisites
7
+ .enhance(["assets:compile_environment"])
8
+
9
+ namespace :assets do
10
+ # In this task, set prerequisites for the assets:precompile task
11
+ task compile_environment: :webpack do
12
+ Rake::Task["assets:environment"].invoke
13
+ end
14
+
15
+ desc "Compile assets with webpack"
16
+ task :webpack do
17
+ sh "cd client && npm run build:client"
18
+ sh "cd client && npm run build:server"
19
+ end
20
+
21
+ task :clobber do
22
+ rm_rf "#{Rails.application.config.root}/app/assets/javascripts/generated/vendor-bundle.js"
23
+ rm_rf "#{Rails.application.config.root}/app/assets/javascripts/generated/client-bundle.js"
24
+ rm_rf "#{Rails.application.config.root}/app/assets/javascripts/generated/server-bundle.js"
25
+ end
26
+ end
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "react-webpack-rails-tutorial",
3
+ "version": "1.1.1",
4
+ "description": "Built using the react_on_rails generator. Allows you to run npm install from root.",
5
+ "main": "server.js",
6
+ "engines": {
7
+ "node": "4.2.0",
8
+ "npm": "3.3.6"
9
+ },
10
+ "scripts": {
11
+ "postinstall": "cd client && npm install",
12
+ "test": "rspec && (cd client && npm run lint)"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "https://github.com/shakacode/react-webpack-rails-tutorial.git"
17
+ },
18
+ "keywords": [
19
+ "react",
20
+ "tutorial",
21
+ "comment",
22
+ "example"
23
+ ],
24
+ "author": "justin808",
25
+ "license": "MIT",
26
+ "bugs": {
27
+ "url": "https://github.com/shakacode/react-webpack-rails-tutorial/issues"
28
+ },
29
+ "homepage": "https://github.com/shakacode/react-webpack-rails-tutorial",
30
+ "dependencies": {}
31
+ }
@@ -0,0 +1,3 @@
1
+ import HelloWorldAppServer from './HelloWorldAppServer';
2
+
3
+ global.HelloWorldApp = HelloWorldAppServer;
@@ -0,0 +1,37 @@
1
+ // Wbpack configuration for server bundle
2
+
3
+ const webpack = require('webpack');
4
+ const path = require('path');
5
+
6
+ module.exports = {
7
+
8
+ // the project dir
9
+ context: __dirname,
10
+ entry: ['./app/bundles/HelloWorld/startup/serverGlobals'],
11
+ output: {
12
+ filename: 'server-bundle.js',
13
+ path: '../app/assets/javascripts/generated',
14
+ },
15
+ resolve: {
16
+ extensions: ['', '.webpack.js', '.web.js', '.js', '.jsx', 'config.js'],
17
+ alias: {
18
+ lib: path.join(process.cwd(), 'app', 'lib'),
19
+ },
20
+ },
21
+ plugins: [
22
+ new webpack.DefinePlugin({
23
+ 'process.env': {
24
+ NODE_ENV: JSON.stringify('production'),
25
+ },
26
+ }),
27
+ ],
28
+ module: {
29
+ loaders: [
30
+ {test: /\.jsx?$/, loader: 'babel-loader', exclude: /node_modules/},
31
+
32
+ // React is necessary for the client rendering:
33
+ {test: require.resolve('react'), loader: 'expose?React'},
34
+ {test: require.resolve('react-dom/server'), loader: 'expose?ReactDOMServer'},
35
+ ],
36
+ },
37
+ };
@@ -0,0 +1,63 @@
1
+ // This file loads Bootstrap by importing components explicitly instead of doing `@import 'bootstrap';`
2
+ // Doing so allows for customization of exactly which components are imported.
3
+ // The components themselves are made available via bootstrap-sass (https://github.com/twbs/bootstrap-sass#sass)
4
+
5
+ // IMPORTANT: Make sure to keep the customizations defined in this file
6
+ // in-sync with the ones defined in client/bootstrap-sass.config.js.
7
+
8
+ // For a reference on customizations,refer to:
9
+ // https://github.com/twbs/bootstrap-sass/blob/master/assets/stylesheets/_bootstrap.scss
10
+
11
+ // If you are looking to merely change bootstrap variables from their default,
12
+ // you should instead declare them in client/assets/stylesheets/_post-bootstrap.scss
13
+
14
+ // Core variables and mixins
15
+ @import 'bootstrap/variables';
16
+ @import 'bootstrap/mixins';
17
+
18
+ // Reset and dependencies
19
+ @import 'bootstrap/normalize';
20
+ @import 'bootstrap/print';
21
+ @import 'bootstrap/glyphicons';
22
+
23
+ // Core CSS
24
+ @import 'bootstrap/scaffolding';
25
+ @import 'bootstrap/type';
26
+ @import 'bootstrap/code';
27
+ @import 'bootstrap/grid';
28
+ @import 'bootstrap/tables';
29
+ @import 'bootstrap/forms';
30
+ @import 'bootstrap/buttons';
31
+
32
+ // Components
33
+ @import 'bootstrap/component-animations';
34
+ @import 'bootstrap/dropdowns';
35
+ @import 'bootstrap/button-groups';
36
+ @import 'bootstrap/input-groups';
37
+ @import 'bootstrap/navs';
38
+ @import 'bootstrap/navbar';
39
+ @import 'bootstrap/breadcrumbs';
40
+ @import 'bootstrap/pagination';
41
+ @import 'bootstrap/pager';
42
+ @import 'bootstrap/labels';
43
+ @import 'bootstrap/badges';
44
+ @import 'bootstrap/jumbotron';
45
+ @import 'bootstrap/thumbnails';
46
+ @import 'bootstrap/alerts';
47
+ @import 'bootstrap/progress-bars';
48
+ @import 'bootstrap/media';
49
+ @import 'bootstrap/list-group';
50
+ @import 'bootstrap/panels';
51
+ @import 'bootstrap/responsive-embed';
52
+ @import 'bootstrap/wells';
53
+ @import 'bootstrap/close';
54
+
55
+ // Components w/ JavaScript
56
+ @import 'bootstrap/modals';
57
+ @import 'bootstrap/tooltip';
58
+ @import 'bootstrap/popovers';
59
+ @import 'bootstrap/carousel';
60
+
61
+ // Utility classes
62
+ @import 'bootstrap/utilities';
63
+ @import 'bootstrap/responsive-utilities';
@@ -0,0 +1,10 @@
1
+ // The Rails server imports this file via app/assets/stylesheets/application.css.scss
2
+ // The webpack HMR dev server loads this file via client/bootstrap-sass.config.js
3
+
4
+ // In either case, this file is loaded AFTER bootstrap has been loaded.
5
+ // This is where you can add your own styles and override bootstrap styles
6
+ // utilizing bootstrap variables and mixins.
7
+
8
+ .this-works {
9
+ color: orange !important;
10
+ }
@@ -0,0 +1,8 @@
1
+ // The Rails server imports this file via app/assets/stylesheets/application.css.scss
2
+ // The webpack HMR dev server loads this file via client/bootstrap-sass.config.js
3
+
4
+ // In either case, this file is loaded BEFORE bootstrap has been loaded.
5
+ // Use it to define variables BEFORE bootstrap loads. See http://getbootstrap.com/customize/
6
+
7
+ // This is a file that provides a fallback for `img-url` and fonts
8
+ @import 'react-on-rails-sass-helper';