react_on_rails 1.2.2 → 2.0.0.beta.1

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 (123) hide show
  1. checksums.yaml +4 -4
  2. metadata +5 -126
  3. data/.babelrc +0 -3
  4. data/.coveralls.yml +0 -1
  5. data/.dockerignore +0 -2
  6. data/.eslintignore +0 -5
  7. data/.eslintrc +0 -48
  8. data/.gitignore +0 -26
  9. data/.jscsrc +0 -26
  10. data/.rspec +0 -2
  11. data/.rubocop.yml +0 -70
  12. data/.scss-lint.yml +0 -205
  13. data/.travis.yml +0 -41
  14. data/CHANGELOG.md +0 -42
  15. data/Dockerfile_tests +0 -12
  16. data/Gemfile +0 -38
  17. data/README.md +0 -363
  18. data/Rakefile +0 -5
  19. data/app/assets/javascripts/react_on_rails.js +0 -241
  20. data/app/helpers/react_on_rails_helper.rb +0 -224
  21. data/docker-compose.yml +0 -11
  22. data/docs/LICENSE +0 -21
  23. data/docs/additional_reading/heroku_deployment.md +0 -23
  24. data/docs/additional_reading/manual_installation.md +0 -142
  25. data/docs/additional_reading/node_dependencies_and_npm.md +0 -29
  26. data/docs/additional_reading/optional_configuration.md +0 -34
  27. data/docs/additional_reading/react-and-redux.md +0 -36
  28. data/docs/additional_reading/react_router.md +0 -45
  29. data/docs/additional_reading/server_rendering_tips.md +0 -16
  30. data/docs/additional_reading/tips.md +0 -10
  31. data/docs/additional_reading/webpack.md +0 -46
  32. data/docs/code_of_conduct.md +0 -13
  33. data/docs/coding-style/linters.md +0 -64
  34. data/docs/coding-style/style.md +0 -42
  35. data/docs/contributing.md +0 -62
  36. data/docs/generator_testing.md +0 -20
  37. data/docs/install_and_releasing.md +0 -24
  38. data/docs/sample_generated_js/README.md +0 -4
  39. data/docs/sample_generated_js/client-generated.js +0 -12
  40. data/docs/sample_generated_js/server-generated.js +0 -25
  41. data/lib/generators/USAGE +0 -99
  42. data/lib/generators/react_on_rails/base_generator.rb +0 -198
  43. data/lib/generators/react_on_rails/bootstrap_generator.rb +0 -91
  44. data/lib/generators/react_on_rails/dev_tests_generator.rb +0 -30
  45. data/lib/generators/react_on_rails/generator_errors.rb +0 -15
  46. data/lib/generators/react_on_rails/generator_helper.rb +0 -58
  47. data/lib/generators/react_on_rails/heroku_deployment_generator.rb +0 -30
  48. data/lib/generators/react_on_rails/install_generator.rb +0 -111
  49. data/lib/generators/react_on_rails/js_linters_generator.rb +0 -19
  50. data/lib/generators/react_on_rails/react_no_redux_generator.rb +0 -41
  51. data/lib/generators/react_on_rails/react_with_redux_generator.rb +0 -52
  52. data/lib/generators/react_on_rails/ruby_linters_generator.rb +0 -33
  53. data/lib/generators/react_on_rails/templates/base/base/Procfile.dev.tt +0 -4
  54. data/lib/generators/react_on_rails/templates/base/base/REACT_ON_RAILS.md +0 -16
  55. data/lib/generators/react_on_rails/templates/base/base/app/controllers/hello_world_controller.rb +0 -5
  56. data/lib/generators/react_on_rails/templates/base/base/app/views/hello_world/index.html.erb.tt +0 -5
  57. data/lib/generators/react_on_rails/templates/base/base/client/.babelrc +0 -3
  58. data/lib/generators/react_on_rails/templates/base/base/client/REACT_ON_RAILS_CLIENT_README.md +0 -3
  59. data/lib/generators/react_on_rails/templates/base/base/client/app/bundles/HelloWorld/startup/globals.jsx.tt +0 -5
  60. data/lib/generators/react_on_rails/templates/base/base/client/index.jade +0 -15
  61. data/lib/generators/react_on_rails/templates/base/base/client/npm-shrinkwrap.json +0 -2907
  62. data/lib/generators/react_on_rails/templates/base/base/client/package.json.tt +0 -98
  63. data/lib/generators/react_on_rails/templates/base/base/client/server.js +0 -64
  64. data/lib/generators/react_on_rails/templates/base/base/client/webpack.client.base.config.js.tt +0 -67
  65. data/lib/generators/react_on_rails/templates/base/base/client/webpack.client.hot.config.js.tt +0 -67
  66. data/lib/generators/react_on_rails/templates/base/base/client/webpack.client.rails.config.js +0 -41
  67. data/lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb +0 -28
  68. data/lib/generators/react_on_rails/templates/base/base/lib/tasks/assets.rake.tt +0 -26
  69. data/lib/generators/react_on_rails/templates/base/base/lib/tasks/linters.rake.tt +0 -88
  70. data/lib/generators/react_on_rails/templates/base/base/package.json +0 -31
  71. data/lib/generators/react_on_rails/templates/base/server_rendering/client/app/bundles/HelloWorld/startup/serverGlobals.jsx +0 -3
  72. data/lib/generators/react_on_rails/templates/base/server_rendering/client/webpack.server.rails.config.js +0 -40
  73. data/lib/generators/react_on_rails/templates/bootstrap/app/assets/stylesheets/_bootstrap-custom.scss +0 -63
  74. data/lib/generators/react_on_rails/templates/bootstrap/client/assets/stylesheets/_post-bootstrap.scss +0 -10
  75. data/lib/generators/react_on_rails/templates/bootstrap/client/assets/stylesheets/_pre-bootstrap.scss +0 -8
  76. data/lib/generators/react_on_rails/templates/bootstrap/client/assets/stylesheets/_react-on-rails-sass-helper.scss +0 -19
  77. data/lib/generators/react_on_rails/templates/bootstrap/client/bootstrap-sass.config.js +0 -89
  78. data/lib/generators/react_on_rails/templates/dev_tests/.rspec +0 -2
  79. data/lib/generators/react_on_rails/templates/dev_tests/spec/features/hello_world_spec.rb +0 -25
  80. data/lib/generators/react_on_rails/templates/dev_tests/spec/rails_helper.rb +0 -57
  81. data/lib/generators/react_on_rails/templates/dev_tests/spec/simplecov_helper.rb +0 -21
  82. data/lib/generators/react_on_rails/templates/dev_tests/spec/spec_helper.rb +0 -95
  83. data/lib/generators/react_on_rails/templates/heroku_deployment/.buildpacks +0 -2
  84. data/lib/generators/react_on_rails/templates/heroku_deployment/Procfile +0 -1
  85. data/lib/generators/react_on_rails/templates/heroku_deployment/config/puma.rb +0 -15
  86. data/lib/generators/react_on_rails/templates/js_linters/client/.eslintignore +0 -1
  87. data/lib/generators/react_on_rails/templates/js_linters/client/.eslintrc +0 -48
  88. data/lib/generators/react_on_rails/templates/js_linters/client/.jscsrc +0 -18
  89. data/lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx +0 -39
  90. data/lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/containers/HelloWorld.jsx +0 -33
  91. data/lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/startup/HelloWorldAppClient.jsx.tt +0 -12
  92. data/lib/generators/react_on_rails/templates/no_redux/server_rendering/client/app/bundles/HelloWorld/startup/HelloWorldAppServer.jsx +0 -11
  93. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/actions/helloWorldActionCreators.jsx +0 -8
  94. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx +0 -48
  95. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/constants/helloWorldConstants.jsx +0 -8
  96. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/containers/HelloWorld.jsx +0 -43
  97. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/reducers/helloWorldReducer.jsx +0 -21
  98. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/reducers/index.jsx +0 -14
  99. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/startup/HelloWorldAppClient.jsx.tt +0 -21
  100. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/store/helloWorldStore.jsx +0 -35
  101. data/lib/generators/react_on_rails/templates/redux/base/client/app/lib/middlewares/loggerMiddleware.js +0 -20
  102. data/lib/generators/react_on_rails/templates/redux/server_rendering/client/app/bundles/HelloWorld/startup/HelloWorldAppServer.jsx +0 -21
  103. data/lib/generators/react_on_rails/templates/ruby_linters/.rubocop.yml +0 -26
  104. data/lib/generators/react_on_rails/templates/ruby_linters/.scss-lint.yml +0 -205
  105. data/lib/generators/react_on_rails/templates/ruby_linters/lib/tasks/brakeman.rake +0 -17
  106. data/lib/generators/react_on_rails/templates/ruby_linters/lib/tasks/ci.rake +0 -33
  107. data/lib/generators/react_on_rails/templates/ruby_linters/ruby-lint.yml +0 -20
  108. data/lib/react_on_rails.rb +0 -6
  109. data/lib/react_on_rails/configuration.rb +0 -53
  110. data/lib/react_on_rails/engine.rb +0 -7
  111. data/lib/react_on_rails/prerender_error.rb +0 -31
  112. data/lib/react_on_rails/server_rendering_pool.rb +0 -111
  113. data/lib/react_on_rails/version.rb +0 -3
  114. data/rakelib/docker.rake +0 -33
  115. data/rakelib/dummy_apps.rake +0 -29
  116. data/rakelib/example_type.rb +0 -160
  117. data/rakelib/examples.rake +0 -103
  118. data/rakelib/examples_config.yml +0 -19
  119. data/rakelib/lint.rake +0 -37
  120. data/rakelib/run_rspec.rake +0 -65
  121. data/rakelib/task_helpers.rb +0 -44
  122. data/react_on_rails.gemspec +0 -31
  123. data/ruby-lint.yml +0 -24
