Module: ChupakabraTools::Convert

Defined in:
lib/chupakabra_tools/convert.rb

Class Method Summary collapse

Class Method Details

.string_to_value(data, data_type) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/chupakabra_tools/convert.rb', line 3

def self.string_to_value(data, data_type)
    result_value = nil

    if data
        data = data.to_s unless data.is_a?(String)
        data_type = "string" if data_type.nil?
        data_type = data_type.to_s unless data_type.is_a?(String)
        data_type.downcase!


        begin
            result_value = case data_type
                               when "integer", :integer
                                   data.to_i
                               when "float", :float, "decimal", :decimal
                                   data.to_f
                               when "datetime", :datetime
                                   data.to_datetime
                               when "date", :date
                                   data.to_date
                               when "time", :time
                                   data.to_time
                               when "string", :string, "text", :text
                                   data
                               when "boolean", :boolean
                                   [1, "1", "true", :true, true].include?(data) ? true : false
                               else
                                   nil
                           end
        rescue
            #ignored
        end
    end
    result_value
end

.value_to_string(data, data_type) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/chupakabra_tools/convert.rb', line 39

def self.value_to_string(data, data_type)
    result_value = nil
    data_type.strip! if data_type && data.is_a?(String)
    begin
        result_value = case data_type
                           when "integer", :integer
                               data
                           when "float", :float, "decimal", :decimal
                               data
                           when "datetime", :datetime
                               data
                           when "date", :date
                               data
                           when "time", :time
                           when data
                           when "string", :string, "text", :text
                               data
                           when "boolean", :boolean
                               data == "1" || data == "true" || data == "on" ? "true" : "false"
                           else
                               data
                       end
    rescue
        #ignored
    end
    result_value
end