react_on_rails 2.0.0.beta.1 → 2.0.0.beta.2

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 (119) hide show
  1. checksums.yaml +4 -4
  2. data/.coveralls.yml +1 -0
  3. data/.dockerignore +2 -0
  4. data/.eslintignore +7 -0
  5. data/.eslintrc +19 -0
  6. data/.gitignore +28 -0
  7. data/.jscsrc +27 -0
  8. data/.npmignore +20 -0
  9. data/.rspec +2 -0
  10. data/.rubocop.yml +70 -0
  11. data/.scss-lint.yml +205 -0
  12. data/.travis.yml +43 -0
  13. data/CHANGELOG.md +34 -0
  14. data/Dockerfile_tests +12 -0
  15. data/Gemfile +40 -0
  16. data/README.md +365 -0
  17. data/Rakefile +5 -0
  18. data/app/helpers/react_on_rails_helper.rb +215 -0
  19. data/docker-compose.yml +11 -0
  20. data/docs/LICENSE +21 -0
  21. data/docs/additional_reading/heroku_deployment.md +23 -0
  22. data/docs/additional_reading/manual_installation.md +118 -0
  23. data/docs/additional_reading/node_dependencies_and_npm.md +29 -0
  24. data/docs/additional_reading/optional_configuration.md +33 -0
  25. data/docs/additional_reading/react-and-redux.md +36 -0
  26. data/docs/additional_reading/react_router.md +45 -0
  27. data/docs/additional_reading/server_rendering_tips.md +11 -0
  28. data/docs/additional_reading/tips.md +10 -0
  29. data/docs/additional_reading/webpack.md +46 -0
  30. data/docs/code_of_conduct.md +13 -0
  31. data/docs/coding-style/linters.md +64 -0
  32. data/docs/coding-style/style.md +42 -0
  33. data/docs/contributing.md +157 -0
  34. data/docs/generator_testing.md +20 -0
  35. data/docs/releasing.md +29 -0
  36. data/lib/generators/USAGE +99 -0
  37. data/lib/generators/react_on_rails/base_generator.rb +191 -0
  38. data/lib/generators/react_on_rails/bootstrap_generator.rb +89 -0
  39. data/lib/generators/react_on_rails/dev_tests_generator.rb +39 -0
  40. data/lib/generators/react_on_rails/generator_helper.rb +50 -0
  41. data/lib/generators/react_on_rails/heroku_deployment_generator.rb +30 -0
  42. data/lib/generators/react_on_rails/install_generator.rb +99 -0
  43. data/lib/generators/react_on_rails/js_linters_generator.rb +19 -0
  44. data/lib/generators/react_on_rails/react_no_redux_generator.rb +40 -0
  45. data/lib/generators/react_on_rails/react_with_redux_generator.rb +51 -0
  46. data/lib/generators/react_on_rails/ruby_linters_generator.rb +33 -0
  47. data/lib/generators/react_on_rails/templates/base/base/Procfile.dev.tt +4 -0
  48. data/lib/generators/react_on_rails/templates/base/base/REACT_ON_RAILS.md +16 -0
  49. data/lib/generators/react_on_rails/templates/base/base/app/controllers/hello_world_controller.rb +5 -0
  50. data/lib/generators/react_on_rails/templates/base/base/app/views/hello_world/index.html.erb.tt +4 -0
  51. data/lib/generators/react_on_rails/templates/base/base/client/.babelrc +3 -0
  52. data/lib/generators/react_on_rails/templates/base/base/client/REACT_ON_RAILS_CLIENT_README.md +3 -0
  53. data/lib/generators/react_on_rails/templates/base/base/client/app/bundles/HelloWorld/startup/clientRegistration.jsx.tt +5 -0
  54. data/lib/generators/react_on_rails/templates/base/base/client/index.jade +15 -0
  55. data/lib/generators/react_on_rails/templates/base/base/client/package.json.tt +104 -0
  56. data/lib/generators/react_on_rails/templates/base/base/client/server.js +64 -0
  57. data/lib/generators/react_on_rails/templates/base/base/client/webpack.client.base.config.js.tt +62 -0
  58. data/lib/generators/react_on_rails/templates/base/base/client/webpack.client.hot.config.js.tt +69 -0
  59. data/lib/generators/react_on_rails/templates/base/base/client/webpack.client.rails.config.js +42 -0
  60. data/lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb +26 -0
  61. data/lib/generators/react_on_rails/templates/base/base/lib/tasks/assets.rake.tt +26 -0
  62. data/lib/generators/react_on_rails/templates/base/base/lib/tasks/linters.rake.tt +88 -0
  63. data/lib/generators/react_on_rails/templates/base/base/package.json +31 -0
  64. data/lib/generators/react_on_rails/templates/base/server_rendering/client/app/bundles/HelloWorld/startup/serverRegistration.jsx +4 -0
  65. data/lib/generators/react_on_rails/templates/base/server_rendering/client/webpack.server.rails.config.js +39 -0
  66. data/lib/generators/react_on_rails/templates/bootstrap/app/assets/stylesheets/_bootstrap-custom.scss +63 -0
  67. data/lib/generators/react_on_rails/templates/bootstrap/client/assets/stylesheets/_post-bootstrap.scss +10 -0
  68. data/lib/generators/react_on_rails/templates/bootstrap/client/assets/stylesheets/_pre-bootstrap.scss +8 -0
  69. data/lib/generators/react_on_rails/templates/bootstrap/client/assets/stylesheets/_react-on-rails-sass-helper.scss +19 -0
  70. data/lib/generators/react_on_rails/templates/bootstrap/client/bootstrap-sass.config.js +89 -0
  71. data/lib/generators/react_on_rails/templates/dev_tests/.rspec +2 -0
  72. data/lib/generators/react_on_rails/templates/dev_tests/spec/features/hello_world_spec.rb +25 -0
  73. data/lib/generators/react_on_rails/templates/dev_tests/spec/rails_helper.rb +57 -0
  74. data/lib/generators/react_on_rails/templates/dev_tests/spec/simplecov_helper.rb +21 -0
  75. data/lib/generators/react_on_rails/templates/dev_tests/spec/spec_helper.rb +95 -0
  76. data/lib/generators/react_on_rails/templates/heroku_deployment/.buildpacks +2 -0
  77. data/lib/generators/react_on_rails/templates/heroku_deployment/Procfile +1 -0
  78. data/lib/generators/react_on_rails/templates/heroku_deployment/config/puma.rb +15 -0
  79. data/lib/generators/react_on_rails/templates/js_linters/client/.eslintignore +1 -0
  80. data/lib/generators/react_on_rails/templates/js_linters/client/.eslintrc +48 -0
  81. data/lib/generators/react_on_rails/templates/js_linters/client/.jscsrc +18 -0
  82. data/lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx +39 -0
  83. data/lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/containers/HelloWorld.jsx +33 -0
  84. data/lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/startup/HelloWorldAppClient.jsx.tt +8 -0
  85. data/lib/generators/react_on_rails/templates/no_redux/server_rendering/client/app/bundles/HelloWorld/startup/HelloWorldAppServer.jsx +8 -0
  86. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/actions/helloWorldActionCreators.jsx +8 -0
  87. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx +48 -0
  88. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/constants/helloWorldConstants.jsx +8 -0
  89. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/containers/HelloWorld.jsx +43 -0
  90. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/reducers/helloWorldReducer.jsx +19 -0
  91. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/reducers/index.jsx +14 -0
  92. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/startup/HelloWorldAppClient.jsx.tt +19 -0
  93. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/store/helloWorldStore.jsx +35 -0
  94. data/lib/generators/react_on_rails/templates/redux/base/client/app/lib/middlewares/loggerMiddleware.js +20 -0
  95. data/lib/generators/react_on_rails/templates/redux/server_rendering/client/app/bundles/HelloWorld/startup/HelloWorldAppServer.jsx +19 -0
  96. data/lib/generators/react_on_rails/templates/ruby_linters/.rubocop.yml +26 -0
  97. data/lib/generators/react_on_rails/templates/ruby_linters/.scss-lint.yml +205 -0
  98. data/lib/generators/react_on_rails/templates/ruby_linters/lib/tasks/brakeman.rake +17 -0
  99. data/lib/generators/react_on_rails/templates/ruby_linters/lib/tasks/ci.rake +33 -0
  100. data/lib/generators/react_on_rails/templates/ruby_linters/ruby-lint.yml +20 -0
  101. data/lib/react_on_rails.rb +6 -0
  102. data/lib/react_on_rails/configuration.rb +60 -0
  103. data/lib/react_on_rails/engine.rb +7 -0
  104. data/lib/react_on_rails/prerender_error.rb +31 -0
  105. data/lib/react_on_rails/server_rendering_pool.rb +110 -0
  106. data/lib/react_on_rails/version.rb +3 -0
  107. data/package.json +76 -0
  108. data/rakelib/docker.rake +33 -0
  109. data/rakelib/dummy_apps.rake +20 -0
  110. data/rakelib/example_type.rb +160 -0
  111. data/rakelib/examples.rake +103 -0
  112. data/rakelib/examples_config.yml +19 -0
  113. data/rakelib/lint.rake +37 -0
  114. data/rakelib/node_package.rake +11 -0
  115. data/rakelib/run_rspec.rake +65 -0
  116. data/rakelib/task_helpers.rb +44 -0
  117. data/react_on_rails.gemspec +31 -0
  118. data/ruby-lint.yml +24 -0
  119. metadata +119 -2
