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.
18 19 20 21 22 23 24 25 26 |
# File 'lib/spf/macro_string.rb', line 18 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.
28 29 30 |
# File 'lib/spf/macro_string.rb', line 28 def request @request end |
#server ⇒ Object (readonly)
Returns the value of attribute server.
28 29 30 |
# File 'lib/spf/macro_string.rb', line 28 def server @server end |
#text ⇒ Object (readonly)
Returns the value of attribute text.
28 29 30 |
# File 'lib/spf/macro_string.rb', line 28 def text @text end |
Class Method Details
.default_join_delimiter ⇒ Object
10 11 12 |
# File 'lib/spf/macro_string.rb', line 10 def self.default_join_delimiter '.' end |
.default_split_delimiters ⇒ Object
6 7 8 |
# File 'lib/spf/macro_string.rb', line 6 def self.default_split_delimiters '.' end |
.uri_unreserved_chars ⇒ Object
14 15 16 |
# File 'lib/spf/macro_string.rb', line 14 def self.uri_unreserved_chars 'A-Za-z0-9\-._~' end |
Instance Method Details
#context(server, request) ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/spf/macro_string.rb', line 30 def context(server, request) valid_context(true, server, request) @server = server @request = request @expanded = nil return end |
#expand(context = nil) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/spf/macro_string.rb', line 38 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
50 51 52 53 54 55 56 |
# File 'lib/spf/macro_string.rb', line 50 def to_s if valid_context(false) return else return @text end end |
#valid_context(required, server = self.server, request = self.request) ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/spf/macro_string.rb', line 58 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 |