Class: Stupidedi::Versions::FunctionalGroups::FortyTen::ElementTypes::FixnumVal::NonEmpty
Overview
Non-empty numeric value. Shouldn’t be directly instantiated – instead, use the value constructors.
Instance Attribute Summary collapse
#position, #usage
Mathematical Operators
collapse
Instance Method Summary
collapse
empty, #numeric?, parse, #too_long?, #too_short?, value
#allowed?, #component?, #date?, #definition, #id?, #leaf?, #numeric?, #simple?, #string?, #time?, #to_x12
#element?, #size
#blank?, #characters, #component?, #composite?, #definition, #element?, #functional_group?, #interchange?, #invalid?, #loop?, #present?, #repeated?, #segment?, #separator?, #simple?, #size, #table?, #transaction_set?, #transmission?
Methods included from Color
ansi, #ansi
Constructor Details
#initialize(value, usage, position) ⇒ NonEmpty
Returns a new instance of NonEmpty.
167
168
169
170
|
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/fixnum_val.rb', line 167
def initialize(value, usage, position)
@value = value
super(usage, position)
end
|
Instance Attribute Details
163
164
165
|
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/fixnum_val.rb', line 163
def value
@value
end
|
Instance Method Details
251
252
253
|
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/fixnum_val.rb', line 251
def %(other)
copy(:value => (@value % other).to_d)
end
|
246
247
248
|
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/fixnum_val.rb', line 246
def *(other)
copy(:value => (@value * other).to_d)
end
|
241
242
243
|
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/fixnum_val.rb', line 241
def **(other)
copy(:value => (@value ** other).to_d)
end
|
231
232
233
|
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/fixnum_val.rb', line 231
def +(other)
copy(:value => (@value + other).to_d)
end
|
261
262
263
|
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/fixnum_val.rb', line 261
def +@
self
end
|
236
237
238
|
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/fixnum_val.rb', line 236
def -(other)
copy(:value => (@value - other).to_d)
end
|
256
257
258
|
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/fixnum_val.rb', line 256
def -@
copy(:value => -@value)
end
|
226
227
228
|
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/fixnum_val.rb', line 226
def /(other)
copy(:value => (@value / other).to_d)
end
|
#<=>(other) ⇒ -1, ...
271
272
273
274
|
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/fixnum_val.rb', line 271
def <=>(other)
a, b = coerce(other)
a.value <=> b
end
|
266
267
268
|
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/fixnum_val.rb', line 266
def abs
copy(:value => @value.abs)
end
|
#coerce(other) ⇒ Array(NonEmpty, Numeric)
189
190
191
192
193
194
195
196
197
|
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/fixnum_val.rb', line 189
def coerce(other)
if other.respond_to?(:to_d)
return self, other.to_d
else
raise TypeError, "#{other.class} can't be coerced into FixnumVal"
end
end
|
#copy(changes = {}) ⇒ NonEmpty
173
174
175
176
177
178
|
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/fixnum_val.rb', line 173
def copy(changes = {})
NonEmpty.new \
changes.fetch(:value, @value),
changes.fetch(:usage, usage),
changes.fetch(:position, position)
end
|
#empty? ⇒ Boolean
184
185
186
|
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/fixnum_val.rb', line 184
def empty?
false
end
|
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
|
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/fixnum_val.rb', line 200
def inspect
id = definition.bind do |d|
"[#{'% 5s' % d.id}: #{d.name}]".bind do |s|
if usage.forbidden?
ansi.forbidden(s)
elsif usage.required?
ansi.required(s)
else
ansi.optional(s)
end
end
end
ansi.element("Nn.value#{id}") << "(#{to_s})"
end
|
217
218
219
220
|
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/fixnum_val.rb', line 217
def to_s
(@value * (10 ** definition.precision)).to_i.to_s
end
|
#valid? ⇒ Boolean
180
181
182
|
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/fixnum_val.rb', line 180
def valid?
true
end
|