spira 0.0.12 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -18,11 +18,11 @@ module Spira::Types
18
18
  end
19
19
 
20
20
  def self.serialize(value)
21
- RDF::Literal.new(value.to_f, :datatype => XSD.double)
21
+ RDF::Literal.new(value.to_f, :datatype => RDF::XSD.double)
22
22
  end
23
23
 
24
- register_alias XSD.float
25
- register_alias XSD.double
24
+ register_alias RDF::XSD.float
25
+ register_alias RDF::XSD.double
26
26
 
27
27
  end
28
28
  end
@@ -0,0 +1,26 @@
1
+ module Spira::Types
2
+
3
+ ##
4
+ # A {Spira::Type} for gYear. Values will be associated with the
5
+ # `XSD.gYear` type.
6
+ #
7
+ # A {Spira::Resource} property can reference this type as
8
+ # `Spira::Types::GYear`, `GYear`, or `XSD.gYear`.
9
+ #
10
+ # @see Spira::Type
11
+ # @see http://rdf.rubyforge.org/RDF/Literal.html
12
+ class GYear
13
+ include Spira::Type
14
+
15
+ def self.unserialize(value)
16
+ object = value.object.to_i
17
+ end
18
+
19
+ def self.serialize(value)
20
+ RDF::Literal.new(value, :datatype => XSD.gYear)
21
+ end
22
+
23
+ register_alias XSD.gYear
24
+
25
+ end
26
+ end
@@ -0,0 +1,27 @@
1
+ module Spira::Types
2
+
3
+ ##
4
+ # A {Spira::Type} for integer values. Values will be associated with the
5
+ # `XSD.int` type.
6
+ #
7
+ # A {Spira::Resource} property can reference this type as
8
+ # `Spira::Types::Int`, `Int`, or `XSD.int`.
9
+ #
10
+ # @see Spira::Type
11
+ # @see http://rdf.rubyforge.org/RDF/Literal.html
12
+ class Int
13
+
14
+ include Spira::Type
15
+
16
+ def self.unserialize(value)
17
+ value.object.to_i
18
+ end
19
+
20
+ def self.serialize(value)
21
+ RDF::Literal.new(value, :datatype => XSD.int)
22
+ end
23
+
24
+ register_alias XSD.int
25
+
26
+ end
27
+ end
@@ -14,14 +14,14 @@ module Spira::Types
14
14
  include Spira::Type
15
15
 
16
16
  def self.unserialize(value)
17
- value.object
17
+ value.object.to_i
18
18
  end
19
19
 
20
20
  def self.serialize(value)
21
- RDF::Literal.new(value)
21
+ RDF::Literal.new(value, :datatype => XSD.integer)
22
22
  end
23
23
 
24
- register_alias XSD.integer
24
+ register_alias RDF::XSD.integer
25
25
 
26
26
  end
27
27
  end
