Class: Jabara::ParseCom::Schema::String

Inherits:
PrimitiveParser show all
Defined in:
lib/jabara/parse_com/schema.rb

Instance Method Summary collapse

Methods inherited from PrimitiveParser

#object_types

Constructor Details

#initialize(max: nil, default: nil) ⇒ String

default = nil の場合はnullを許容する

Raises:

  • (TypeError)


96
97
98
99
100
101
# File 'lib/jabara/parse_com/schema.rb', line 96

def initialize(max: nil, default: nil) # default = nil の場合はnullを許容する
  raise TypeError, 'default must be string' unless default.is_a? ::String or default.nil?
  raise TypeError, 'max must be integer' unless max.is_a? ::Integer or max.nil?
  @max = max
  @default = default
end

Instance Method Details

#parse(data) ⇒ Object

Raises:

  • (TypeError)


103
104
105
106
107
108
109
# File 'lib/jabara/parse_com/schema.rb', line 103

def parse(data)
  return ::Jabara.null if data.nil? and @default.nil?
  return @default if data.nil?
  raise TypeError, 'data must be string' unless data.is_a? ::String or default.nil?
  data = data.slice(0, @max) unless @max.nil?
  ::Jabara.primitive(:string, data)
end