Module: SwaggerCodegenRails::Namespace

Included in:
Swagger::InitGenerator
Defined in:
lib/swagger_codegen_rails/namespace.rb

Instance Method Summary collapse

Instance Method Details

#indent(content, multiplier = 2) ⇒ Object



49
50
51
52
# File 'lib/swagger_codegen_rails/namespace.rb', line 49

def indent(content, multiplier = 2)
  spaces = " " * multiplier
  content.each_line.map { |line| line.blank? ? line : "#{spaces}#{line}" }.join
end

#module_namespacing(&block) ⇒ Object



4
5
6
7
8
9
10
11
# File 'lib/swagger_codegen_rails/namespace.rb', line 4

def module_namespacing(&block)
  return unless namespaced?
  content = capture(&block)
  namespaces.reverse.each do |name|
    content = wrap_with_namespace(content, name)
  end
  concat(content)
end

#namespaceObject



36
37
38
# File 'lib/swagger_codegen_rails/namespace.rb', line 36

def namespace
  File.join(name, "swagger").sub(/\A\//, '').sub(/\/\Z/, '')
end

#namespaced?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/swagger_codegen_rails/namespace.rb', line 40

def namespaced?
  namespaces
end

#namespaced_routeObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/swagger_codegen_rails/namespace.rb', line 13

def namespaced_route
  depth = 0
  lines = []

  namespaces.map(&:underscore).each do |ns|
    lines << indent("namespace :#{ns} do\n", depth*2)
    depth += 1
  end

  lines << indent("resources :swagger, only: :index\n", depth*2)

  until depth.zero?
    depth -= 1
    lines << indent("end\n", depth*2)
  end

  lines.join
end

#namespacesObject



32
33
34
# File 'lib/swagger_codegen_rails/namespace.rb', line 32

def namespaces
  name.gsub('.','').split("/").reject(&:blank?).map(&:camelize)
end

#wrap_with_namespace(content, namespace) ⇒ Object



44
45
46
47
# File 'lib/swagger_codegen_rails/namespace.rb', line 44

def wrap_with_namespace(content, namespace)
  content = indent(content).chomp
  "module #{namespace}\n#{content}\nend\n"
end