@@ -0,0 +1,103 @@
1
+ # Defines tasks related to generating example apps using the gem's generator.
2
+ # Allows us to create and test apps generated using a wide range of options.
3
+ #
4
+ # Also see example_type.rb
5
+
6
+ require "yaml"
7
+ require_relative "example_type"
8
+ require_relative "task_helpers"
9
+ include ReactOnRails::TaskHelpers
10
+
11
+ namespace :examples do
12
+ # Loads data from examples_config.yml and instantiates corresponding ExampleType objects
13
+ examples_config_file = File.expand_path("../examples_config.yml", __FILE__)
14
+ examples_config = symbolize_keys(YAML.load(File.read(examples_config_file)))
15
+ examples_config[:example_type_data].each { |example_type_data| ExampleType.new(symbolize_keys(example_type_data)) }
16
+
17
+ # Define tasks for each example type
18
+ ExampleType.all.each do |example_type|
19
+ # GENERATED FILES
20
+ example_type.generated_files.each do |f|
21
+ file f => example_type.source_files do
22
+ Rake::Task[example_type.gen_task_name].invoke
23
+ end
24
+ end
25
+
26
+ # GEMFILE.LOCK
27
+ file example_type.gemfile_lock => example_type.gemfile do
28
+ bundle_install_in(example_type.dir)
29
+ end
30
+
31
+ # WEBPACK BUNDLES
32
+ example_type.webpack_bundles.each do |f|
33
+ file f => example_type.generated_client_files do
34
+ Rake::Task[example_type.build_webpack_bundles_task_name].invoke
35
+ end
36
+ end
37
+
38
+ # BUILD WEBPACK BUNDLES
39
+ task example_type.build_webpack_bundles_task_name_short => example_type.npm_install_task_name do
40
+ sh_in_dir(example_type.client_dir, example_type.build_webpack_bundles_shell_commands)
41
+ end
42
+
43
+ # NPM INSTALL
44
+ task example_type.npm_install_task_name_short => example_type.package_json do
45
+ unless uptodate?(example_type.node_modules_dir, [example_type.source_package_json])
46
+ sh_in_dir(example_type.client_dir, "npm install")
47
+ end
48
+ end
49
+
50
+ # CLEAN
51
+ desc "Cleans #{example_type.name_pretty}"
52
+ task example_type.clean_task_name_short do
53
+ example_type.clean_files.each { |f| rm_rf(f) }
54
+ end
55
+
56
+ # CLOBBER
57
+ desc "Clobbers (deletes) #{example_type.name_pretty}"
58
+ task example_type.clobber_task_name_short do
59
+ rm_rf(example_type.dir)
60
+ end
61
+
62
+ # GENERATE
63
+ desc "Generates #{example_type.name_pretty}"
64
+ task example_type.gen_task_name_short => example_type.clean_task_name do
65
+ mkdir_p(example_type.dir)
66
+ sh_in_dir(examples_dir, "rails new #{example_type.name} #{example_type.rails_options}")
67
+ append_to_gemfile(example_type.gemfile, example_type.required_gems)
68
+ bundle_install_in(example_type.dir)
69
+ sh_in_dir(example_type.dir, example_type.generator_shell_commands)
70
+ end
71
+
72
+ # PREPARE
73
+ desc "Prepares #{example_type.name_pretty} (generates example, `npm install`s, and generates webpack bundles)"
74
+ multitask example_type.prepare_task_name_short => example_type.prepared_files
75
+ end
76
+
77
+ desc "Cleans all example apps"
78
+ multitask clean: ExampleType.all.map(&:clean_task_name)
79
+
80
+ desc "Clobbers (deletes) all example apps"
81
+ task :clobber do
82
+ rm_rf(examples_dir)
83
+ end
84
+
85
+ desc "Generates all example apps"
86
+ multitask gen_all: ExampleType.all.map(&:gen_task_name)
87
+
88
+ desc "Prepares all example apps"
89
+ multitask prepare_all: ExampleType.all.map(&:prepare_task_name)
90
+ end
91
+
92
+ desc "Prepares all example apps. Run `rake -D examples` to see all available options"
93
+ multitask examples: ["examples:prepare_all"]
94
+
95
+ private
96
+
97
+ # Appends each string in an array as a new line of text in the given Gemfile.
98
+ # Automatically adds line returns.
99
+ def append_to_gemfile(gemfile, lines)
100
+ old_text = File.read(gemfile)
101
+ new_text = lines.reduce(old_text) { |a, e| a << "#{e}\n" }
102
+ File.open(gemfile, "w") { |f| f.puts(new_text) }
103
+ end
@@ -0,0 +1,19 @@
1
+ example_type_data:
2
+ -
3
+ name: basic
4
+ generator_options: ""
5
+ -
6
+ name: basic-server-rendering
7
+ generator_options: --server-rendering
8
+ -
9
+ name: redux
10
+ generator_options: --redux --server-rendering
11
+ -
12
+ name: redux-server-rendering
13
+ generator_options: --redux --server-rendering
14
+ -
15
+ name: heroku-deployment
16
+ generator_options: --heroku-deployment
17
+ -
18
+ name: skip-bootstrap
19
+ generator_options: --skip-bootstrap
@@ -0,0 +1,37 @@
1
+ require_relative "task_helpers"
2
+ include ReactOnRails::TaskHelpers
3
+
4
+ namespace :lint do
5
+ desc "Run Rubocop as shell"
6
+ task :rubocop do
7
+ sh_in_dir(gem_root, "rubocop .")
8
+ end
9
+
10
+ desc "Run ruby-lint as shell"
11
+ task :ruby do
12
+ sh_in_dir(gem_root, "ruby-lint app spec lib")
13
+ end
14
+
15
+ desc "Run scss-lint as shell"
16
+ task :scss do
17
+ sh_in_dir(gem_root, "scss-lint spec/dummy/app/assets/stylesheets/")
18
+ end
19
+
20
+ desc "Run eslint as shell"
21
+ task :eslint do
22
+ sh_in_dir(gem_root, "eslint . --ext .jsx and .js")
23
+ end
24
+
25
+ desc "Run jscs from shell"
26
+ task :jscs do
27
+ sh_in_dir(gem_root, "jscs -e -v .")
28
+ end
29
+
30
+ desc "Run all eslint, jscs, rubocop linters. Skip ruby-lint and scss"
31
+ task lint: [:eslint, :jscs, :rubocop] do
32
+ puts "Completed all linting"
33
+ end
34
+ end
35
+
36
+ desc "Runs all linters. Run `rake -D lint` to see all available lint options"
37
+ task lint: ["lint:lint"]
@@ -0,0 +1,11 @@
1
+ require_relative "task_helpers"
2
+ include ReactOnRails::TaskHelpers
3
+
4
+ namespace :node_package do
5
+ task :build do
6
+ sh 'npm run build'
7
+ end
8
+ end
9
+
10
+ desc "Prepares all node_package by building"
11
+ task node_package: ["node_package:build"]
@@ -0,0 +1,65 @@
1
+ require "coveralls/rake/task"
2
+ require "pathname"
3
+
4
+ require_relative "task_helpers"
5
+ require_relative "example_type"
6
+
7
+ include ReactOnRails::TaskHelpers
8
+
9
+ namespace :run_rspec do
10
+ desc "Run RSpec for top level only"
11
+ task :gem do
12
+ run_tests_in("", rspec_args: "spec/react_on_rails")
13
+ end
14
+
15
+ task dummy: ["dummy_apps:dummy_app"] do
16
+ run_tests_in("spec/dummy", env_vars: "DRIVER=selenium_firefox")
17
+ end
18
+
19
+ # Dynamically define Rake tasks for each example app found in the examples directory
20
+ ExampleType.all.each do |example_type|
21
+ desc "Runs RSpec for #{example_type.name_pretty} only"
22
+ task example_type.rspec_task_name_short => example_type.prepare_task_name do
23
+ run_tests_in("#{File.basename(examples_dir)}/#{example_type.name}") # have to use relative path
24
+ end
25
+ end
26
+
27
+ desc "Runs Rspec for example apps only"
28
+ task examples: "examples:prepare_all" do
29
+ ExampleType.all.each { |example_type| Rake::Task[example_type.rspec_task_name].invoke }
30
+ end
31
+
32
+ desc "(HACK) Run RSpec on spec/empty_spec in order to have SimpleCov generate a coverage report from cache"
33
+ task :empty do
34
+ sh %(COVERAGE=true rspec spec/empty_spec.rb)
35
+ end
36
+
37
+ Coveralls::RakeTask.new
38
+
39
+ desc "run all tests"
40
+ task run_rspec: [:gem, :dummy, :examples, :empty, :js_tests, "coveralls:push"] do
41
+ puts "Completed all RSpec tests"
42
+ end
43
+ end
44
+
45
+ desc "js tests (same as 'npm run test')"
46
+ task :js_tests do
47
+ sh "npm run test"
48
+ end
49
+
50
+ desc "Runs all tests. Run `rake -D run_rspec` to see all available test options"
51
+ task run_rspec: ["run_rspec:run_rspec"]
52
+
53
+ private
54
+
55
+ # Runs rspec in the given directory (if string is passed, assumed to be relative
56
+ # to root of the gem.
57
+ # TEST_ENV_COMMAND_NAME is used to make SimpleCov.command_name unique in order to
58
+ # prevent a name collision. Defaults to the given directory's name.
59
+ def run_tests_in(dir, options = {})
60
+ dir = Pathname.new(File.join(gem_root, dir)) if dir.is_a?(String)
61
+ command_name = options.fetch(:command_name, dir.basename)
62
+ rspec_args = options.fetch(:rspec_args, "")
63
+ env_vars = %(#{options.fetch(env_vars, '')} COVERAGE=true TEST_ENV_COMMAND_NAME="#{command_name}")
64
+ sh_in_dir(dir, "#{env_vars} bundle exec rspec #{rspec_args}")
65
+ end
@@ -0,0 +1,44 @@
1
+ module ReactOnRails
2
+ module TaskHelpers
3
+ # Returns the root folder of the react_on_rails gem
4
+ def gem_root
5
+ File.expand_path("../../.", __FILE__)
6
+ end
7
+
8
+ # Returns the folder where examples are located
9
+ def examples_dir
10
+ File.join(gem_root, "examples")
11
+ end
12
+
13
+ def dummy_app_dirs
14
+ File.join(gem_root, "spec/dummy")
15
+ end
16
+
17
+ # Executes a string or an array of strings in a shell in the given directory
18
+ def sh_in_dir(dir, shell_commands)
19
+ shell_commands = [shell_commands] if shell_commands.is_a?(String)
20
+ shell_commands.each { |shell_command| sh %(cd #{dir} && #{shell_command.strip}) }
21
+ end
22
+
23
+ def bundle_install_in(dir)
24
+ sh_in_dir(dir, "bundle install")
25
+ end
26
+
27
+ # Runs bundle exec using that directory's Gemfile
28
+ def bundle_exec(dir:, args:, env_vars: "")
29
+ sh_in_dir(dir, "#{env_vars} #{args}")
30
+ end
31
+
32
+ def generators_source_dir
33
+ File.join(gem_root, "lib/generators/react_on_rails")
34
+ end
35
+
36
+ def symbolize_keys(hash)
37
+ hash.each_with_object({}) do |(key, value), new_hash|
38
+ new_key = key.is_a?(String) ? key.to_sym : key
39
+ new_value = value.is_a?(Hash) ? symbolize_keys(value) : value
40
+ new_hash[new_key] = new_value
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,31 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'react_on_rails/version'
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "react_on_rails"
8
+ s.version = ReactOnRails::VERSION
9
+ s.authors = ["Justin Gordon"]
10
+ s.email = ["justin@shakacode.com"]
11
+
12
+ s.summary = %q{Rails with react server rendering with webpack. }
13
+ s.description = %q{See README.md}
14
+ s.homepage = "https://github.com/shakacode/react_on_rails"
15
+ s.license = "MIT"
16
+
17
+ s.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|examples|node_modules|node_package|coverage)/}) }
18
+ s.bindir = "exe"
19
+ s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
+ s.require_paths = ["lib"]
21
+
22
+ s.add_dependency "rails", ">= 3.2"
23
+ s.add_dependency "execjs", "~> 2.5"
24
+ s.add_dependency "connection_pool"
25
+
26
+ s.add_development_dependency "bundler", "~> 1.10"
27
+ s.add_development_dependency "rake", "~> 10.0"
28
+ s.add_development_dependency "rspec"
29
+ s.add_development_dependency "coveralls"
30
+ s.add_development_dependency "generator_spec"
31
+ end
@@ -0,0 +1,24 @@
1
+ # Not currently using ruby-lint
2
+ ---
3
+ presenter: syntastic
4
+
5
+ directories:
6
+ - app
7
+ - lib
8
+ - spec
9
+
10
+ ignore_paths:
11
+ - client
12
+ - node_modules
13
+ - coverage
14
+ - examples
15
+
16
+ analysis_classes:
17
+ # - argument_amount
18
+ - pedantics
19
+ - shadowing_variables
20
+ # Too many false positives for these
21
+ # - undefined_methods
22
+ # - undefined_variables
23
+ # - unused_variables
24
+ - useless_equality_checks
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: react_on_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.beta.1
4
+ version: 2.0.0.beta.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Gordon
@@ -128,7 +128,124 @@ email:
128
128
  executables: []
