Sha256: e695bbae9f57501778d70a7982c5fbf4b3c7c193083865edf7557b19cd28833b

Contents?: true

Size: 957 Bytes

Versions: 4

Compression:

Stored size: 957 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
      default_value :container?, 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

    def content
      self
    end

    private

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

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
danica-2.6.0 lib/danica/common.rb
danica-2.5.1 lib/danica/common.rb
danica-2.5.0 lib/danica/common.rb
danica-2.4.4 lib/danica/common.rb