module PowerApi::GeneratorHelper::RoutesHelper
rubocop:disable Layout/AlignArguments
Public Instance Methods
api_version_routes_line_regex()
click to toggle source
# File lib/power_api/generator_helper/routes_helper.rb, line 21 def api_version_routes_line_regex /Api::V#{version_number}[^\n]*/ end
parent_resource_routes_line_regex()
click to toggle source
# File lib/power_api/generator_helper/routes_helper.rb, line 25 def parent_resource_routes_line_regex /#{parent_resource_route_tpl}[^\n]*/ end
parent_route_already_have_children?()
click to toggle source
# File lib/power_api/generator_helper/routes_helper.rb, line 46 def parent_route_already_have_children? routes_match_regex?(/#{parent_resource_route_tpl}[\W\w]*do/) end
parent_route_exist?()
click to toggle source
# File lib/power_api/generator_helper/routes_helper.rb, line 42 def parent_route_exist? routes_match_regex?(/#{parent_resource_route_tpl}/) end
resource_route_tpl(actions: [], is_parent: false)
click to toggle source
# File lib/power_api/generator_helper/routes_helper.rb, line 35 def resource_route_tpl(actions: [], is_parent: false) res = (is_parent ? parent_resource : resource).plural line = "resources :#{res}" line += ", only: [#{actions.map { |a| ":#{a}" }.join(', ')}]" if actions.any? line end
routes_line_to_inject_new_version()
click to toggle source
# File lib/power_api/generator_helper/routes_helper.rb, line 15 def routes_line_to_inject_new_version return "routes.draw do\n" if first_version? "'/api' do\n" end
routes_path()
click to toggle source
# File lib/power_api/generator_helper/routes_helper.rb, line 11 def routes_path "config/routes.rb" end
version_route_tpl()
click to toggle source
# File lib/power_api/generator_helper/routes_helper.rb, line 29 def version_route_tpl return first_version_route_tpl if first_version? new_version_route_tpl end
Private Instance Methods
api_version_params()
click to toggle source
# File lib/power_api/generator_helper/routes_helper.rb, line 85 def api_version_params "module: 'Api::V#{version_number}', \ path: { value: 'v#{version_number}' }, \ defaults: { format: 'json' }" end
first_version_route_tpl()
click to toggle source
# File lib/power_api/generator_helper/routes_helper.rb, line 69 def first_version_route_tpl concat_tpl_statements( "scope path: '/api' do", "api_version(#{api_version_params}) do", "end", "end\n" ) end
new_version_route_tpl()
click to toggle source
# File lib/power_api/generator_helper/routes_helper.rb, line 78 def new_version_route_tpl concat_tpl_statements( "api_version(#{api_version_params}) do", "end" ) end
parent_resource_route_tpl()
click to toggle source
# File lib/power_api/generator_helper/routes_helper.rb, line 63 def parent_resource_route_tpl raise PowerApi::GeneratorError.new("missing parent_resource") unless parent_resource? "resources :#{parent_resource.plural}" end
resource_route_statements(actions: [])
click to toggle source
# File lib/power_api/generator_helper/routes_helper.rb, line 52 def resource_route_statements(actions: []) line = "resources :#{resource.plural}" line += ", only: [#{actions.map { |a| ":#{a}" }.join(', ')}]" if actions.any? line end
routes_match_regex?(regex)
click to toggle source
# File lib/power_api/generator_helper/routes_helper.rb, line 58 def routes_match_regex?(regex) path = File.join(Rails.root, routes_path) File.readlines(path).grep(regex).any? end