Class: ComponentGenerator
- Inherits:
-
Rails::Generators::NamedBase
- Object
- Rails::Generators::NamedBase
- ComponentGenerator
- Defined in:
- lib/generators/component/component_generator.rb
Instance Method Summary collapse
- #create_component_directory ⇒ Object
- #create_component_index ⇒ Object
- #create_route ⇒ Object
- #create_view ⇒ Object
- #create_view_directory ⇒ Object
Instance Method Details
#create_component_directory ⇒ Object
17 18 19 |
# File 'lib/generators/component/component_generator.rb', line 17 def create_component_directory empty_directory("client/app/components/#{name}") end |
#create_component_index ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/generators/component/component_generator.rb', line 21 def create_component_index create_file "client/app/components/#{name}/#{name}.js", "import React, { Component } from 'react'; class #{name} extends Component { render() { return ( <div>#{name} Component</div> ) } } export default #{name};" inject_into_file "client/app/registration.jsx", " #{name},\n", :before => /^}/ inject_into_file "client/app/registration.jsx", "import #{name} from './components/#{name}/#{name}';\n", :after => "import ReactOnRails from 'react-on-rails';\n" end |
#create_route ⇒ Object
4 5 6 |
# File 'lib/generators/component/component_generator.rb', line 4 def create_route route "get '#{name}', to: '#{name}#index'" end |
#create_view ⇒ Object
12 13 14 15 |
# File 'lib/generators/component/component_generator.rb', line 12 def create_view create_file "app/views/pages/components/#{name}/#{name}.html.erb", "<%= react_component('#{name}', {prerender: false}) %>" create_file "app/assets/stylesheets/#{name}.scss" end |
#create_view_directory ⇒ Object
8 9 10 |
# File 'lib/generators/component/component_generator.rb', line 8 def create_view_directory empty_directory("app/views/pages/components/#{name}") end |