Sha256: ec3212e7b4b50cdfc109d1af401e8a1e9d18bce9a6d5320eb7e3e3e356beab97

Contents?: true

Size: 1.27 KB

Versions: 13

Compression:

Stored size: 1.27 KB

Contents

# encoding: UTF-8

# Copyright 2011-2013 innoQ Deutschland GmbH
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

class Origin
  attr_accessor :initial_value, :value

  def initialize(value = nil)
    self.initial_value = value
    self.value = "_#{SecureRandom.hex(4)}"
  end

  def valid?
    valid = true

    if blank_node = initial_value.match(RDFAPI::BLANK_NODE_REGEXP)
      # blank node validation, should not contain special chars
      valid = false if CGI.escape(blank_node[1]) != blank_node[1]
    else
      # regular subject validation

      # should not start with a number
      valid = false if initial_value.match(/^\d.*/)

      # should not contain special chars
      valid = false if CGI.escape(initial_value) != initial_value
    end

    valid
  end

  def to_s
    value
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
iqvoc-4.14.5 app/aides/origin.rb
iqvoc-4.14.4 app/aides/origin.rb
iqvoc-4.13.2 app/aides/origin.rb
iqvoc-4.13.0 app/aides/origin.rb
iqvoc-4.12.1 app/aides/origin.rb
iqvoc-4.12.0 app/aides/origin.rb
iqvoc-4.11.1 app/aides/origin.rb
iqvoc-4.11.0 app/aides/origin.rb
iqvoc-4.10.0 app/aides/origin.rb
iqvoc-4.9.0 app/aides/origin.rb
iqvoc-4.8.2 app/aides/origin.rb
iqvoc-4.8.1 app/aides/origin.rb
iqvoc-4.8.0 app/aides/origin.rb