Sha256: 4945df69a541632fed7205cec5f5b4b4c4a151288a0e7cb541d58a9c8a1c7a3f

Contents?: true

Size: 1.37 KB

Versions: 15

Compression:

Stored size: 1.37 KB

Contents

# -*- coding: utf-8 -*-
require 'tengine/core'

module Tengine::Core::Validation

  class Definition
    attr_reader :format, :description
    def initialize(format, description)
      @format, @description = format.freeze, description.freeze
    end
    def message
      "は#{description}でなければなりません"
    end
    def options
      {:with => format, :message => message}
    end
  end

  # ベース名
  BASE_NAME = Definition.new(
    /\A[A-Za-z_][\w\-]*\Z/,
    "英文字またはアンダースコアから始まり、英文字、アンダースコア、ハイフンまたは数字で構成される文字列").freeze

  # イベント種別名
  EVENT_TYPE_NAME = Definition.new(
    /\A[A-Za-z_][\w\-\.\:]*\Z/,
    "英文字またはアンダースコアから始まり、英文字、アンダースコア、ハイフン、ドット、コロンまたは数字で構成される文字列").freeze

  # リソース識別子
  RESOURCE_IDENTIFIER_PROTOCOL_FORMAT = /\A\w+\Z/.freeze
  RESOURCE_IDENTIFIER = Definition.new(
    /\A#{RESOURCE_IDENTIFIER_PROTOCOL_FORMAT.source}:#{BASE_NAME.format.source}(?:\/#{BASE_NAME.format.source})*\Z/,
    "'プロトコル:要素1/要素2/.../要素N'という構造を持つ文字列(プロトコルは英数字あるいはアンダースコア、要素は英数字あるいはアンダースコアかハイフン)"
    ).freeze

end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
tengine_core-1.2.2 lib/tengine/core/validation.rb
tengine_core-1.2.1 lib/tengine/core/validation.rb
tengine_core-1.2.0 lib/tengine/core/validation.rb
tengine_core-1.1.0 lib/tengine/core/validation.rb
tengine_core-0.5.39 lib/tengine/core/validation.rb
tengine_core-0.5.38 lib/tengine/core/validation.rb
tengine_core-0.5.37 lib/tengine/core/validation.rb
tengine_core-0.5.36 lib/tengine/core/validation.rb
tengine_core-0.5.35 lib/tengine/core/validation.rb
tengine_core-0.5.34 lib/tengine/core/validation.rb
tengine_core-0.5.33 lib/tengine/core/validation.rb
tengine_core-0.5.32 lib/tengine/core/validation.rb
tengine_core-0.5.31 lib/tengine/core/validation.rb
tengine_core-0.5.30 lib/tengine/core/validation.rb
tengine_core-0.5.28 lib/tengine/core/validation.rb