129
129
  extensions: []
130
130
  extra_rdoc_files: []
131
- files: []
131
+ files:
132
+ - ".coveralls.yml"
133
+ - ".dockerignore"
134
+ - ".eslintignore"
135
+ - ".eslintrc"
136
+ - ".gitignore"
137
+ - ".jscsrc"
138
+ - ".npmignore"
139
+ - ".rspec"
140
+ - ".rubocop.yml"
141
+ - ".scss-lint.yml"
142
+ - ".travis.yml"
143
+ - CHANGELOG.md
144
+ - Dockerfile_tests
145
+ - Gemfile
146
+ - README.md
147
+ - Rakefile
148
+ - app/helpers/react_on_rails_helper.rb
149
+ - docker-compose.yml
150
+ - docs/LICENSE
151
+ - docs/additional_reading/heroku_deployment.md
152
+ - docs/additional_reading/manual_installation.md
153
+ - docs/additional_reading/node_dependencies_and_npm.md
154
+ - docs/additional_reading/optional_configuration.md
155
+ - docs/additional_reading/react-and-redux.md
156
+ - docs/additional_reading/react_router.md
157
+ - docs/additional_reading/server_rendering_tips.md
158
+ - docs/additional_reading/tips.md
159
+ - docs/additional_reading/webpack.md
160
+ - docs/code_of_conduct.md
161
+ - docs/coding-style/linters.md
162
+ - docs/coding-style/style.md
163
+ - docs/contributing.md
164
+ - docs/generator_testing.md
165
+ - docs/releasing.md
166
+ - lib/generators/USAGE
167
+ - lib/generators/react_on_rails/base_generator.rb
168
+ - lib/generators/react_on_rails/bootstrap_generator.rb
169
+ - lib/generators/react_on_rails/dev_tests_generator.rb
170
+ - lib/generators/react_on_rails/generator_helper.rb
171
+ - lib/generators/react_on_rails/heroku_deployment_generator.rb
172
+ - lib/generators/react_on_rails/install_generator.rb
173
+ - lib/generators/react_on_rails/js_linters_generator.rb
174
+ - lib/generators/react_on_rails/react_no_redux_generator.rb
175
+ - lib/generators/react_on_rails/react_with_redux_generator.rb
176
+ - lib/generators/react_on_rails/ruby_linters_generator.rb
177
+ - lib/generators/react_on_rails/templates/base/base/Procfile.dev.tt
178
+ - lib/generators/react_on_rails/templates/base/base/REACT_ON_RAILS.md
179
+ - lib/generators/react_on_rails/templates/base/base/app/controllers/hello_world_controller.rb
180
+ - lib/generators/react_on_rails/templates/base/base/app/views/hello_world/index.html.erb.tt
181
+ - lib/generators/react_on_rails/templates/base/base/client/.babelrc
182
+ - lib/generators/react_on_rails/templates/base/base/client/REACT_ON_RAILS_CLIENT_README.md
183
+ - lib/generators/react_on_rails/templates/base/base/client/app/bundles/HelloWorld/startup/clientRegistration.jsx.tt
184
+ - lib/generators/react_on_rails/templates/base/base/client/index.jade
185
+ - lib/generators/react_on_rails/templates/base/base/client/package.json.tt
186
+ - 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
188
+ - lib/generators/react_on_rails/templates/base/base/client/webpack.client.hot.config.js.tt
189
+ - lib/generators/react_on_rails/templates/base/base/client/webpack.client.rails.config.js
190
+ - lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb
191
+ - lib/generators/react_on_rails/templates/base/base/lib/tasks/assets.rake.tt
192
+ - lib/generators/react_on_rails/templates/base/base/lib/tasks/linters.rake.tt
193
+ - lib/generators/react_on_rails/templates/base/base/package.json
194
+ - lib/generators/react_on_rails/templates/base/server_rendering/client/app/bundles/HelloWorld/startup/serverRegistration.jsx
195
+ - lib/generators/react_on_rails/templates/base/server_rendering/client/webpack.server.rails.config.js
196
+ - lib/generators/react_on_rails/templates/bootstrap/app/assets/stylesheets/_bootstrap-custom.scss
197
+ - lib/generators/react_on_rails/templates/bootstrap/client/assets/stylesheets/_post-bootstrap.scss
198
+ - lib/generators/react_on_rails/templates/bootstrap/client/assets/stylesheets/_pre-bootstrap.scss
199
+ - lib/generators/react_on_rails/templates/bootstrap/client/assets/stylesheets/_react-on-rails-sass-helper.scss
200
+ - lib/generators/react_on_rails/templates/bootstrap/client/bootstrap-sass.config.js
201
+ - lib/generators/react_on_rails/templates/dev_tests/.rspec
202
+ - lib/generators/react_on_rails/templates/dev_tests/spec/features/hello_world_spec.rb
203
+ - lib/generators/react_on_rails/templates/dev_tests/spec/rails_helper.rb
204
+ - lib/generators/react_on_rails/templates/dev_tests/spec/simplecov_helper.rb
205
+ - lib/generators/react_on_rails/templates/dev_tests/spec/spec_helper.rb
206
+ - lib/generators/react_on_rails/templates/heroku_deployment/.buildpacks
207
+ - lib/generators/react_on_rails/templates/heroku_deployment/Procfile
208
+ - lib/generators/react_on_rails/templates/heroku_deployment/config/puma.rb
209
+ - lib/generators/react_on_rails/templates/js_linters/client/.eslintignore
210
+ - lib/generators/react_on_rails/templates/js_linters/client/.eslintrc
211
+ - 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
+ - lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/containers/HelloWorld.jsx
214
+ - lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/startup/HelloWorldAppClient.jsx.tt
215
+ - lib/generators/react_on_rails/templates/no_redux/server_rendering/client/app/bundles/HelloWorld/startup/HelloWorldAppServer.jsx
216
+ - 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
+ - lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/constants/helloWorldConstants.jsx
219
+ - lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/containers/HelloWorld.jsx
220
+ - lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/reducers/helloWorldReducer.jsx
221
+ - lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/reducers/index.jsx
222
+ - lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/startup/HelloWorldAppClient.jsx.tt
223
+ - lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/store/helloWorldStore.jsx
224
+ - lib/generators/react_on_rails/templates/redux/base/client/app/lib/middlewares/loggerMiddleware.js
225
+ - lib/generators/react_on_rails/templates/redux/server_rendering/client/app/bundles/HelloWorld/startup/HelloWorldAppServer.jsx
226
+ - lib/generators/react_on_rails/templates/ruby_linters/.rubocop.yml
227
+ - lib/generators/react_on_rails/templates/ruby_linters/.scss-lint.yml
228
+ - lib/generators/react_on_rails/templates/ruby_linters/lib/tasks/brakeman.rake
229
+ - lib/generators/react_on_rails/templates/ruby_linters/lib/tasks/ci.rake
230
+ - lib/generators/react_on_rails/templates/ruby_linters/ruby-lint.yml
231
+ - lib/react_on_rails.rb
232
+ - lib/react_on_rails/configuration.rb
233
+ - lib/react_on_rails/engine.rb
234
+ - lib/react_on_rails/prerender_error.rb
235
+ - lib/react_on_rails/server_rendering_pool.rb
236
+ - lib/react_on_rails/version.rb
237
+ - package.json
238
+ - rakelib/docker.rake
239
+ - rakelib/dummy_apps.rake
240
+ - rakelib/example_type.rb
241
+ - rakelib/examples.rake
242
+ - rakelib/examples_config.yml
243
+ - rakelib/lint.rake
244
+ - rakelib/node_package.rake
245
+ - rakelib/run_rspec.rake
246
+ - rakelib/task_helpers.rb
247
+ - react_on_rails.gemspec
248
+ - ruby-lint.yml
132
249
  homepage: https://github.com/shakacode/react_on_rails
133
250
  licenses:
134
251
  - MIT