Class: Line::Message::Builder::Validators::Size
- Inherits:
-
Object
- Object
- Line::Message::Builder::Validators::Size
- Defined in:
- lib/line/message/builder/validators/size.rb
Overview
Validate size values for LINE messages.
Constant Summary collapse
- VARIANTS =
%i[pixel keyword image percentage].freeze
- KEYWORDS =
%i[none xs sm md lg xl xxl].freeze
- IMAGE_KEYWORDS =
%i[xxs xs sm md lg xl xxl 3xl 4xl 5xl full].freeze
- PIXEL_REGEX =
/^\d+px$/- PERCENTAGE_REGEX =
/^\f+%$/
Instance Method Summary collapse
- #image?(value) ⇒ Boolean
-
#initialize(*variants) ⇒ Size
constructor
A new instance of Size.
- #keyword?(value) ⇒ Boolean
- #percentage?(value) ⇒ Boolean
- #pixel?(value) ⇒ Boolean
- #valid!(value) ⇒ Object
- #valid?(value) ⇒ Boolean
Constructor Details
Instance Method Details
#image?(value) ⇒ Boolean
33 34 35 |
# File 'lib/line/message/builder/validators/size.rb', line 33 def image?(value) IMAGE_KEYWORDS.include?(value.to_sym) end |
#keyword?(value) ⇒ Boolean
29 30 31 |
# File 'lib/line/message/builder/validators/size.rb', line 29 def keyword?(value) KEYWORDS.include?(value.to_sym) end |
#percentage?(value) ⇒ Boolean
37 38 39 |
# File 'lib/line/message/builder/validators/size.rb', line 37 def percentage?(value) value.to_s.match?(PERCENTAGE_REGEX) end |
#pixel?(value) ⇒ Boolean
25 26 27 |
# File 'lib/line/message/builder/validators/size.rb', line 25 def pixel?(value) value.to_s.match?(PIXEL_REGEX) end |
#valid!(value) ⇒ Object
41 42 43 44 45 46 47 |
# File 'lib/line/message/builder/validators/size.rb', line 41 def valid!(value) return if valid?(value) raise ValidationError, "Invalid value: #{value}. " \ "Expected one of: #{VARIANTS.join(", ")}" end |
#valid?(value) ⇒ Boolean
19 20 21 22 23 |
# File 'lib/line/message/builder/validators/size.rb', line 19 def valid?(value) @variants.any? do |variant| send("#{variant}?", value) end end |