@@ -0,0 +1,27 @@
1
+ module Spira::Types
2
+
3
+ ##
4
+ # A {Spira::Type} for integer values. Values will be associated with the
5
+ # `XSD.long` type.
6
+ #
7
+ # A {Spira::Resource} property can reference this type as
8
+ # `Spira::Types::Long`, `Long`, or `XSD.long`.
9
+ #
10
+ # @see Spira::Type
11
+ # @see http://rdf.rubyforge.org/RDF/Literal.html
12
+ class Long
13
+
14
+ include Spira::Type
15
+
16
+ def self.unserialize(value)
17
+ value.object.to_i
18
+ end
19
+
20
+ def self.serialize(value)
21
+ RDF::Literal.new(value, :datatype => XSD.long)
22
+ end
23
+
24
+ register_alias XSD.long
25
+
26
+ end
27
+ end
@@ -0,0 +1,27 @@
1
+ module Spira::Types
2
+
3
+ ##
4
+ # A {Spira::Type} for negative integer values. Values will be associated with the
5
+ # `XSD.negativeInteger` type.
6
+ #
7
+ # A {Spira::Resource} property can reference this type as
8
+ # `Spira::Types::NegativeInteger`, `NegativeInteger`, or `XSD.negativeInteger`.
9
+ #
10
+ # @see Spira::Type
11
+ # @see http://rdf.rubyforge.org/RDF/Literal.html
12
+ class NegativeInteger
13
+
14
+ include Spira::Type
15
+
16
+ def self.unserialize(value)
17
+ value.object.to_i
18
+ end
19
+
20
+ def self.serialize(value)
21
+ RDF::Literal.new(value, :datatype => XSD.negativeInteger)
22
+ end
23
+
24
+ register_alias XSD.negativeInteger
25
+
26
+ end
27
+ end
@@ -0,0 +1,27 @@
1
+ module Spira::Types
2
+
3
+ ##
4
+ # A {Spira::Type} for nonnegative integer values. Values will be associated with the
5
+ # `XSD.nonNegativeInteger` type.
6
+ #
7
+ # A {Spira::Resource} property can reference this type as
8
+ # `Spira::Types::NonNegativeInteger`, `NonNegativeInteger`, or `XSD.nonNegativeInteger`.
9
+ #
10
+ # @see Spira::Type
11
+ # @see http://rdf.rubyforge.org/RDF/Literal.html
12
+ class NonNegativeInteger
13
+
14
+ include Spira::Type
15
+
16
+ def self.unserialize(value)
17
+ value.object.to_i
18
+ end
19
+
20
+ def self.serialize(value)
21
+ RDF::Literal.new(value, :datatype => XSD.nonNegativeInteger)
22
+ end
23
+
24
+ register_alias XSD.nonNegativeInteger
25
+
26
+ end
27
+ end
@@ -0,0 +1,27 @@
1
+ module Spira::Types
2
+
3
+ ##
4
+ # A {Spira::Type} for nonpositive integer values. Values will be associated with the
5
+ # `XSD.nonPositiveInteger` type.
6
+ #
7
+ # A {Spira::Resource} property can reference this type as
8
+ # `Spira::Types::NonPositiveInteger`, `NonPositiveInteger`, or `XSD.nonPositiveInteger`.
9
+ #
10
+ # @see Spira::Type
11
+ # @see http://rdf.rubyforge.org/RDF/Literal.html
12
+ class NonPositiveInteger
13
+
14
+ include Spira::Type
15
+
16
+ def self.unserialize(value)
17
+ value.object.to_i
18
+ end
19
+
20
+ def self.serialize(value)
21
+ RDF::Literal.new(value, :datatype => XSD.nonPositiveInteger)
22
+ end
23
+
24
+ register_alias XSD.nonPositiveInteger
25
+
26
+ end
27
+ end
@@ -0,0 +1,27 @@
1
+ module Spira::Types
2
+
3
+ ##
4
+ # A {Spira::Type} for positive integer values. Values will be associated with the
5
+ # `XSD.positiveInteger` type.
6
+ #
7
+ # A {Spira::Resource} property can reference this type as
8
+ # `Spira::Types::PositiveInteger`, `PositiveInteger`, or `XSD.positiveInteger`.
9
+ #
10
+ # @see Spira::Type
11
+ # @see http://rdf.rubyforge.org/RDF/Literal.html
12
+ class PositiveInteger
13
+
14
+ include Spira::Type
15
+
16
+ def self.unserialize(value)
17
+ value.object.to_i
18
+ end
19
+
20
+ def self.serialize(value)
21
+ RDF::Literal.new(value, :datatype => XSD.positiveInteger)
22
+ end
23
+
24
+ register_alias XSD.positiveInteger
25
+
26
+ end
27
+ end
@@ -21,7 +21,7 @@ module Spira::Types
21
21
  RDF::Literal.new(value.to_s)
22
22
  end
23
23
 
24
- register_alias XSD.string
24
+ register_alias RDF::XSD.string
25
25
 
26
26
  end
27
27
  end
