Class: AuPair::ApiConstraint
- Inherits:
-
Object
- Object
- AuPair::ApiConstraint
- Defined in:
- lib/au_pair/api_constraint.rb
Instance Attribute Summary collapse
-
#numeric_version ⇒ Object
Returns the value of attribute numeric_version.
-
#path_part ⇒ Object
Returns the value of attribute path_part.
Instance Method Summary collapse
- #header_matches?(request) ⇒ Boolean
-
#initialize(path_part) ⇒ ApiConstraint
constructor
A new instance of ApiConstraint.
- #matches?(request) ⇒ Boolean
- #param_matches?(request) ⇒ Boolean
- #path_matches?(request) ⇒ Boolean
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_version ⇒ Object
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_part ⇒ Object
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
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
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
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
14 15 16 |
# File 'lib/au_pair/api_constraint.rb', line 14 def path_matches?(request) request.path =~ /\/#{@path_part}\//i end |