Class: SPF::MacroString
- Inherits:
-
Object
- Object
- SPF::MacroString
- Defined in:
- lib/spf/macro_string.rb
Instance Attribute Summary collapse
-
#request ⇒ Object
readonly
Returns the value of attribute request.
-
#server ⇒ Object
readonly
Returns the value of attribute server.
-
#text ⇒ Object
readonly
Returns the value of attribute text.
Class Method Summary collapse
Instance Method Summary collapse
- #context(server, request) ⇒ Object
- #expand(context = nil) ⇒ Object
-
#initialize(options = {}) ⇒ MacroString
constructor
A new instance of MacroString.
- #to_s ⇒ Object
- #valid_context(required, server = self.server, request = self.request) ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ MacroString
Returns a new instance of MacroString.
19 20 21 22 23 24 25 26 27 |
# File 'lib/spf/macro_string.rb', line 19 def initialize( = {}) super() @text = [:text] \ or raise ArgumentError, "Missing required 'text' option" @server = [:server] @request = [:request] @expanded = nil self. end |
Instance Attribute Details
#request ⇒ Object (readonly)
Returns the value of attribute request.
29 30 31 |
# File 'lib/spf/macro_string.rb', line 29 def request @request end |
#server ⇒ Object (readonly)
Returns the value of attribute server.
29 30 31 |
# File 'lib/spf/macro_string.rb', line 29 def server @server end |
#text ⇒ Object (readonly)
Returns the value of attribute text.
29 30 31 |
# File 'lib/spf/macro_string.rb', line 29 def text @text end |
Class Method Details
.default_join_delimiter ⇒ Object
11 12 13 |
# File 'lib/spf/macro_string.rb', line 11 def self.default_join_delimiter '.' end |
.default_split_delimiters ⇒ Object
7 8 9 |
# File 'lib/spf/macro_string.rb', line 7 def self.default_split_delimiters '.' end |
.uri_unreserved_chars ⇒ Object
15 16 17 |
# File 'lib/spf/macro_string.rb', line 15 def self.uri_unreserved_chars 'A-Za-z0-9\-._~' end |
Instance Method Details
#context(server, request) ⇒ Object
31 32 33 34 35 36 37 |
# File 'lib/spf/macro_string.rb', line 31 def context(server, request) valid_context(true, server, request) @server = server @request = request @expanded = nil return end |
#expand(context = nil) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/spf/macro_string.rb', line 39 def (context = nil) return @expanded if @expanded return nil unless @text return (@expanded = @text) unless @text =~ /%/ # Short-circuit expansion if text has no '%' characters. = '' # TODO return (@expanded = @text) end |
#to_s ⇒ Object
51 52 53 54 55 56 57 |
# File 'lib/spf/macro_string.rb', line 51 def to_s if valid_context(false) return else return @text end end |
#valid_context(required, server = self.server, request = self.request) ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/spf/macro_string.rb', line 59 def valid_context(required, server = self.server, request = self.request) if not SPF::Server === server raise MacroExpansionCtxRequired, 'SPF server object required' if required return false end if not SPF::Request === request raise MacroExpansionCtxRequired, 'SPF request object required' if required return false end return true end |