class Repack::ViewGenerator
Public Instance Methods
create_container()
click to toggle source
ASSUMPTION: container will be PascalCased
# File lib/generators/repack/view_generator.rb, line 32 def create_container name = @view.titleize.gsub(/ /, '') file = "client/containers/#{name}.js" copy_file "boilerplate/views/ContainerTemplate.js", file gsub_file file, /Placeholder/, name end
create_entry_file()
click to toggle source
# File lib/generators/repack/view_generator.rb, line 24 def create_entry_file file = "client/#{@view.underscore}.js" name = @view.titleize.gsub(/ /, '') copy_file "boilerplate/views/ViewTemplate.js", file gsub_file file, /Placeholder/, name end
create_rails_view()
click to toggle source
ASSUMPTION: Rails controllers will be PascalCased, file & directory names will be snake_cased
# File lib/generators/repack/view_generator.rb, line 40 def create_rails_view name = @view.underscore Rails.application.eager_load! if ApplicationController.descendants.length == 0 controllers = ApplicationController.descendants.map { |cont| cont.name.gsub('Controller', '').underscore } dirname = controllers.include?(name) ? name : name.pluralize empty_directory "app/views/#{dirname}" if Gem.loaded_specs.has_key? 'haml-rails' file = "app/views/#{dirname}/index.html.haml" copy_file "boilerplate/views/rails_view.html.haml", file gsub_file file, /placeholder/, name else file = "app/views/#{dirname}/index.html.erb" copy_file "boilerplate/views/rails_view.html.erb", file gsub_file file, /placeholder/, name end end
normalize_view_name()
click to toggle source
# File lib/generators/repack/view_generator.rb, line 8 def normalize_view_name raise "View name argument missing" if args.length == 0 @view = args[0] end
update_webpack_entry()
click to toggle source
ASSUMPTION: entry file will be snake_cased
# File lib/generators/repack/view_generator.rb, line 14 def update_webpack_entry name = @view.underscore path = "'#{name}': './client/#{name}.js'," insert_into_file 'config/webpack.config.js', after: /entry: {\n/ do <<-CONFIG #{path} CONFIG end end