Class: ComponentGenerator

Inherits:
Rails::Generators::NamedBase
  • Object
show all
Defined in:
lib/generators/component/component_generator.rb

Instance Method Summary collapse

Instance Method Details

#create_component_directoryObject



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_indexObject



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_routeObject



4
5
6
# File 'lib/generators/component/component_generator.rb', line 4

def create_route
	route "get '#{name}', to: '#{name}#index'"
end

#create_viewObject



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_directoryObject



8
9
10
# File 'lib/generators/component/component_generator.rb', line 8

def create_view_directory
	empty_directory("app/views/pages/components/#{name}")
end