class PowerApi::ControllerGenerator
Public Class Methods
valid_actions()
click to toggle source
# File lib/generators/power_api/controller/controller_generator.rb, line 4 def self.valid_actions PowerApi::GeneratorHelpers::PERMITTED_ACTIONS end
Public Instance Methods
add_routes()
click to toggle source
# File lib/generators/power_api/controller/controller_generator.rb, line 75 def add_routes if helper.parent_resource? if helper.resource_actions? add_normal_route(actions: helper.controller_actions & ["show", "update", "destroy"]) end add_nested_route if helper.collection_actions? else add_normal_route(actions: helper.controller_actions) end helper.format_ruby_file(helper.routes_path) end
configure_swagger()
click to toggle source
# File lib/generators/power_api/controller/controller_generator.rb, line 97 def configure_swagger create_file( helper.swagger_resource_schema_path, helper.swagger_schema_tpl ) helper.format_ruby_file(helper.swagger_resource_schema_path) insert_into_file( helper.swagger_version_definition_path, helper.swagger_definition_entry, after: helper.swagger_definition_line_to_inject_schema ) create_file( helper.swagger_resource_spec_path, helper.swagger_resource_spec_tpl ) helper.format_ruby_file(helper.swagger_resource_spec_path) end
create_controller()
click to toggle source
# File lib/generators/power_api/controller/controller_generator.rb, line 66 def create_controller create_file( helper.resource_controller_path, helper.resource_controller_tpl ) helper.format_ruby_file(helper.resource_controller_path) end
create_serializer()
click to toggle source
# File lib/generators/power_api/controller/controller_generator.rb, line 88 def create_serializer create_file( helper.ams_serializer_path, helper.ams_serializer_tpl ) helper.format_ruby_file(helper.ams_serializer_path) end
Private Instance Methods
add_nested_parent_route()
click to toggle source
# File lib/generators/power_api/controller/controller_generator.rb, line 144 def add_nested_parent_route add_route(helper.api_version_routes_line_regex) do |match| "#{match}\n#{helper.resource_route_tpl(is_parent: true)}" end end
add_nested_route()
click to toggle source
# File lib/generators/power_api/controller/controller_generator.rb, line 121 def add_nested_route line_to_replace = helper.parent_resource_routes_line_regex nested_resource_line = helper.resource_route_tpl( actions: helper.controller_actions & ['index', 'create'] ) add_nested_parent_route unless helper.parent_route_exist? if helper.parent_route_already_have_children? add_route(line_to_replace) { |match| "#{match}\n#{nested_resource_line}" } else add_route(line_to_replace) do |match| "#{match.delete_suffix('\n')} do\n#{nested_resource_line}\nend\n" end end end
add_normal_route(actions:)
click to toggle source
# File lib/generators/power_api/controller/controller_generator.rb, line 137 def add_normal_route(actions:) actions_for_only_option = actions.sort == self.class.valid_actions.sort ? [] : actions add_route(helper.api_version_routes_line_regex) do |match| "#{match}\n#{helper.resource_route_tpl(actions: actions_for_only_option)}" end end
add_route(line_to_replace, &block)
click to toggle source
# File lib/generators/power_api/controller/controller_generator.rb, line 150 def add_route(line_to_replace, &block) gsub_file helper.routes_path, line_to_replace do |match| block.call(match) end end
helper()
click to toggle source
# File lib/generators/power_api/controller/controller_generator.rb, line 156 def helper @helper ||= PowerApi::GeneratorHelpers.new( version_number: options[:version_number], resource: file_name, authenticated_resource: options[:authenticate_with], parent_resource: options[:parent_resource], owned_by_authenticated_resource: options[:owned_by_authenticated_resource], resource_attributes: options[:attributes], controller_actions: options[:controller_actions], use_paginator: options[:use_paginator], allow_filters: options[:allow_filters] ) end