Module: ABMeter::Core::Protocol

Defined in:
lib/abmeter/core/protocol/type.rb

Defined Under Namespace

Classes: BooleanType, FloatType, IntegerType, StringType, Type, TypeRegistry

Constant Summary collapse

STRING =

Type name constants

'String'
INTEGER =
'Integer'
FLOAT =
'Float'
BOOLEAN =
'Boolean'

Class Method Summary collapse

Class Method Details

.all_typesObject



141
142
143
# File 'lib/abmeter/core/protocol/type.rb', line 141

def all_types
  registry.all.map(&:name)
end

.booleanObject



133
134
135
# File 'lib/abmeter/core/protocol/type.rb', line 133

def boolean
  type(BOOLEAN)
end

.cast!(value, type_name) ⇒ Object



151
152
153
# File 'lib/abmeter/core/protocol/type.rb', line 151

def cast!(value, type_name)
  type(type_name).cast!(value)
end

.floatObject



129
130
131
# File 'lib/abmeter/core/protocol/type.rb', line 129

def float
  type(FLOAT)
end

.integerObject



125
126
127
# File 'lib/abmeter/core/protocol/type.rb', line 125

def integer
  type(INTEGER)
end

.numerical?(type_name) ⇒ Boolean

Returns:

  • (Boolean)


145
146
147
148
149
# File 'lib/abmeter/core/protocol/type.rb', line 145

def numerical?(type_name)
  type(type_name).numerical?
rescue StandardError
  false
end

.stringObject



121
122
123
# File 'lib/abmeter/core/protocol/type.rb', line 121

def string
  type(STRING)
end

.type(name) ⇒ Object



137
138
139
# File 'lib/abmeter/core/protocol/type.rb', line 137

def type(name)
  registry.get(name)
end

.valid_for_type?(value, type_name) ⇒ Boolean

Returns:

  • (Boolean)


155
156
157
158
159
160
# File 'lib/abmeter/core/protocol/type.rb', line 155

def valid_for_type?(value, type_name)
  cast!(value, type_name)
  true
rescue ArgumentError
  false
end