Examples:
require "aspect/message_transform"
message = Aspect::MessageTransform.new(login: "Click to login", body: "Lorem ipsum")
p message.to_a(:login, :body) p message.to_h(:login, :body) p message.to_s(:login, :body)
p message.to_a(:body) p message.to_h(:body) p message.to_s(:body)
require "aspect/message_transform"
message = Aspect::MessageTransform.new(login: "Click to login", body: "Lorem ipsum")
p message.to_a(login: true, body: true) p message.to_h(login: true, body: true) p message.to_s(login: true, body: true)
p message.to_a(login: false, body: true) p message.to_h(login: false, body: true) p message.to_s(login: false, body: true)
p message.to_a(body: true) p message.to_h(body: true) p message.to_s(body: true)
Output formatting and separator.
require "aspect/message_transform"
message = Aspect::MessageTransform.new(login: "Click to login", body: "Lorem ipsum")
message.separator = " - "
message.formatter { |value| "<div>#{value}</div>" }
p message.to_a(:login, :body) p message.to_h(:login, :body) p message.to_s(:login, :body)
require "aspect/message_transform"
message = Aspect::MessageTransform.new(hello: "Hello %{hello}!")
p message.to_s(hello: "world")
Getting with a multi-level ‘Hash`.
require "aspect/message_transform"
message = Aspect::MessageTransform.new(header: "My App", body: { title: "Some Page", hello: "Hello %{hello}!" })
p message.to_s(header: true) p message.to_s(body: { title: true }) p message.to_s(body: { hello: "world" })
Getting with ‘String` notation.
require "aspect/message_transform"
message = Aspect::MessageTransform.new(header: "My App", body: { title: "Some Page", hello: "Hello %{hello}!" })
p message.to_s("header") p message.to_s("body.title") p message.to_s("body.hello" => "world") p message.to_a("body.title", "body.hello" => "world")
Internationalization (I18N) using multi-level ‘Hash`, compatible with Verifier output.
require "aspect/message_transform"
dictionary = {
en: {
presence: "%{attribute} must not be blank",
greater_than_or_equal_to: "%{attribute} must be greater than or equal to %{greater_than_or_equal_to}"
},
es: {
presence: "%{attribute} no debe estar en blanco",
greater_than_or_equal_to: "%{attribute} debe ser mayor que o igual a %{greater_than_or_equal_to}"
}
}
error_message = Aspect::MessageTransform.new(dictionary)
error_message.to_s(en: { attribute: "age", presence: true, greater_than_or_equal_to: 18 }) error_message.to_s(es: { attribute: "edad", presence: true, greater_than_or_equal_to: 18 })