Class: VectorEmbed::Maker::Number
Constant Summary
collapse
- FORMAT =
'%.16g'
Instance Attribute Summary
#cardinality, #k, #options, #parent
Class Method Summary
collapse
Instance Method Summary
collapse
#initialize, #pairs, pick
Class Method Details
.numify(v) ⇒ Object
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/vector_embed/maker/number.rb', line 16
def numify(v)
num = if v.is_a?(String)
if v.include?('.') or v.include?('e')
v.to_f
else
v.to_i
end
else
v
end
end
|
.want?(v, parent) ⇒ Boolean
7
8
9
10
11
12
13
14
|
# File 'lib/vector_embed/maker/number.rb', line 7
def want?(v, parent)
case v
when Numeric, NilClass, NULL, SLASH_N
true
when String
v =~ JUST_A_NUMBER or v =~ UGLY_FLOAT
end
end
|
Instance Method Details
45
46
47
48
|
# File 'lib/vector_embed/maker/number.rb', line 45
def keep_zero?
return @keep_zero_query if defined?(@keep_zero_query)
@keep_zero = options && !!options[:keep_zero]
end
|
#value(v) ⇒ Object
31
32
33
34
35
36
37
38
39
40
41
42
43
|
# File 'lib/vector_embed/maker/number.rb', line 31
def value(v)
case v
when Numeric, JUST_A_NUMBER, UGLY_FLOAT
num = Number.numify v
if num.nonzero? or keep_zero?
FORMAT % num
end
when NilClass, NULL, SLASH_N
keep_zero? ? 0 : nil
else
raise ArgumentError, "Can't embed #{v.inspect} in number feature #{k.inspect}"
end
end
|