Class: AuPair::ApiConstraint

Inherits:
Object
  • Object
show all
Defined in:
lib/au_pair/api_constraint.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(path_part) ⇒ ApiConstraint

Returns a new instance of ApiConstraint.



5
6
7
8
# File 'lib/au_pair/api_constraint.rb', line 5

def initialize(path_part)
  @path_part = path_part.downcase
  @numeric_version = path_part.gsub(/.?([0-9]+)/, "\\1").to_i
end

Instance Attribute Details

#numeric_versionObject

Returns the value of attribute numeric_version.



3
4
5
# File 'lib/au_pair/api_constraint.rb', line 3

def numeric_version
  @numeric_version
end

#path_partObject

Returns the value of attribute path_part.



3
4
5
# File 'lib/au_pair/api_constraint.rb', line 3

def path_part
  @path_part
end

Instance Method Details

#header_matches?(request) ⇒ Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/au_pair/api_constraint.rb', line 18

def header_matches?(request)
  request.headers['x-api-version'] =~ /^[^\d]*#{numeric_version}$/
end

#matches?(request) ⇒ Boolean

Returns:

  • (Boolean)


10
11
12
# File 'lib/au_pair/api_constraint.rb', line 10

def matches?(request)
  path_matches?(request) || header_matches?(request) || param_matches?(request)
end

#param_matches?(request) ⇒ Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/au_pair/api_constraint.rb', line 22

def param_matches?(request)
  request.request_parameters["api_version"].to_i == numeric_version || request.query_parameters["api_version"].to_i == numeric_version
end

#path_matches?(request) ⇒ Boolean

Returns:

  • (Boolean)


14
15
16
# File 'lib/au_pair/api_constraint.rb', line 14

def path_matches?(request)
  request.path =~ /\/#{@path_part}\//i
end