Module: PowerApi::GeneratorHelper::RoutesHelper

Extended by:
ActiveSupport::Concern
Included in:
PowerApi::GeneratorHelpers
Defined in:
lib/power_api/generator_helper/routes_helper.rb

Overview

rubocop:disable Layout/AlignParameters

Instance Method Summary collapse

Instance Method Details

#api_current_route_namespace_line_regexObject



25
26
27
28
29
# File 'lib/power_api/generator_helper/routes_helper.rb', line 25

def api_current_route_namespace_line_regex
  return /#{version_class}[^\n]*/ if versioned_api?

  /namespace :internal[^\n]*/
end

#internal_route_tplObject



41
42
43
44
45
46
47
48
# File 'lib/power_api/generator_helper/routes_helper.rb', line 41

def internal_route_tpl
  concat_tpl_statements(
    "namespace :api, defaults: { format: :json } do",
      "namespace :internal do",
      "end",
    "end\n"
  )
end

#parent_resource_routes_line_regexObject



31
32
33
# File 'lib/power_api/generator_helper/routes_helper.rb', line 31

def parent_resource_routes_line_regex
  /#{parent_resource_route_tpl}[^\n]*/
end

#parent_route_already_have_children?Boolean

Returns:

  • (Boolean)


61
62
63
# File 'lib/power_api/generator_helper/routes_helper.rb', line 61

def parent_route_already_have_children?
  routes_match_regex?(/#{parent_resource_route_tpl}[\W\w]*do/)
end

#parent_route_exist?Boolean

Returns:

  • (Boolean)


57
58
59
# File 'lib/power_api/generator_helper/routes_helper.rb', line 57

def parent_route_exist?
  routes_match_regex?(/#{parent_resource_route_tpl}/)
end

#resource_route_tpl(actions: [], is_parent: false) ⇒ Object



50
51
52
53
54
55
# File 'lib/power_api/generator_helper/routes_helper.rb', line 50

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_first_lineObject



21
22
23
# File 'lib/power_api/generator_helper/routes_helper.rb', line 21

def routes_first_line
  "routes.draw do\n"
end

#routes_line_to_inject_new_versionObject



15
16
17
18
19
# File 'lib/power_api/generator_helper/routes_helper.rb', line 15

def routes_line_to_inject_new_version
  return routes_first_line if first_version?

  "'/api' do\n"
end

#routes_pathObject



11
12
13
# File 'lib/power_api/generator_helper/routes_helper.rb', line 11

def routes_path
  "config/routes.rb"
end

#version_route_tplObject



35
36
37
38
39
# File 'lib/power_api/generator_helper/routes_helper.rb', line 35

def version_route_tpl
  return first_version_route_tpl if first_version?

  new_version_route_tpl
end