@@ -0,0 +1,29 @@
1
+ module Spira
2
+ module Utils
3
+ ##
4
+ # Rename a resource in the repository to the new given subject.
5
+ # Changes are immediately saved to the repository.
6
+ #
7
+ # @param [RDF::Resource] old_subject
8
+ # @param [RDF::Resource] new_subject
9
+ # @param [RDF::Repository] repository
10
+ def rename!(old_subject, new_subject, repository = nil)
11
+ repository ||= Spira.repository(:default)
12
+ update_repository = RDF::Repository.new
13
+
14
+ old_subject_statements = repository.query(:subject => old_subject)
15
+ old_subject_statements.each do |statement|
16
+ update_repository << RDF::Statement.new(new_subject, statement.predicate, statement.object)
17
+ end
18
+
19
+ old_object_statements = repository.query(:object => old_subject)
20
+ old_object_statements.each do |statement|
21
+ update_repository << RDF::Statement.new(statement.subject, statement.predicate, new_subject)
22
+ end
23
+
24
+ repository.insert *update_repository
25
+ repository.delete *(old_subject_statements + old_object_statements)
26
+ end
27
+ module_function :rename!
28
+ end
29
+ end
@@ -0,0 +1,77 @@
1
+ module Spira
2
+ # = Spira RecordInvalid
3
+ #
4
+ # Raised by <tt>save!</tt> and <tt>create!</tt> when the record is invalid. Use the
5
+ # +record+ method to retrieve the record which did not validate.
6
+ #
7
+ # begin
8
+ # complex_operation_that_calls_save!_internally
9
+ # rescue Spira::RecordInvalid => invalid
10
+ # puts invalid.record.errors
11
+ # end
12
+ class RecordInvalid < SpiraError
13
+ attr_reader :record
14
+ def initialize(record)
15
+ @record = record
16
+ errors = @record.errors.full_messages.join(", ")
17
+ # TODO: use I18n later
18
+ # super(I18n.t("activerecord.errors.messages.record_invalid", :errors => errors))
19
+ super "invalid record"
20
+ end
21
+ end
22
+
23
+ module Validations
24
+ extend ActiveSupport::Concern
25
+ include ActiveModel::Validations
26
+
27
+ module ClassMethods
28
+ # Creates an object just like Base.create but calls <tt>save!</tt> instead of +save+
29
+ # so an exception is raised if the record is invalid.
30
+ def create!(properties = {}, options = {}, &block)
31
+ if properties.is_a?(Array)
32
+ properties.collect { |attr| create!(attr, options, &block) }
33
+ else
34
+ object = new(properties, options)
35
+ yield(object) if block_given?
36
+ object.save!
37
+ object
38
+ end
39
+ end
40
+ end
41
+
42
+ # The validation process on save can be skipped by passing <tt>:validate => false</tt>. The regular Base#save method is
43
+ # replaced with this when the validations module is mixed in, which it is by default.
44
+ def save(options={})
45
+ perform_validations(options) ? super : false
46
+ end
47
+
48
+ # Attempts to save the record just like Base#save but will raise a +RecordInvalid+ exception instead of returning false
49
+ # if the record is not valid.
50
+ def save!(options={})
51
+ perform_validations(options) ? super : raise(RecordInvalid.new(self))
52
+ end
53
+
54
+ # Runs all the validations within the specified context. Returns true if no errors are found,
55
+ # false otherwise.
56
+ #
57
+ # If the argument is false (default is +nil+), the context is set to <tt>:create</tt> if
58
+ # <tt>new_record?</tt> is true, and to <tt>:update</tt> if it is not.
59
+ #
60
+ # Validations with no <tt>:on</tt> option will run no matter the context. Validations with
61
+ # some <tt>:on</tt> option will only run in the specified context.
62
+ def valid?(context = nil)
63
+ context ||= (new_record? ? :create : :update)
64
+ output = super(context)
65
+ errors.empty? && output
66
+ end
67
+
68
+ protected
69
+
70
+ def perform_validations(options={})
71
+ perform_validation = options[:validate] != false
72
+ perform_validation ? valid?(options[:context]) : true
73
+ end
74
+ end
75
+ end
76
+
77
+ require "spira/validations/uniqueness"
@@ -0,0 +1,33 @@
1
+ module Spira
2
+ module Validations
3
+ class UniquenessValidator < ActiveModel::EachValidator
4
+ # Unfortunately, we have to tie Uniqueness validators to a class.
5
+ def setup(klass)
6
+ @klass = klass
7
+ end
8
+
9
+ def validate_each(record, attribute, value)
10
+ @klass.find_each(:conditions => {attribute => value}) do |other_record|
11
+ if other_record.subject != record.subject
12
+ record.errors.add(attribute, "is already taken")
13
+ break
14
+ end
15
+ end
16
+ end
17
+ end
18
+
19
+ module ClassMethods
20
+ # Validates whether the value of the specified attributes are unique across the system.
21
+ # Useful for making sure that only one user
22
+ # can be named "davidhh".
23
+ #
24
+ # class Person < Spira::Base
25
+ # validates_uniqueness_of :user_name
26
+ # end
27
+ #
28
+ def validates_uniqueness_of(*attr_names)
29
+ validates_with UniquenessValidator, _merge_attributes(attr_names)
30
+ end
31
+ end
32
+ end
33
+ end
data/lib/spira/version.rb CHANGED
@@ -1,12 +1,9 @@
1
1
  module Spira
