class Argumenta::Objects::Proposition
A proposition models an assertion as a string of text. It has an associated object record and SHA-1 hash. The object record is similar to Git’s blob. The SHA-1 identifies the proposition.
Attributes
error[RW]
text[RW]
Public Class Methods
new(text)
click to toggle source
Initializes a new proposition.
text = "My proposition!" proposition = Proposition.new text
# File lib/argumenta/objects/proposition.rb, line 16 def initialize(text) @text = text end
validate(object)
click to toggle source
Validates an object as a proposition.
valid = Proposition.validate object
@raise [ValidationError] On failure.
# File lib/argumenta/objects/proposition.rb, line 41 def self.validate(object) unless object.is_a? self raise ValidationError "Object must be a proposition." end object.validate end
Public Instance Methods
record()
click to toggle source
Gets the proposition’s object record.
record = proposition.record
# File lib/argumenta/objects/proposition.rb, line 24 def record "proposition " + @text end
sha1()
click to toggle source
Gets the proposition’s SHA-1.
sha1 = proposition.sha1
# File lib/argumenta/objects/proposition.rb, line 32 def sha1 Digest::SHA1.hexdigest self.record end
valid?()
click to toggle source
Checks whether proposition is valid.
valid = proposition.valid?
@return [Boolean] The validation status.
# File lib/argumenta/objects/proposition.rb, line 74 def valid? begin self.validate return true rescue ValidationError => err @error = err return false end end
validate()
click to toggle source
Validates the proposition.
begin proposition.validate rescue Argumenta::ValidationError => err puts "Validation failed: ", err.message end
@raise [ValidationError] On validation failure.
# File lib/argumenta/objects/proposition.rb, line 57 def validate unless @text.is_a? String raise ValidationError, "Proposition text must be a string." end unless @text.length > 0 and text.match /\S+/ raise ValidationError, "Proposition text must not be empty." end unless @text.length <= 240 raise ValidationError, "Proposition text must be 240 characters or less." end end