Sha256: 035a3661a9f9d5b99a19615437f520d505ea9c6297d9b2f67cd1998f503b1d57

Contents?: true

Size: 1.11 KB

Versions: 1

Compression:

Stored size: 1.11 KB

Contents

require 'yaml'

module Arison
  class Util
    def self.get_profile(config_path, profile)
      @config = YAML.load_file(config_path)
      @config[profile]
    end

    def self.parse_json(buffer)
      begin
        data = JSON.parse(buffer)
      rescue => e
        data = []
        buffer.lines.each do |line|
          data << JSON.parse(line)
        end
      end
      data
    end

    def self.get_type(k, v)
      if v.nil?
        %Q{string}
      elsif k =~ /^id$/i
        nil
      elsif v.class == String
        to_time_or_nil(v).nil? ? %Q{string} : %Q{datetime}
      elsif v.class == TrueClass || v.class == FalseClass
        %Q{boolean}
      elsif v.class == Fixnum
        %Q{integer}
      elsif v.class == Float
        %Q{float}
      elsif v.class == Array || v.class == Hash
        %Q{text}
      elsif v.respond_to?(:strftime)
        %Q{datetime}
      end
    end

    def self.to_time_or_nil(value)
      return nil if value.slice(0, 4) !~ /^[0-9][0-9][0-9][0-9]/
      begin
        time = value.to_time
        time.to_i >= 0 ? time : nil
      rescue => e
        nil
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
arison-0.2.0 lib/arison/util.rb