2
2
  module VERSION
3
- MAJOR = 0
4
- MINOR = 0
5
- TINY = 12
6
- EXTRA = nil
3
+ VERSION_FILE = File.join(File.expand_path(File.dirname(__FILE__)), "..", "..", "VERSION")
4
+ MAJOR, MINOR, TINY, EXTRA = File.read(VERSION_FILE).chop.split(".")
7
5
 
8
- STRING = [MAJOR, MINOR, TINY].join('.')
9
- STRING << ".#{EXTRA}" if EXTRA
6
+ STRING = [MAJOR, MINOR, TINY, EXTRA].compact.join('.')
10
7
 
11
8
  ##
12
9
  # @return [String]
metadata CHANGED
@@ -1,181 +1,276 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: spira
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 0
8
- - 12
9
- version: 0.0.12
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.0
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Ben Lavender
13
9
  autorequire:
14
- bindir:
10
+ bindir:
15
11
  - bin
16
12
  cert_chain: []
17
-
18
- date: 2011-02-10 00:00:00 +01:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
13
+ date: 2013-03-01 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
22
16
  name: rdf-spec
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- segments:
30
- - 0
31
- - 2
32
- - 2
33
- version: 0.2.2
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: '1.0'
34
23
  type: :development
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: rspec
38
24
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- segments:
45
- - 1
46
- - 3
47
- - 0
48
- version: 1.3.0
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ version: '1.0'
31
+ - !ruby/object:Gem::Dependency
32
+ name: rspec
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ~>
37
+ - !ruby/object:Gem::Version
38
+ version: 2.12.0
49
39
  type: :development
50
- version_requirements: *id002
51
- - !ruby/object:Gem::Dependency
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: 2.12.0
47
+ - !ruby/object:Gem::Dependency
52
48
  name: yard
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 0.8.3
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ version: 0.8.3
63
+ - !ruby/object:Gem::Dependency
64
+ name: redcarpet
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ~>
69
+ - !ruby/object:Gem::Version
70
+ version: 2.2.2
71
+ type: :development
53
72
  prerelease: false
54
- requirement: &id003 !ruby/object:Gem::Requirement
55
- none: false
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- segments:
60
- - 0
61
- - 5
62
- - 3
63
- version: 0.5.3
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: 2.2.2
79
+ - !ruby/object:Gem::Dependency
80
+ name: guard
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ~>
85
+ - !ruby/object:Gem::Version
86
+ version: 1.2.3
64
87
  type: :development
