Sha256: a04d235392e19b46beea62a3c07ae7b96fb67f4499acc4296f678bf5f3b08a0c

Contents?: true

Size: 674 Bytes

Versions: 3

Compression:

Stored size: 674 Bytes

Contents

module Weskit::WML::Mixins
  module Validator
    module_function

    def raise_unless type, item
      unless item.is_a? type
        raise ::Weskit::WML::Errors::InvalidItem, "Invalid #{type}"
      end
    end

    def raise_if_invalid identifier
      unless "#{identifier}".match identifier_pattern
        raise ::Weskit::WML::Errors::InvalidIdentifier, "Invalid identifier"
      end
    end

    def raise_if_missing object, method
      unless object.respond_to? "#{method}="
        raise ::Weskit::WML::Errors::InvalidOption, "Object doesn't have #{method}"
      end
    end

    private

    def identifier_pattern
      %r{^[a-z][a-z_0-9]*$}
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
weskit-0.2.1 lib/weskit/wml/mixins/validator.rb
weskit-0.2.0 lib/weskit/wml/mixins/validator.rb
weskit-0.1.0 lib/weskit/wml/mixins/validator.rb