Sha256: 087b2cb10330fc11ad2fba88d39604f1d7fc6672b3351a5b6bf50f024531865c

Contents?: true

Size: 882 Bytes

Versions: 1

Compression:

Stored size: 882 Bytes

Contents

module Danica
  module Common extend ::ActiveSupport::Concern
    included do
      include Wrapper
      include DSL

      class << self
        def default_value(name, value)
          define_method(name) { |*_| value }
        end
      end

      default_value :constant?, false
      default_value :signaled?, false
    end

    def to_f
      raise Exception::NotImplemented
    end

    def to_tex
      to(:tex)
    end

    def to_gnu
      to(:gnu)
    end

    def to(format)
      case format.to_sym
      when :tex
        to_tex
      when :gnu
        to_gnu
      else
        raise Exception::FormatNotFound.new
      end
    end

    def valued?
      to_f.present?
    rescue Exception::NotDefined
      false
    end

    private

    def wrap_as_group(value)
      return value if is_grouped? || value.priority >= priority
      group(value)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
danica-2.4.3 lib/danica/common.rb