65
- version_requirements: *id003
66
- - !ruby/object:Gem::Dependency
67
- name: rdf
68
88
  prerelease: false
69
- requirement: &id004 !ruby/object:Gem::Requirement
70
- none: false
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- segments:
75
- - 0
76
- - 2
77
- - 3
78
- version: 0.2.3
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ~>
93
+ - !ruby/object:Gem::Version
94
+ version: 1.2.3
95
+ - !ruby/object:Gem::Dependency
96
+ name: guard-rspec
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ~>
101
+ - !ruby/object:Gem::Version
102
+ version: 1.1.0
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: 1.1.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: guard-ctags-bundler
113
+ requirement: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ~>
117
+ - !ruby/object:Gem::Version
118
+ version: 0.1.1
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ~>
125
+ - !ruby/object:Gem::Version
126
+ version: 0.1.1
127
+ - !ruby/object:Gem::Dependency
128
+ name: rdf
129
+ requirement: !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ~>
133
+ - !ruby/object:Gem::Version
134
+ version: '1.0'
79
135
  type: :runtime
80
- version_requirements: *id004
81
- - !ruby/object:Gem::Dependency
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ~>
141
+ - !ruby/object:Gem::Version
142
+ version: '1.0'
143
+ - !ruby/object:Gem::Dependency
82
144
  name: rdf-isomorphic
145
+ requirement: !ruby/object:Gem::Requirement
146
+ none: false
147
+ requirements:
148
+ - - ~>
149
+ - !ruby/object:Gem::Version
150
+ version: '1.0'
151
+ type: :runtime
83
152
  prerelease: false
84
- requirement: &id005 !ruby/object:Gem::Requirement
85
- none: false
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- segments:
90
- - 0
91
- - 3
92
- - 0
153
+ version_requirements: !ruby/object:Gem::Requirement
154
+ none: false
155
+ requirements:
156
+ - - ~>
157
+ - !ruby/object:Gem::Version
158
+ version: '1.0'
159
+ - !ruby/object:Gem::Dependency
160
+ name: promise
161
+ requirement: !ruby/object:Gem::Requirement
162
+ none: false
163
+ requirements:
164
+ - - ~>
165
+ - !ruby/object:Gem::Version
93
166
  version: 0.3.0
94
167
  type: :runtime
95
- version_requirements: *id005
96
- - !ruby/object:Gem::Dependency
97
- name: promise
98
168
  prerelease: false
99
- requirement: &id006 !ruby/object:Gem::Requirement
100
- none: false
101
- requirements:
102
- - - ">="
103
- - !ruby/object:Gem::Version
104
- segments:
105
- - 0
106
- - 3
107
- - 0
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ none: false
171
+ requirements:
172
+ - - ~>
173
+ - !ruby/object:Gem::Version
108
174
  version: 0.3.0
175
+ - !ruby/object:Gem::Dependency
176
+ name: activemodel
177
+ requirement: !ruby/object:Gem::Requirement
178
+ none: false
179
+ requirements:
180
+ - - ~>
181
+ - !ruby/object:Gem::Version
182
+ version: '3'
109
183
  type: :runtime
110
- version_requirements: *id006
111
- description: Spira is a framework for using the information in RDF.rb repositories as model objects.
184
+ prerelease: false
185
+ version_requirements: !ruby/object:Gem::Requirement
186
+ none: false
187
+ requirements:
188
+ - - ~>
189
+ - !ruby/object:Gem::Version
190
+ version: '3'
191
+ - !ruby/object:Gem::Dependency
192
+ name: activesupport
193
+ requirement: !ruby/object:Gem::Requirement
194
+ none: false
195
+ requirements:
196
+ - - ~>
197
+ - !ruby/object:Gem::Version
198
+ version: '3'
199
+ type: :runtime
200
+ prerelease: false
201
+ version_requirements: !ruby/object:Gem::Requirement
202
+ none: false
203
+ requirements:
204
+ - - ~>
205
+ - !ruby/object:Gem::Version
206
+ version: '3'
207
+ description: Spira is a framework for using the information in RDF.rb repositories
208
+ as model objects.
112
209
  email: blavender@gmail.com
