Class: Reactrb::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Reactrb::InstallGenerator
- Defined in:
- lib/generators/reactrb/install_generator.rb
Instance Method Summary collapse
- #add_config ⇒ Object
- #add_gems ⇒ Object
- #create_components_directory ⇒ Object
- #create_manifests ⇒ Object
- #inject_engine_to_routes ⇒ Object
- #inject_react_file_js ⇒ Object
Instance Method Details
#add_config ⇒ Object
55 56 57 58 |
# File 'lib/generators/reactrb/install_generator.rb', line 55 def add_config application "config.assets.paths << ::Rails.root.join('app', 'react').to_s" application 'config.autoload_paths += %W(#{config.root}/app/react/models)' if [:"reactive-record"] || [:all] end |
#add_gems ⇒ Object
60 61 62 63 64 65 66 67 68 69 |
# File 'lib/generators/reactrb/install_generator.rb', line 60 def add_gems gem 'reactive-ruby' gem 'react-rails', '~> 1.3.0' gem 'opal-rails', '>= 0.8.1' gem 'therubyracer', platforms: :ruby # optional gems gem 'reactive-router' if [:"reactive-router"] || [:all] gem 'reactive-record' if [:"reactive-record"] || [:all] end |
#create_components_directory ⇒ Object
31 32 33 34 |
# File 'lib/generators/reactrb/install_generator.rb', line 31 def create_components_directory create_file "app/react/components/.keep", "" create_file "app/react/models/.keep", "" if [:"reactive-record"] || [:all] end |
#create_manifests ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/generators/reactrb/install_generator.rb', line 36 def create_manifests create_file "app/react/components.rb", "# app/react/components.rb\nrequire 'opal'\nrequire 'reactive-ruby'\n\#{\"require 'reactive-router'\" if options[:\"reactive-router\"] || options[:all]}\n\#{\"require 'reactive-record'\" if options[:\"reactive-record\"] || options[:all]}\n\#{\"require 'models'\" if options[:\"reactive-record\"] || options[:all]}\nrequire_tree './components'\n FILE\n\n if options[:\"reactive-record\"] || options[:all]\n create_file \"app/react/models.rb\", <<-FILE\n# app/react/components.rb\nrequire_tree './models'\n FILE\n end\nend\n" |
#inject_engine_to_routes ⇒ Object
25 26 27 28 29 |
# File 'lib/generators/reactrb/install_generator.rb', line 25 def inject_engine_to_routes if [:"reactive-record"] || [:all] route "mount ReactiveRecord::Engine => \"/rr\"" end end |
#inject_react_file_js ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/generators/reactrb/install_generator.rb', line 9 def inject_react_file_js inject_into_file 'app/assets/javascripts/application.js', after: "// about supported directives.\n" do "//= require 'components'\n//= require 'react_ujs'\n RUBY\n end\n\n if options[:\"opal-jquery\"] || options[:all]\n inject_into_file 'app/assets/javascripts/application.js', after: \"//= require jquery_ujs\\n\" do <<-'RUBY'\n//= require 'opal-jquery'\n RUBY\n end\n end\n\nend\n" |