Sha256: 38b219e165d581df2baa269e8494458bbb0d0030aaad7d9767b0e0461ecb4f8b

Contents?: true

Size: 1.15 KB

Versions: 21

Compression:

Stored size: 1.15 KB

Contents

module BEL
  module Model

    module ParameterValidation

      def valid?
        return false unless value
        return true unless @ns
        @ns.respond_to?(:values) && ns.values.include?(value.to_sym)
      end
    end

    class Parameter
      include BEL::Quoting
      include Comparable
      include ParameterValidation
      attr_accessor :ns, :value, :enc

      def initialize(ns, value, enc=nil)
        @ns = ns
        @value = value
        @enc = enc || ''
      end

      def <=>(other)
        ns_compare = @ns <=> other.ns
        if ns_compare == 0
          @value <=> other.value
        else
          ns_compare
        end
      end

      def hash
        [@ns, @value].hash
      end

      def ==(other)
        return false if other == nil
        @ns == other.ns && @value == other.value
      end
      alias_method :eql?, :'=='

      def to_bel
        if @ns
          prefix = @ns.respond_to?(:prefix) ? @ns.prefix : @ns[:prefix]
          prefix = prefix ? (prefix.to_s + ':') : ''
        else
          prefix = ''
        end
        %Q{#{prefix}#{ensure_quotes(@value)}}
      end
      alias_method :to_s, :to_bel
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
bel-0.4.2 lib/bel/evidence_model/bel_parameter.rb
bel-0.4.1 lib/bel/evidence_model/bel_parameter.rb
bel-0.4.0 lib/bel/evidence_model/bel_parameter.rb
bel-0.4.0.beta.13 lib/bel/evidence_model/bel_parameter.rb
bel-0.4.0.beta.12 lib/bel/evidence_model/bel_parameter.rb
bel-0.4.0.beta.11 lib/bel/evidence_model/bel_parameter.rb
bel-0.4.0.beta.10 lib/bel/evidence_model/bel_parameter.rb
bel-0.4.0.beta.9 lib/bel/evidence_model/bel_parameter.rb
bel-0.4.0.beta.8 lib/bel/evidence_model/bel_parameter.rb
bel-0.4.0.beta.7 lib/bel/evidence_model/bel_parameter.rb
bel-0.4.0.beta.5 lib/bel/evidence_model/bel_parameter.rb
bel-0.4.0.beta.4 lib/bel/evidence_model/bel_parameter.rb
bel-0.4.0.beta.3 lib/bel/evidence_model/bel_parameter.rb
bel-0.4.0.beta.2 lib/bel/evidence_model/bel_parameter.rb
bel-0.4.0.beta1 lib/bel/evidence_model/bel_parameter.rb
bel-0.3.3-x64-mingw32 lib/bel/evidence_model/bel_parameter.rb
bel-0.3.3-x86-mingw32 lib/bel/evidence_model/bel_parameter.rb
bel-0.3.3 lib/bel/evidence_model/bel_parameter.rb
bel-0.3.2-x64-mingw32 lib/bel/evidence_model/bel_parameter.rb
bel-0.3.2-x86-mingw32 lib/bel/evidence_model/bel_parameter.rb