@@ -1,91 +0,0 @@
1
- require "rails/generators"
2
- require File.expand_path("../generator_helper", __FILE__)
3
- require File.expand_path("../generator_errors", __FILE__)
4
- include GeneratorHelper
5
- include GeneratorErrors
6
-
7
- module ReactOnRails
8
- module Generators
9
- class BootstrapGenerator < Rails::Generators::Base
10
- Rails::Generators.hide_namespace(namespace)
11
- source_root(File.expand_path("../templates", __FILE__))
12
-
13
- def copy_bootstrap_files
14
- base_path = "bootstrap/"
15
- %w(app/assets/stylesheets/_bootstrap-custom.scss
16
- client/assets/stylesheets/_post-bootstrap.scss
17
- client/assets/stylesheets/_pre-bootstrap.scss
18
- client/assets/stylesheets/_react-on-rails-sass-helper.scss
19
- client/bootstrap-sass.config.js).each { |file| copy_file(base_path + file, file) }
20
- end
21
-
22
- # if there still is not application.scss, just create one
23
- def create_application_scss_if_necessary
24
- path = File.join(destination_root, "app/assets/stylesheets/application.scss")
25
- return if File.exist?(path)
26
- File.open(path, "w") { |f| f.puts "// Created by React on Rails gem\n\n" }
27
- end
28
-
29
- def prepend_to_application_scss
30
- data = <<-DATA.strip_heredoc
31
- // DO NOT REQUIRE TREE! It will interfere with load order!
32
-
33
- // Account for differences between Rails and Webpack Sass code.
34
- $rails: true;
35
-
36
- // Included from bootstrap-sprockets gem and loaded in app/assets/javascripts/application.rb
37
- @import 'bootstrap-sprockets';
38
-
39
- // Customizations - needs to be imported after bootstrap-sprocket but before bootstrap-custom!
40
- // The _pre-bootstrap.scss file is located under
41
- // client/assets/stylesheets, which has been added to the Rails asset
42
- // pipeline search path. See config/application.rb.
43
- @import 'pre-bootstrap';
44
-
45
- // These scss files are located under client/assets/stylesheets
46
- // (which has been added to the Rails asset pipeline search path in config/application.rb).
47
- @import 'bootstrap-custom';
48
-
49
- // This must come after all the boostrap styles are loaded so that these styles can override those.
50
- @import 'post-bootstrap';
51
-
52
- DATA
53
-
54
- application_scss = File.join(destination_root, "app/assets/stylesheets/application.scss")
55
-
56
- if File.exist?(application_scss)
57
- append_to_file(application_scss, data)
58
- else
59
- GeneratorErrors.add_error(return_setup_file_error(application_scss, data))
60
- end
61
- end
62
-
63
- def strip_application_scss_of_incompatible_sprockets_statements
64
- application_scss = File.join(destination_root, "app/assets/stylesheets/application.scss")
65
- gsub_file(application_scss, "*= require_tree .", "")
66
- gsub_file(application_scss, "*= require_self", "")
67
- end
68
-
69
- def add_bootstrap_sprockets_to_gemfile
70
- append_to_file("Gemfile", "gem 'bootstrap-sass'\n")
71
- end
72
-
73
- def add_bootstrap_sprockets_to_application_js
74
- data = <<-DATA.strip_heredoc
75
-
76
- // bootstrap-sprockets depends on generated/vendor-bundle for jQuery.
77
- //= require bootstrap-sprockets
78
-
79
- DATA
80
-
81
- app_js_path = "app/assets/javascripts/application.js"
82
- found_app_js = dest_file_exists?(app_js_path) || dest_file_exists?(app_js_path + ".coffee")
83
- if found_app_js
84
- append_to_file(found_app_js, data)
85
- else
86
- create_file(app_js_path, data)
87
- end
88
- end
89
- end
90
- end
91
- end
@@ -1,30 +0,0 @@
1
- require "rails/generators"
2
- require_relative "generator_helper"
3
- include GeneratorHelper
4
-
5
- module ReactOnRails
6
- module Generators
7
- class DevTestsGenerator < Rails::Generators::Base
8
- Rails::Generators.hide_namespace(namespace)
9
- source_root(File.expand_path("../templates/dev_tests", __FILE__))
10
-
11
- def copy_rspec_files
12
- %w(spec/spec_helper.rb
13
- spec/rails_helper.rb
14
- spec/simplecov_helper.rb
15
- .rspec).each { |file| copy_file(file) }
16
- end
17
-
18
- def copy_tests
19
- %w(spec/features/hello_world_spec.rb).each { |file| copy_file(file) }
20
- end
21
-
22
- def add_test_related_gems_to_gemfile
23
- gem("rspec-rails", group: :test)
24
- gem("capybara", group: :test)
25
- gem("selenium-webdriver", group: :test)
26
- gem("coveralls", require: false)
27
- end
28
- end
29
- end
30
- end
@@ -1,15 +0,0 @@
1
- module GeneratorErrors
2
- class << self
3
- def output
4
- @output ||= []
5
- end
6
-
7
- def add_error(message)
8
- output << message
9
- end
10
-
11
- def errors
12
- output
13
- end
14
- end
15
- end
@@ -1,58 +0,0 @@
1
- module GeneratorHelper
2
- # Takes a relative path from the destination root, such as `.gitignore` or `app/assets/javascripts/application.js`
3
- def dest_file_exists?(file)
4
- dest_file = File.join(destination_root, file)
5
- File.exist?(dest_file) ? dest_file : nil
6
- end
7
-
8
- def dest_dir_exists?(dir)
9
- dest_dir = File.join(destination_root, dir)
10
- Dir.exist?(dest_dir) ? dest_dir : nil
11
- end
12
-
13
- # Takes the missing file and the
14
- def puts_setup_file_error(file, data)
15
- puts "** #{file} was not found."
16
- puts "Please add the following content to your #{file} file:"
17
- puts "\n#{data}\n"
18
- end
19
-
20
- def return_setup_file_error(file, data)
21
- error = ""
22
- error << "** #{file} was not found.\n"
23
- error << "Please add the following content to your #{file} file:\n"
24
- error << "\n#{data}\n"
25
- error
26
- end
27
-
28
- def empty_directory_with_keep_file(destination, config = {})
29
- empty_directory(destination, config)
30
- keep_file(destination)
31
- end
32
-
33
- def keep_file(destination)
34
- create_file("#{destination}/.keep") unless options[:skip_keeps]
35
- end
36
-
37
- # As opposed to Rails::Generators::Testing.create_link, which creates a link pointing to
38
- # source_root, this symlinks a file in destination_root to a file also in
39
- # destination_root.
40
- def symlink_dest_file_to_dest_file(target, link)
41
- target_pathname = Pathname.new(File.join(destination_root, target))
42
- link_pathname = Pathname.new(File.join(destination_root, link))
43
-
44
- link_directory = link_pathname.dirname
45
- link_basename = link_pathname.basename
46
- target_relative_path = target_pathname.relative_path_from(link_directory)
47
-
48
- `cd #{link_directory} && ln -s #{target_relative_path} #{link_basename}`
49
- end
50
-
51
- def copy_file_and_missing_parent_directories(source_file, destination_file = nil)
52
- destination_file = source_file unless destination_file
53
- destination_path = Pathname.new(destination_file)
54
- parent_directories = destination_path.dirname
55
- empty_directory(parent_directories) unless dest_dir_exists?(parent_directories)
56
- copy_file source_file, destination_file
57
- end
58
- end
@@ -1,30 +0,0 @@
1
- require "rails/generators"
2
- require File.expand_path("../generator_helper", __FILE__)
3
- include GeneratorHelper
4
-
5
- module ReactOnRails
6
- module Generators
7
- class HerokuDeploymentGenerator < Rails::Generators::Base
8
- Rails::Generators.hide_namespace(namespace)
9
- source_root(File.expand_path("../templates", __FILE__))
10
-
11
- def copy_heroku_deployment_files
12
- base_path = "heroku_deployment"
13
- %w(.buildpacks
14
- Procfile
15
- config/puma.rb).each { |file| copy_file("#{base_path}/#{file}", file) }
16
- end
17
-
18
- def add_heroku_production_gems
19
- gem_text = <<-GEMS.strip_heredoc
20
-
21
- # For Heroku deployment
22
- gem 'rails_12factor', group: :production
23
- gem 'puma', group: :production
24
-
25
- GEMS
26
- append_to_file("Gemfile", gem_text)
27
- end
28
- end
29
- end
30
- end
@@ -1,111 +0,0 @@
1
- require "rails/generators"
2
- require File.expand_path("../generator_helper", __FILE__)
3
- require File.expand_path("../generator_errors", __FILE__)
4
- include GeneratorHelper
5
- include GeneratorErrors
6
-
7
- module ReactOnRails
8
- module Generators
9
- class InstallGenerator < Rails::Generators::Base
10
- # fetch USAGE file for details generator description
11
- source_root(File.expand_path("../", __FILE__))
12
-
13
- # --redux
14
- class_option :redux,
15
- type: :boolean,
16
- default: false,
17
- desc: "Install Redux gems and Redux version of Hello World Example. Default: false",
18
- aliases: "-R"
19
- # --server-rendering
20
- class_option :server_rendering,
21
- type: :boolean,
22
- default: false,
23
- desc: "Add necessary files and configurations for server-side rendering. Default: false",
24
- aliases: "-S"
25
- # --skip-js-linters
26
- class_option :skip_js_linters,
27
- type: :boolean,
28
- default: false,
29
- desc: "Skip installing JavaScript linting files. Default: false",
30
- aliases: "-j"
31
- # --ruby-linters
32
- class_option :ruby_linters,
33
- type: :boolean,
34
- default: false,
35
- desc: "Install ruby linting files, tasks, and configs. Default: false",
36
- aliases: "-L"
37
- # --ruby-linters
38
- class_option :heroku_deployment,
39
- type: :boolean,
40
- default: false,
41
- desc: "Install files necessary for deploying to Heroku. Default: false",
42
- aliases: "-H"
43
- # --skip-bootstrap
44
- class_option :skip_bootstrap,
45
- type: :boolean,
46
- default: false,
47
- desc: "Skip integrating Bootstrap and don't initialize files and regarding configs. Default: false",
48
- aliases: "-b"
49
-
50
- def run_generators # rubocop:disable Metrics/CyclomaticComplexity
51
- unless installation_prerequisites_met?
52
- print_errors
53
- return
54
- end
55
- warn_if_nvm_is_not_installed
56
- invoke_generators
57
- print_errors
58
- end
59
-
60
- private
61
-
62
- def print_errors
63
- GeneratorErrors.errors.each { |errors| puts errors }
64
- end
65
-
66
- def invoke_generators # rubocop:disable Metrics/CyclomaticComplexity
67
- invoke "react_on_rails:base"
68
- invoke "react_on_rails:react_no_redux" unless options.redux?
69
- invoke "react_on_rails:react_with_redux" if options.redux?
70
- invoke "react_on_rails:js_linters" unless options.skip_js_linters?
71
- invoke "react_on_rails:ruby_linters" if options.ruby_linters?
72
- invoke "react_on_rails:heroku_deployment" if options.heroku_deployment?
73
- invoke "react_on_rails:bootstrap" unless options.skip_bootstrap?
74
- end
75
-
76
- # NOTE: other requirements for existing files such as .gitignore or application.
77
- # js(.coffee) are not checked by this method, but instead produce warning messages
78
- # and allow the build to continue
79
- def installation_prerequisites_met?
80
- !(missing_node? || missing_npm? || uncommitted_changes?)
81
- end
82
-
83
- def missing_npm?
84
- return false unless `which npm`.blank?
85
- error = "** npm is required. Please install it before continuing."
86
- error << "https://www.npmjs.com/"
87
- GeneratorErrors.add_error(error)
88
- end
89
-
90
- def missing_node?
91
- return false unless `which node`.blank?
92
- error = "** nodejs is required. Please install it before continuing."
93
- error << "https://nodejs.org/en/"
94
- GeneratorErrors.add_error(error)
95
- end
96
-
97
- def uncommitted_changes?
98
- return false if ENV["COVERAGE"]
99
- status = `git status`
100
- return false if status.include?("nothing to commit, working directory clean")
101
- error = "** You have uncommitted code. Please commit or stash your changes before continuing"
102
- GeneratorErrors.add_error(error)
103
- end
104
-
105
- def warn_if_nvm_is_not_installed
106
- return true unless `which nvm`.blank?
107
- GeneratorErrors.add_error("** nvm is advised. Please consider installing it. https://github.com/creationix/nvm")
108
- end
109
- end
110
- end
111
- end
@@ -1,19 +0,0 @@
1
- require "rails/generators"
2
-
3
- module ReactOnRails
4
- module Generators
5
- class JsLintersGenerator < Rails::Generators::Base
6
- Rails::Generators.hide_namespace(namespace)
7
- source_root File.expand_path("../templates", __FILE__)
8
-
9
- # NOTE: linter modules are included via template in base/base/client/package.json.tt
10
-
11
- def copy_js_linter_config_files
12
- base_path = "js_linters/"
13
- %w(client/.eslintrc
14
- client/.eslintignore
15
- client/.jscsrc).each { |file| copy_file(base_path + file, file) }
16
- end
17
- end
18
- end
19
- end
@@ -1,41 +0,0 @@
1
- require "rails/generators"
2
- require File.expand_path("../generator_helper", __FILE__)
3
- include GeneratorHelper
4
-
5
- module ReactOnRails
6
- module Generators
7
- class ReactNoReduxGenerator < Rails::Generators::Base
8
- Rails::Generators.hide_namespace(namespace)
9
- source_root(File.expand_path("../templates", __FILE__))
10
-
11
- # --server-rendering
12
- class_option :server_rendering,
13
- type: :boolean,
14
- default: false,
15
- desc: "Configure for server-side rendering of webpack JavaScript",
16
- aliases: "-S"
17
-
18
- def copy_base_files
19
- base_path = "no_redux/base/"
20
- %w(client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx
21
- client/app/bundles/HelloWorld/containers/HelloWorld.jsx).each do |file|
22
- copy_file(base_path + file, file)
23
- end
24
- end
25
-
26
- def copy_server_rendering_files_if_appropriate
27
- return unless options.server_rendering?
28
- base_path = "no_redux/server_rendering/"
29
- %w(client/app/bundles/HelloWorld/startup/HelloWorldAppServer.jsx).each do |file|
30
- copy_file(base_path + file, file)
31
- end
32
- end
33
-
34
- def template_appropriate_version_of_hello_world_app_client
35
- filename = options.server_rendering? ? "HelloWorldAppClient.jsx" : "HelloWorldApp.jsx"
36
- location = "client/app/bundles/HelloWorld/startup"
37
- template("no_redux/base/#{location}/HelloWorldAppClient.jsx.tt", "#{location}/#{filename}")
38
- end
39
- end
40
- end
41
- end
@@ -1,52 +0,0 @@
1
- require "rails/generators"
2
-
3
- module ReactOnRails
4
- module Generators
5
- class ReactWithReduxGenerator < Rails::Generators::Base
6
- Rails::Generators.hide_namespace(namespace)
7
- source_root(File.expand_path("../templates", __FILE__))
8
-
9
- # --server-rendering
10
- class_option :server_rendering,
11
- type: :boolean,
12
- default: false,
13
- desc: "Configure for server-side rendering of webpack JavaScript",
14
- aliases: "-S"
15
-
16
- def create_redux_directories
17
- dirs = %w(actions constants reducers store)
18
- dirs.each { |name| empty_directory("client/app/bundles/HelloWorld/#{name}") }
19
-
20
- empty_directory("client/app/lib/middlewares")
21
- end
22
-
23
- def copy_base_redux_files
24
- base_path = "redux/base/"
25
- %w(client/app/bundles/HelloWorld/actions/helloWorldActionCreators.jsx
26
- client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx
27
- client/app/bundles/HelloWorld/containers/HelloWorld.jsx
28
- client/app/bundles/HelloWorld/constants/helloWorldConstants.jsx
29
- client/app/bundles/HelloWorld/reducers/helloWorldReducer.jsx
30
- client/app/bundles/HelloWorld/reducers/index.jsx
31
- client/app/bundles/HelloWorld/store/helloWorldStore.jsx
32
- client/app/lib/middlewares/loggerMiddleware.js).each do |file|
33
- copy_file(base_path + file, file)
34
- end
35
- end
36
-
37
- def copy_server_rendering_redux_files
38
- return unless options.server_rendering?
39
- base_path = "redux/server_rendering/"
40
- %w(client/app/bundles/HelloWorld/startup/HelloWorldAppServer.jsx).each do |file|
41
- copy_file(base_path + file, file)
42
- end
43
- end
44
-
45
- def template_appropriate_version_of_hello_world_app_client
46
- filename = options.server_rendering? ? "HelloWorldAppClient.jsx" : "HelloWorldApp.jsx"
47
- location = "client/app/bundles/HelloWorld/startup"
48
- template("redux/base/#{location}/HelloWorldAppClient.jsx.tt", "#{location}/#{filename}")
49
- end
50
- end
51
- end
52
- end