Class: ReeRoutes::RouteBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/ree_lib/packages/ree_routes/package/ree_routes/route_builder.rb

Defined Under Namespace

Classes: Redirect

Constant Summary collapse

VISIBILITIES =
[:public, :internal].freeze
AUDIT_MODES =
[true, false, :on_annotation].freeze

Instance Method Summary collapse

Constructor Details

#initializeRouteBuilder

Returns a new instance of RouteBuilder.



11
12
13
14
# File 'lib/ree_lib/packages/ree_routes/package/ree_routes/route_builder.rb', line 11

def initialize
  @route = ReeRoutes::Route.new
  @route.respond_to = :json
end

Instance Method Details

#action(name, from:) ⇒ Object



88
89
90
91
92
# File 'lib/ree_lib/packages/ree_routes/package/ree_routes/route_builder.rb', line 88

def action(name, from:)
  object = Ree.container.packages_facade.get_object(from, name)
  @route.action = object
  nil
end

#audit(value) ⇒ Object



53
54
55
56
57
58
59
60
61
# File 'lib/ree_lib/packages/ree_routes/package/ree_routes/route_builder.rb', line 53

def audit(value)
  if !AUDIT_MODES.include?(value)
    raise ArgumentError.new(
      "audit should be one of #{AUDIT_MODES.inspect}, got #{value.inspect}"
    )
  end

  @route.audit = value
end

#before(&proc) ⇒ Object



32
33
34
35
# File 'lib/ree_lib/packages/ree_routes/package/ree_routes/route_builder.rb', line 32

def before(&proc)
  @route.before = proc
  nil
end

#get_routeObject



27
28
29
# File 'lib/ree_lib/packages/ree_routes/package/ree_routes/route_builder.rb', line 27

def get_route
  @route
end

#override(&proc) ⇒ Object



38
39
40
41
# File 'lib/ree_lib/packages/ree_routes/package/ree_routes/route_builder.rb', line 38

def override(&proc)
  @route.override = proc
  nil
end

#redirect(path, code: 301) ⇒ Object

Raises:

  • (ArgumentError)


95
96
97
98
99
# File 'lib/ree_lib/packages/ree_routes/package/ree_routes/route_builder.rb', line 95

def redirect(path, code: 301)
  raise ArgumentError if ![301, 302, 303, 307, 308].include?(code)
  @route.redirect = Redirect.new(path, code)
  nil
end

#respond_to(v) ⇒ Object



22
23
24
# File 'lib/ree_lib/packages/ree_routes/package/ree_routes/route_builder.rb', line 22

def respond_to(v)
  @route.respond_to = v
end

#sections(*names) ⇒ Object



82
83
84
85
# File 'lib/ree_lib/packages/ree_routes/package/ree_routes/route_builder.rb', line 82

def sections(*names)
  @route.sections = names
  nil
end

#serializer(name, from:) ⇒ Object



75
76
77
78
79
# File 'lib/ree_lib/packages/ree_routes/package/ree_routes/route_builder.rb', line 75

def serializer(name, from:)
  object = Ree.container.packages_facade.get_object(from, name)
  @route.serializer = object
  nil
end

#summary(str) ⇒ Object



44
45
46
# File 'lib/ree_lib/packages/ree_routes/package/ree_routes/route_builder.rb', line 44

def summary(str)
  @route.summary = str
end

#visibility(value) ⇒ Object



64
65
66
67
68
69
70
71
72
# File 'lib/ree_lib/packages/ree_routes/package/ree_routes/route_builder.rb', line 64

def visibility(value)
  if !VISIBILITIES.include?(value)
    raise ArgumentError.new(
      "visibility should be one of #{VISIBILITIES.inspect}, got #{value.inspect}"
    )
  end

  @route.visibility = value
end

#warden_scope(*scopes) ⇒ Object



17
18
19
# File 'lib/ree_lib/packages/ree_routes/package/ree_routes/route_builder.rb', line 17

def warden_scope(*scopes)
  @route.warden_scopes = scopes.flatten
end