class Podium::PodletGenerator

Constants

APP_CONTROLLER_PATH
LAYOUT_PATH
PREVIEW_CONTROLLER_PATH

Public Instance Methods

create_controller() click to toggle source
# File lib/generators/podium/podlet_generator.rb, line 13
def create_controller
  template "podlet_controller.rb", "app/controllers/#{controller_file_name}"
end
create_views() click to toggle source
# File lib/generators/podium/podlet_generator.rb, line 17
def create_views
  template "content.html.erb", "app/views/#{folder_name}/content.html.erb"
end
prepare_assets() click to toggle source
# File lib/generators/podium/podlet_generator.rb, line 21
def prepare_assets
  create_file "app/assets/javascripts/#{folder_name}/podlet.js"
  create_file "app/assets/stylesheets/#{folder_name}/podlet.css"
  return if contents("app/assets/config/manifest.js").include?(folder_name)
  append_to_file "app/assets/config/manifest.js", "//= link_directory ../javascripts/#{folder_name} .js\n"
  append_to_file "app/assets/config/manifest.js", "//= link_directory ../stylesheets/#{folder_name} .css\n"
end
setup_preview() click to toggle source
# File lib/generators/podium/podlet_generator.rb, line 40
    def setup_preview
      unless preview_exists?
        template "podlet_preview_controller.rb", PREVIEW_CONTROLLER_PATH
      end
      return if contents(PREVIEW_CONTROLLER_PATH).include?(podlet_name)

      podlet_action = <<-RUBY
\ndef #{podlet_name}
  resource = podlet_resource(:#{podlet_name})
  render html: resource.fetch({}).html_safe
end
      RUBY

      inject_into_file PREVIEW_CONTROLLER_PATH, podlet_action, before: "\nend"
    end
setup_routes() click to toggle source
# File lib/generators/podium/podlet_generator.rb, line 29
def setup_routes
  route = "podlet :#{podlet_name}"
  return if route_present?(route)
  if route_present?("podlet_preview")
    inject_into_file "config/routes.rb", "\n  #{route}", before: "\n  podlet_preview"
  else
    inject_into_file "config/routes.rb", "\n  #{route}", before: "\nend"
    inject_into_file "config/routes.rb", "\n  podlet_preview if Rails.env.development?", before: "\nend"
  end
end

Private Instance Methods

contents(path) click to toggle source
# File lib/generators/podium/podlet_generator.rb, line 68
def contents(path)
  inside do
    return File.read(path)
  end
end
controller_file_name() click to toggle source
# File lib/generators/podium/podlet_generator.rb, line 82
def controller_file_name
  "#{controller_name.underscore}.rb"
end
controller_name() click to toggle source
# File lib/generators/podium/podlet_generator.rb, line 86
def controller_name
  "#{name.underscore.camelcase}PodletController"
end
folder_name() click to toggle source
# File lib/generators/podium/podlet_generator.rb, line 74
def folder_name
  "#{podlet_name}_podlet"
end
podlet_name() click to toggle source
# File lib/generators/podium/podlet_generator.rb, line 78
def podlet_name
  name.underscore
end
preview_exists?() click to toggle source
# File lib/generators/podium/podlet_generator.rb, line 58
def preview_exists?
  inside do
    return File.exist?(PREVIEW_CONTROLLER_PATH)
  end
end
route_present?(route) click to toggle source
# File lib/generators/podium/podlet_generator.rb, line 64
def route_present?(route)
  contents("config/routes.rb").include?(route)
end