113
210
  executables: []
114
-
115
211
  extensions: []
116
-
117
212
  extra_rdoc_files: []
118
-
119
- files:
213
+ files:
120
214
  - CHANGES.md
121
215
  - AUTHORS
122
- - README
216
+ - README.md
123
217
  - UNLICENSE
218
+ - lib/rdf/ext/uri.rb
219
+ - lib/spira/association_reflection.rb
124
220
  - lib/spira/base.rb
125
- - lib/spira/errors.rb
126
221
  - lib/spira/exceptions.rb
127
- - lib/spira/extensions.rb
128
- - lib/spira/resource/class_methods.rb
129
- - lib/spira/resource/dsl.rb
130
- - lib/spira/resource/instance_methods.rb
131
- - lib/spira/resource/validations.rb
222
+ - lib/spira/persistence.rb
223
+ - lib/spira/reflections.rb
132
224
  - lib/spira/resource.rb
225
+ - lib/spira/serialization.rb
133
226
  - lib/spira/type.rb
134
227
  - lib/spira/types/any.rb
135
228
  - lib/spira/types/boolean.rb
136
229
  - lib/spira/types/date.rb
230
+ - lib/spira/types/dateTime.rb
137
231
  - lib/spira/types/decimal.rb
138
232
  - lib/spira/types/float.rb
233
+ - lib/spira/types/gYear.rb
234
+ - lib/spira/types/int.rb
139
235
  - lib/spira/types/integer.rb
236
+ - lib/spira/types/long.rb
140
237
  - lib/spira/types/native.rb
238
+ - lib/spira/types/negativeInteger.rb
239
+ - lib/spira/types/nonNegativeInteger.rb
240
+ - lib/spira/types/nonPositiveInteger.rb
241
+ - lib/spira/types/positiveInteger.rb
141
242
  - lib/spira/types/string.rb
142
243
  - lib/spira/types/uri.rb
143
244
  - lib/spira/types.rb
245
+ - lib/spira/utils.rb
246
+ - lib/spira/validations/uniqueness.rb
247
+ - lib/spira/validations.rb
144
248
  - lib/spira/version.rb
145
249
  - lib/spira.rb
146
- has_rdoc: yard
147
250
  homepage: http://spira.rubyforge.org
148
- licenses:
251
+ licenses:
149
252
  - Public Domain
150
253
  post_install_message:
151
254
  rdoc_options: []
152
-
153
- require_paths:
255
+ require_paths:
154
256
  - lib
155
- required_ruby_version: !ruby/object:Gem::Requirement
257
+ required_ruby_version: !ruby/object:Gem::Requirement
156
258
  none: false
157
- requirements:
158
- - - ">="
159
- - !ruby/object:Gem::Version
160
- segments:
161
- - 1
162
- - 8
163
- - 2
164
- version: 1.8.2
165
- required_rubygems_version: !ruby/object:Gem::Requirement
259
+ requirements:
260
+ - - ! '>='
261
+ - !ruby/object:Gem::Version
262
+ version: 1.9.2
263
+ required_rubygems_version: !ruby/object:Gem::Requirement
166
264
  none: false
167
- requirements:
168
- - - ">="
169
- - !ruby/object:Gem::Version
170
- segments:
171
- - 0
172
- version: "0"
265
+ requirements:
266
+ - - ! '>='
267
+ - !ruby/object:Gem::Version
268
+ version: '0'
173
269
  requirements: []
174
-
175
270
  rubyforge_project: spira
176
- rubygems_version: 1.3.7
271
+ rubygems_version: 1.8.25
177
272
  signing_key:
178
273
  specification_version: 3
179
274
  summary: A framework for using the information in RDF.rb repositories as model objects.
180
275
  test_files: []
181
-
276
+ has_rdoc: yard