class Anodator::Message
Message
is error message builder.
Message
is generated with formated string for expand several keywords. Message#expand
method is expand keywords by data_provider suppried by parameter.
Attributes
template[R]
message
Public Class Methods
new(template_message)
click to toggle source
# File lib/anodator/message.rb, line 14 def initialize(template_message) @template = template_message.to_s if @template.split(//).size.zero? raise ArgumentError.new("template_message cannot be blank") end end
Public Instance Methods
expand(data_provider)
click to toggle source
expand message with data_provider
message keyword is expressed [[target_expression::attribute]]
. data_provider is data source for current check target.
-
target_expression: specify target.
-
attribute: actual printed value
-
name: target name
-
number: target number
-
value: target actual data
-
# File lib/anodator/message.rb, line 32 def expand(data_provider) @template.gsub(/\[\[([^:]+)::([^\]]+)\]\]/) do spec_item = data_provider.spec_item_by_expression($1) case $2 when "name" spec_item.name when "number" spec_item.number when "value" data_provider[$1] else raise UnknownMessageAttributeError.new("Unknown message attribute '#{$2}'") end end end
validate_configuration()
click to toggle source
# File lib/anodator/message.rb, line 48 def validate_configuration @template.gsub(/\[\[([^:]+)::([^\]]+)\]\]/) do Validator::Base.values.spec_item_by_expression($1) unless %W(name number value).include?($2) raise UnknownMessageAttributeError.new("Unknown message attribute '#{$2}'") end end rescue UnknownTargetExpressionError, UnknownMessageAttributeError => e raise InvalidConfiguration.new(e.to_s) end