Class: Test::Unit::Assertions::AssertionMessage::Template
Relationships & Source Files | |
Inherits: | Object |
Defined in: | lib/test/unit/assertions.rb |
Class Method Summary
- .create(string)
- .new(parts) ⇒ Template constructor
Instance Attribute Summary
- #count readonly
Instance Method Summary
Constructor Details
.new(parts) ⇒ Template
# File 'lib/test/unit/assertions.rb', line 2318
def initialize(parts) @parts = parts @count = parts.count('?') end
Class Method Details
.create(string)
[ GitHub ]# File 'lib/test/unit/assertions.rb', line 2311
def self.create(string) parts = (string ? string.scan(/(?=[^\\])\?|(?:\\\?|[^\?])+/m) : []) self.new(parts) end
Instance Attribute Details
#count (readonly)
[ GitHub ]# File 'lib/test/unit/assertions.rb', line 2316
attr_reader :count
Instance Method Details
#concatenatable(text, encoding) (private)
[ GitHub ]# File 'lib/test/unit/assertions.rb', line 2344
def concatenatable(text, encoding) if Encoding.compatible?(text, encoding) text else text.dup.force_encoding(encoding) end end
#result(parameters)
[ GitHub ]# File 'lib/test/unit/assertions.rb', line 2323
def result(parameters) raise "The number of parameters does not match the number of substitutions." if(parameters.size != count) params = parameters.dup = "" @parts.each do |part| if part == '?' param = params.shift if Object.const_defined?(:Encoding) += concatenatable(param, .encoding) else += param end else += part.gsub(/\\\?/m, '?') end end end