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.
- checksums.yaml +4 -4
- data/.coveralls.yml +1 -0
- data/.dockerignore +2 -0
- data/.eslintignore +7 -0
- data/.eslintrc +19 -0
- data/.gitignore +28 -0
- data/.jscsrc +27 -0
- data/.npmignore +20 -0
- data/.rspec +2 -0
- data/.rubocop.yml +70 -0
- data/.scss-lint.yml +205 -0
- data/.travis.yml +43 -0
- data/CHANGELOG.md +34 -0
- data/Dockerfile_tests +12 -0
- data/Gemfile +40 -0
- data/README.md +365 -0
- data/Rakefile +5 -0
- data/app/helpers/react_on_rails_helper.rb +215 -0
- data/docker-compose.yml +11 -0
- data/docs/LICENSE +21 -0
- data/docs/additional_reading/heroku_deployment.md +23 -0
- data/docs/additional_reading/manual_installation.md +118 -0
- data/docs/additional_reading/node_dependencies_and_npm.md +29 -0
- data/docs/additional_reading/optional_configuration.md +33 -0
- data/docs/additional_reading/react-and-redux.md +36 -0
- data/docs/additional_reading/react_router.md +45 -0
- data/docs/additional_reading/server_rendering_tips.md +11 -0
- data/docs/additional_reading/tips.md +10 -0
- data/docs/additional_reading/webpack.md +46 -0
- data/docs/code_of_conduct.md +13 -0
- data/docs/coding-style/linters.md +64 -0
- data/docs/coding-style/style.md +42 -0
- data/docs/contributing.md +157 -0
- data/docs/generator_testing.md +20 -0
- data/docs/releasing.md +29 -0
- data/lib/generators/USAGE +99 -0
- data/lib/generators/react_on_rails/base_generator.rb +191 -0
- data/lib/generators/react_on_rails/bootstrap_generator.rb +89 -0
- data/lib/generators/react_on_rails/dev_tests_generator.rb +39 -0
- data/lib/generators/react_on_rails/generator_helper.rb +50 -0
- data/lib/generators/react_on_rails/heroku_deployment_generator.rb +30 -0
- data/lib/generators/react_on_rails/install_generator.rb +99 -0
- data/lib/generators/react_on_rails/js_linters_generator.rb +19 -0
- data/lib/generators/react_on_rails/react_no_redux_generator.rb +40 -0
- data/lib/generators/react_on_rails/react_with_redux_generator.rb +51 -0
- data/lib/generators/react_on_rails/ruby_linters_generator.rb +33 -0
- data/lib/generators/react_on_rails/templates/base/base/Procfile.dev.tt +4 -0
- data/lib/generators/react_on_rails/templates/base/base/REACT_ON_RAILS.md +16 -0
- data/lib/generators/react_on_rails/templates/base/base/app/controllers/hello_world_controller.rb +5 -0
- data/lib/generators/react_on_rails/templates/base/base/app/views/hello_world/index.html.erb.tt +4 -0
- data/lib/generators/react_on_rails/templates/base/base/client/.babelrc +3 -0
- data/lib/generators/react_on_rails/templates/base/base/client/REACT_ON_RAILS_CLIENT_README.md +3 -0
- data/lib/generators/react_on_rails/templates/base/base/client/app/bundles/HelloWorld/startup/clientRegistration.jsx.tt +5 -0
- data/lib/generators/react_on_rails/templates/base/base/client/index.jade +15 -0
- data/lib/generators/react_on_rails/templates/base/base/client/package.json.tt +104 -0
- data/lib/generators/react_on_rails/templates/base/base/client/server.js +64 -0
- data/lib/generators/react_on_rails/templates/base/base/client/webpack.client.base.config.js.tt +62 -0
- data/lib/generators/react_on_rails/templates/base/base/client/webpack.client.hot.config.js.tt +69 -0
- data/lib/generators/react_on_rails/templates/base/base/client/webpack.client.rails.config.js +42 -0
- data/lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb +26 -0
- data/lib/generators/react_on_rails/templates/base/base/lib/tasks/assets.rake.tt +26 -0
- data/lib/generators/react_on_rails/templates/base/base/lib/tasks/linters.rake.tt +88 -0
- data/lib/generators/react_on_rails/templates/base/base/package.json +31 -0
- data/lib/generators/react_on_rails/templates/base/server_rendering/client/app/bundles/HelloWorld/startup/serverRegistration.jsx +4 -0
- data/lib/generators/react_on_rails/templates/base/server_rendering/client/webpack.server.rails.config.js +39 -0
- data/lib/generators/react_on_rails/templates/bootstrap/app/assets/stylesheets/_bootstrap-custom.scss +63 -0
- data/lib/generators/react_on_rails/templates/bootstrap/client/assets/stylesheets/_post-bootstrap.scss +10 -0
- data/lib/generators/react_on_rails/templates/bootstrap/client/assets/stylesheets/_pre-bootstrap.scss +8 -0
- data/lib/generators/react_on_rails/templates/bootstrap/client/assets/stylesheets/_react-on-rails-sass-helper.scss +19 -0
- data/lib/generators/react_on_rails/templates/bootstrap/client/bootstrap-sass.config.js +89 -0
- data/lib/generators/react_on_rails/templates/dev_tests/.rspec +2 -0
- data/lib/generators/react_on_rails/templates/dev_tests/spec/features/hello_world_spec.rb +25 -0
- data/lib/generators/react_on_rails/templates/dev_tests/spec/rails_helper.rb +57 -0
- data/lib/generators/react_on_rails/templates/dev_tests/spec/simplecov_helper.rb +21 -0
- data/lib/generators/react_on_rails/templates/dev_tests/spec/spec_helper.rb +95 -0
- data/lib/generators/react_on_rails/templates/heroku_deployment/.buildpacks +2 -0
- data/lib/generators/react_on_rails/templates/heroku_deployment/Procfile +1 -0
- data/lib/generators/react_on_rails/templates/heroku_deployment/config/puma.rb +15 -0
- data/lib/generators/react_on_rails/templates/js_linters/client/.eslintignore +1 -0
- data/lib/generators/react_on_rails/templates/js_linters/client/.eslintrc +48 -0
- data/lib/generators/react_on_rails/templates/js_linters/client/.jscsrc +18 -0
- data/lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx +39 -0
- data/lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/containers/HelloWorld.jsx +33 -0
- data/lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/startup/HelloWorldAppClient.jsx.tt +8 -0
- data/lib/generators/react_on_rails/templates/no_redux/server_rendering/client/app/bundles/HelloWorld/startup/HelloWorldAppServer.jsx +8 -0
- data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/actions/helloWorldActionCreators.jsx +8 -0
- data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx +48 -0
- data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/constants/helloWorldConstants.jsx +8 -0
- data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/containers/HelloWorld.jsx +43 -0
- data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/reducers/helloWorldReducer.jsx +19 -0
- data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/reducers/index.jsx +14 -0
- data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/startup/HelloWorldAppClient.jsx.tt +19 -0
- data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/store/helloWorldStore.jsx +35 -0
- data/lib/generators/react_on_rails/templates/redux/base/client/app/lib/middlewares/loggerMiddleware.js +20 -0
- data/lib/generators/react_on_rails/templates/redux/server_rendering/client/app/bundles/HelloWorld/startup/HelloWorldAppServer.jsx +19 -0
- data/lib/generators/react_on_rails/templates/ruby_linters/.rubocop.yml +26 -0
- data/lib/generators/react_on_rails/templates/ruby_linters/.scss-lint.yml +205 -0
- data/lib/generators/react_on_rails/templates/ruby_linters/lib/tasks/brakeman.rake +17 -0
- data/lib/generators/react_on_rails/templates/ruby_linters/lib/tasks/ci.rake +33 -0
- data/lib/generators/react_on_rails/templates/ruby_linters/ruby-lint.yml +20 -0
- data/lib/react_on_rails.rb +6 -0
- data/lib/react_on_rails/configuration.rb +60 -0
- data/lib/react_on_rails/engine.rb +7 -0
- data/lib/react_on_rails/prerender_error.rb +31 -0
- data/lib/react_on_rails/server_rendering_pool.rb +110 -0
- data/lib/react_on_rails/version.rb +3 -0
- data/package.json +76 -0
- data/rakelib/docker.rake +33 -0
- data/rakelib/dummy_apps.rake +20 -0
- data/rakelib/example_type.rb +160 -0
- data/rakelib/examples.rake +103 -0
- data/rakelib/examples_config.yml +19 -0
- data/rakelib/lint.rake +37 -0
- data/rakelib/node_package.rake +11 -0
- data/rakelib/run_rspec.rake +65 -0
- data/rakelib/task_helpers.rb +44 -0
- data/react_on_rails.gemspec +31 -0
- data/ruby-lint.yml +24 -0
- 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
|
data/rakelib/lint.rake
ADDED
|
@@ -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,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
|
data/ruby-lint.yml
ADDED
|
@@ -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.
|
|
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
|