Sha256: 86424a4bf4f543b54994ad5eae6eab09bd1ee1bdeaa8d080198f17cbebc5f5ac

Contents?: true

Size: 1.08 KB

Versions: 4

Compression:

Stored size: 1.08 KB

Contents

require 'semi/variables/string'
require 'semi/variables/integer'
require 'semi/variables/boolean'
require 'semi/variables/path'
require 'semi/variables/url'

module Semi

  class VariableError < RuntimeError; end 

  module Variable

    def self.import(val)
      puts "#{val}: #{val.class}"
      # look for the obsure patterns before returning a string var
      case
      when Semi::Variables::Url::validate(val)
        return Semi::Variables::Url.new(val)
      when Semi::Variables::Path.validate(val)
        return Semi::Variables::Path.new(val)
      when Semi::Variables::Boolean.validate(val)
        return Semi::Variables::Boolean.new(val)
      when Semi::Variables::Integer.validate(val)
        return Semi::Variables::Integer.new(val)
      when val.class == Fixnum
        return Semi::Variables::Integer.new(val)
      when val.class == TrueClass
        return Semi::Variables::Boolean.new(val)
      when val.class == FalseClass
        return Semi::Variables::Boolean.new(val)
      else
        return Semi::Variables::String.new(val)
      end
      
    end

    


  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
semi-0.3.3 lib/semi/variable.rb
semi-0.3.2 lib/semi/variable.rb
semi-0.3.1 lib/semi/variable.rb
semi-0.3.0 lib/semi/variable.rb