dbd 0.0.9 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/Guardfile +2 -2
  3. data/HISTORY.txt +11 -0
  4. data/README.md +24 -5
  5. data/bin/test_4.rb +2 -2
  6. data/bin/test_6.rb +2 -2
  7. data/docs/test.rb +1 -1
  8. data/lib/dbd/fact.rb +35 -67
  9. data/lib/dbd/fact/factory.rb +90 -0
  10. data/lib/dbd/fact/id.rb +2 -2
  11. data/lib/dbd/fact/subject.rb +2 -2
  12. data/lib/dbd/graph.rb +4 -6
  13. data/lib/dbd/helpers/uuid.rb +2 -2
  14. data/lib/dbd/resource.rb +1 -1
  15. data/lib/dbd/time_stamp.rb +16 -7
  16. data/lib/dbd/version.rb +1 -1
  17. data/spec/lib/dbd/fact/collection/collection_spec.rb +59 -59
  18. data/spec/lib/dbd/fact/factory/factory_spec.rb +109 -0
  19. data/spec/lib/dbd/fact/id/id_spec.rb +4 -4
  20. data/spec/lib/dbd/fact/id/test_factories_spec.rb +14 -0
  21. data/spec/lib/dbd/fact/methods_spec.rb +53 -57
  22. data/spec/lib/dbd/fact/new_spec.rb +32 -55
  23. data/spec/lib/dbd/fact/subject/subject_spec.rb +3 -3
  24. data/spec/lib/dbd/fact/subject/test_factories_spec.rb +23 -0
  25. data/spec/lib/dbd/fact/test_factories_spec.rb +82 -0
  26. data/spec/lib/dbd/graph/add_to_graph_spec.rb +31 -31
  27. data/spec/lib/dbd/graph/from_csv_spec.rb +47 -20
  28. data/spec/lib/dbd/graph/test_factories_spec.rb +58 -0
  29. data/spec/lib/dbd/graph/to_csv_spec.rb +46 -45
  30. data/spec/lib/dbd/helpers/ordered_set_collection/ordered_set_collection_spec.rb +17 -17
  31. data/spec/lib/dbd/helpers/uuid/uuid_spec.rb +11 -5
  32. data/spec/lib/dbd/performance_spec.rb +6 -6
  33. data/spec/lib/dbd/provenance_fact/methods_spec.rb +19 -19
  34. data/spec/lib/dbd/provenance_fact/new_spec.rb +17 -17
  35. data/spec/lib/dbd/provenance_fact/test_factories_spec.rb +24 -0
  36. data/spec/lib/dbd/provenance_resource/provenance_resource_spec.rb +24 -24
  37. data/spec/lib/dbd/rdf_base/rdf_base_spec.rb +7 -7
  38. data/spec/lib/dbd/resource/collection_spec.rb +34 -34
  39. data/spec/lib/dbd/resource/new_spec.rb +12 -12
  40. data/spec/lib/dbd/resource/test_factories_spec.rb +25 -0
  41. data/spec/lib/dbd/time_stamp/comparisons_spec.rb +31 -30
  42. data/spec/lib/dbd/time_stamp/methods_spec.rb +17 -13
  43. data/spec/lib/dbd/time_stamp/new_spec.rb +40 -14
  44. data/spec/lib/dbd/time_stamp/test_factories_spec.rb +18 -0
  45. data/spec/spec_helper.rb +2 -6
  46. data/spec/{factories → test_factories}/fact.rb +32 -25
  47. data/spec/{factories → test_factories}/fact/id.rb +2 -2
  48. data/spec/{factories → test_factories}/fact/subject.rb +3 -3
  49. data/spec/test_factories/graph.rb +25 -0
  50. data/spec/{factories → test_factories}/provenance_fact.rb +8 -10
  51. data/spec/{factories → test_factories}/provenance_resource.rb +3 -3
  52. data/spec/{factories → test_factories}/resource.rb +10 -4
  53. data/spec/{factories → test_factories}/time_stamp.rb +2 -2
  54. metadata +35 -32
  55. data/spec/factories/graph.rb +0 -23
  56. data/spec/lib/dbd/fact/factory_spec.rb +0 -82
  57. data/spec/lib/dbd/fact/id/factory_spec.rb +0 -16
  58. data/spec/lib/dbd/fact/subject/factory_spec.rb +0 -25
  59. data/spec/lib/dbd/graph/factory_spec.rb +0 -33
  60. data/spec/lib/dbd/provenance_fact/factory_spec.rb +0 -24
  61. data/spec/lib/dbd/resource/factory_spec.rb +0 -18
  62. data/spec/lib/dbd/time_stamp/factory_spec.rb +0 -18
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0b21e77e8316f18a011e2356b79a28a35e5dde7d
4
- data.tar.gz: d8a0adeebbc7311a512ef08bfbc63902e16f2159
3
+ metadata.gz: f0ecabc694d7fb96ca29461e84ec65065d15e3ec
4
+ data.tar.gz: b31a6c1b351ddcfde4e90d10589526fb7e15bc78
5
5
  SHA512:
6
- metadata.gz: c8e9c42c082ad4bdc8c6af283c9a73fad3c35a75e5ebace47aefbbe127cb0ee001ef066d17ef6e9b253dcd2a6311ccbb520810bdb061ab233c77950be7a99542
7
- data.tar.gz: a63bb4462ebdc8fa4a6c2e0f3a1513146f7aac1e85a9d748c3126f5352464a613ee9bf956e27e0fad06edc4816e7226e78a37a1c5218196e6ea0f4ccf13db5e5
6
+ metadata.gz: 9b5aac83bb9c2ae36d95121aec6570513821daf56372af99713930ab44e11e19dc585a2d730d35710c3614ca3c62e5f18fd1c3a4cfd4bff01e1e21bd74f2a7cb
7
+ data.tar.gz: 161310b4ba873d17a52707da9ae58f6b1c40a5c4163739f512410ae0c1445ecca818d88a0f7362008d8eb392fa103ae7ff0dbf883265dd838913801f315fe767
data/Guardfile CHANGED
@@ -1,6 +1,6 @@
1
- guard 'rspec' do
1
+ guard 'rspec', :all_after_pass => true, :all_on_start => true do
2
2
  watch(%r{^spec/.+_spec\.rb$})
3
- watch(%r{^spec/factories}) { "spec" }
3
+ watch(%r{^spec/test_factories}) { "spec" }
4
4
  watch(%r{^lib/dbd/helpers}) { "spec" }
5
5
  # watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
6
6
  watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}/" }
data/HISTORY.txt CHANGED
@@ -50,3 +50,14 @@
50
50
  * new function graph#to_CSV_file
51
51
  * bin/test_5.rb was used to write 10M facts using ruby-2.0.0, 1.9.3 and jruby-1.7.4
52
52
  * jruby is 3 time faster, but 10% more memory comsumption
53
+
54
+ 0.0.10 (7 July 2013)
55
+ ======
56
+
57
+ * Input validation for Graph#from_CSV (pairing with @marksim)
58
+ * Convert Graph.from_CSV => Graph#from_CSV (can apply multiple
59
+ from_CSV's on same graph)
60
+ * moved factories out of Fact to Fact::Factory
61
+ (removing the dependency injection violations from the Fact class)
62
+ * work-arounds for JRuby nanosecond rounding issues (#1)
63
+ * renamed Factories to TestFactories
data/README.md CHANGED
@@ -48,7 +48,7 @@ Open Source [MIT]
48
48
 
49
49
  ## Examples
50
50
 
51
- Also see the file `docs/test.rb` to execute the script below.
51
+ Running `ruby docs/test.rb` will execute the script below.
52
52
 
53
53
  ```
54
54
  require 'dbd'
@@ -103,7 +103,7 @@ puts csv
103
103
  # "a3da9295-b43a-4c3a-8e8c-97c3f04c1fa3","2013-06-19 22:02:20.490036790 UTC","5eb1ea27-6691-4a57-ab13-8a59021968e1","3767c493-79d3-4a97-a832-79e6361ddc4c","todo:story","A long period of peace,
104
104
  # that is a ""bliss""."
105
105
 
106
- imported_graph = Dbd::Graph.from_CSV(csv)
106
+ imported_graph = Dbd::Graph.new.from_CSV(csv)
107
107
 
108
108
  puts imported_graph.map(&:short)
109
109
 
@@ -121,21 +121,40 @@ puts imported_graph.map(&:short)
121
121
  ## Performance tests on 10 M facts
122
122
 
123
123
  In version 0.0.9 a number of test programs where added (e.g. ../bin/test_5.rb)
124
- that where used to populated in memory and write to disk a data set with 10 M facts.
124
+ that where used to populate in memory and write to disk a data set with 10 M facts.
125
125
 
126
126
  This function was tested on ruby-2.0.0, ruby-1.9.3 and jruby-1.7.4. The facts
127
127
  had an approximate size of 250 Bytes each (80 Bytes object).
128
128
 
129
129
  The time needed and memory size (RSS) for populating the in-memory dataset was:
130
130
 
131
- 10 M facts (of 250 Bytes; 2.5 GB netto data):
131
+ Generate in memory 10 M facts (of 250 Bytes; 2.5 GB netto data):
132
132
 
133
- | ruby | time | memory (RSS} |
133
+ | ruby | time | memory (RSS) |
134
134
  |------------|-------------| ------------:|
135
135
  | ruby-1.9.3 | 863 seconds | 8.1 GB |
136
136
  | ruby-2.0.0 | 862 seconds | 9.0 GB |
137
137
  |jruby-1.7.4 | 345 seconds | 10.8 GB |
138
138
 
139
+ In version 0.0.10 a test for reading a fact stream from a CSV file was added
140
+ (e.g. ../bin/test_6.rb). Reading back a CSV file that was written earlier with
141
+ 10 M facts (with test_5.rb) was tested on jruby-1.7.4. and ruby-2.0.0.
142
+
143
+ This version also has input validation on the strings in the CSV. The time needed
144
+ and memory size (RSS) for reading the file (and populating the in-memory dataset
145
+ was):
146
+
147
+ Read from CSV (to_CSV) 10 M facts (of 250 Bytes; 2.5 GB netto data):
148
+
149
+ | ruby | time | memory (RSS) |
150
+ |------------|---------------|--------------:|
151
+ | ruby-1.9.3 | 4434 seconds | approx. 10 GB |
152
+ | ruby-2.0.0 | 5163 seconds | approx. 15 GB |
153
+ |jruby-1.7.4 | 1513 seconds | approx. 14 GB |
154
+
155
+ The significantly larger times to read from_CSV versus writing to_CSV are _not_
156
+ significantly caused by input validation (a test in JRuby without validation on
157
+ reading 1M facts was only 6% faster with the input validation turned off).
139
158
 
140
159
  [RDF]: http://www.w3.org/RDF/
141
160
  [Rationale]: http://github.com/petervandenabeele/dbd/blob/master/docs/rationale.md
data/bin/test_4.rb CHANGED
@@ -19,7 +19,7 @@ row_data = [
19
19
  "test",
20
20
  "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 0"]
21
21
 
22
- puts "starting CSV.open"
22
+ puts "starting CSV.generate"
23
23
 
24
24
  start_time = Time.now
25
25
 
@@ -29,4 +29,4 @@ csv_string = CSV.generate(force_quotes: true) do |csv|
29
29
  end
30
30
  end
31
31
 
32
- puts "CSV.open took #{Time.now - start_time} seconds"
32
+ puts "CSV.generate took #{Time.now - start_time} seconds"
data/bin/test_6.rb CHANGED
@@ -13,9 +13,9 @@ require 'dbd'
13
13
  start = Time.now
14
14
 
15
15
  graph = File.open(filename) do |f|
16
- Dbd::Graph.from_CSV(f)
16
+ Dbd::Graph.new.from_CSV(f)
17
17
  end
18
18
 
19
- puts "Graph is ready (took #{Time.now - start}s), now starting the write to disk"
19
+ puts "Graph is ready (took #{Time.now - start}s)."
20
20
 
21
21
  puts "graph.size is #{graph.size}"
data/docs/test.rb CHANGED
@@ -50,7 +50,7 @@ puts csv
50
50
  # "a3da9295-b43a-4c3a-8e8c-97c3f04c1fa3","2013-06-19 22:02:20.490036790 UTC","5eb1ea27-6691-4a57-ab13-8a59021968e1","3767c493-79d3-4a97-a832-79e6361ddc4c","todo:story","A long period of peace,
51
51
  # that is a ""bliss""."
52
52
 
53
- imported_graph = Dbd::Graph.from_CSV(csv)
53
+ imported_graph = Dbd::Graph.new.from_CSV(csv)
54
54
 
55
55
  puts imported_graph.map(&:short)
56
56
 
data/lib/dbd/fact.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'dbd/fact/factory'
1
2
  require 'dbd/fact/collection'
2
3
  require 'dbd/fact/subject'
3
4
  require 'dbd/fact/id'
@@ -57,6 +58,12 @@ module Dbd
57
58
  # in RDF. Probably more detailed modeling using RDF object will follow.
58
59
  class Fact
59
60
 
61
+ ##
62
+ # @return [Module] The module that has the factories for Fact
63
+ def self.factory
64
+ self::Factory
65
+ end
66
+
60
67
  ##
61
68
  # @return [Array] The 6 attributes of a Fact.
62
69
  def self.attributes
@@ -73,13 +80,15 @@ module Dbd
73
80
  end
74
81
 
75
82
  ##
76
- # A set_once setter for time_stamp.
83
+ # These "set once" setters implement a form of immutable behavior.
84
+ # The value can be set once (after initial creation the object),
85
+ # but can never be changed after that.
77
86
  #
78
- # This implements a "form" of immutable behavior. The value can
79
- # be set once (possibly after creation the object), but can
80
- # never be changed after that.
87
+ # A set_once setter for time_stamp.
81
88
  #
82
89
  # The input class is validated (easy confusion with String or Time).
90
+ #
91
+ # @param [TimeStamp] :time_stamp a time_stamp (not a Time or a String)
83
92
  def time_stamp=(time_stamp)
84
93
  validate_time_stamp_class(time_stamp)
85
94
  set_once(:time_stamp, time_stamp)
@@ -88,9 +97,7 @@ module Dbd
88
97
  ##
89
98
  # A set_once setter for provenance_subject.
90
99
  #
91
- # This implements a "form" of immutable behavior. The value can
92
- # be set once (possibly after creation the object), but can
93
- # never be changed after that.
100
+ # @param [String] :provenance_subject a string representation of the uuid
94
101
  def provenance_subject=(provenance_subject)
95
102
  set_once(:provenance_subject, provenance_subject)
96
103
  end
@@ -98,29 +105,15 @@ module Dbd
98
105
  ##
99
106
  # A set_once setter for subject.
100
107
  #
101
- # This implements a "form" of immutable behavior. The value can
102
- # be set once (possibly after creation the object), but can
103
- # never be changed after that.
108
+ # @param [String] :subject a string representation of the uuid
104
109
  def subject=(subject)
105
110
  set_once(:subject, subject)
106
111
  end
107
112
 
108
- ##
109
- # @return [String] A new subject string.
110
- def self.new_subject
111
- Subject.new_subject
112
- end
113
-
114
- ##
115
- # @return [String] A new id string.
116
- def self.new_id
117
- ID.new_id
118
- end
119
-
120
113
  ##
121
114
  # Builds a new Fact.
122
115
  #
123
- # @param [Hash{Symbol => Object}] options
116
+ # @param [Hash{Symbol => Object}] :options
124
117
  # @option options [#to_s] :predicate Required : the predicate for this Fact
125
118
  # @option options [#to_s] :object Required : the object for this Fact (required)
126
119
  # @option options [String (uuid)] :provenance_subject (nil) Optional: the subject of the provenance(resource|fact)
@@ -128,13 +121,13 @@ module Dbd
128
121
  # @option options [TimeStamp] :time_stamp (nil) Optional: the time_stamp for this Fact
129
122
  # @option options [String (uuid)] :id Optional : set the id
130
123
  def initialize(options)
131
- @id = options[:id] || self.class.new_id
124
+ @id = options[:id] || self.class.factory.new_id
132
125
  @time_stamp = options[:time_stamp]
133
- validate_time_stamp_class(@time_stamp)
134
126
  @provenance_subject = options[:provenance_subject]
135
127
  @subject = options[:subject]
136
128
  @predicate = options[:predicate]
137
129
  @object = options[:object]
130
+ validate_time_stamp_class(@time_stamp)
138
131
  raise PredicateError, "predicate cannot be nil" if predicate.nil?
139
132
  raise ObjectError, "object cannot be nil" if object.nil?
140
133
  end
@@ -153,18 +146,7 @@ module Dbd
153
146
  end
154
147
 
155
148
  ##
156
- # Constructs a Fact or ProvenanceFact from a string values array
157
- # (e.g. pulled from a CSV row).
158
- #
159
- # @param [Array] string_values Required : the array with values, organized as in attributes
160
- # @return [Fact, ProvenanceFact] the constructed fact
161
- def self.from_string_values(string_values)
162
- string_hash = hash_from_values(string_values)
163
- fact_from_hash(values_hash(string_hash))
164
- end
165
-
166
- ##
167
- # Equivalent facts (have all same values, except time_stamp).
149
+ # Equivalent facts (have all same values, except time_stamp which is near?).
168
150
  #
169
151
  # For "equality" only a test on the id is used. If the id
170
152
  # (which is a uuid) is the same, we assume that is the "same"
@@ -174,6 +156,9 @@ module Dbd
174
156
  # The time_stamp may be slightly different (because shifts
175
157
  # of a few nanoseconds will be required to resolve collisions
176
158
  # on merge).
159
+ #
160
+ # @param [Fact] :other the other fact to compare with
161
+ # @return [trueish]
177
162
  def equivalent?(other)
178
163
  (self.class.attributes - [:time_stamp]).
179
164
  all?{ |attribute| self.send(attribute) == other.send(attribute) } &&
@@ -198,6 +183,8 @@ module Dbd
198
183
  # ProvenanceResource with this provenance_subject.
199
184
  #
200
185
  # This is overridden in the ProvenanceFact, since only relevant for a Fact.
186
+ #
187
+ # @param[Hash] :h the hash that contains the provenance_subject index
201
188
  def update_used_provenance_subjects(h)
202
189
  # using a provenance_subject sets the key
203
190
  h[provenance_subject] = true
@@ -210,22 +197,22 @@ module Dbd
210
197
  def errors
211
198
  # * id not validated, is set automatically upon creation
212
199
  # * time_stamp not validated, is set automatically later
213
- # * predicate not validated, is validated in initialize
214
- # * object not validated, is validated in initialize
215
- [].tap do |a|
216
- a << provenance_subject_error(provenance_subject)
217
- a << "Subject is missing" unless subject
218
- end.compact
200
+ # * predicate not validated, is validated upon creation
201
+ # * object not validated, is validated upon creation
202
+ [provenance_subject_error(provenance_subject),
203
+ subject ? nil : "Subject is missing"].compact
219
204
  end
220
205
 
221
206
  ##
222
207
  # Validates the presence or absence of provenance_subject.
223
208
  #
224
- # Here, in (base) Fact, provenance_subject must be present
225
- # In the derived ProvenanceFact it must not be present.
209
+ # Here, in (base) Fact, provenance_subject must be present.
210
+ #
211
+ # In the derived ProvenanceFact it must NOT be present.
226
212
  # This is how the difference is encoded between Fact and
227
213
  # ProvenanceFact in the fact stream.
228
- # @param [#nil?] provenance_subject
214
+ #
215
+ # @param [Object] provenance_subject
229
216
  # Return [nil, String] nil or an error message
230
217
  def provenance_subject_error(provenance_subject)
231
218
  "Provenance subject is missing" unless provenance_subject
@@ -236,6 +223,8 @@ module Dbd
236
223
  #
237
224
  # Needed for validations that depend on different behavior for
238
225
  # a provenance_fact (mainly, no provenance_subject).
226
+ #
227
+ # @return [trueish] false in the Fact implementation
239
228
  def provenance_fact?
240
229
  false
241
230
  end
@@ -246,27 +235,6 @@ module Dbd
246
235
  "#{provenance_subject.to_s[0...8]}"
247
236
  end
248
237
 
249
- # FIXME This has to move to a Fact::Factory
250
- def self.hash_from_values(values)
251
- # Do not keep "empty" values (e.g. the provenance_subject for a ProvenanceFact).
252
- attributes_values_array = [attributes, values].transpose.delete_if{|a,v| v.nil? || v == ''}
253
- Hash[attributes_values_array]
254
- end
255
-
256
- def self.values_hash(string_hash)
257
- string_hash.dup.tap do |h|
258
- h[:time_stamp] = TimeStamp.new(time: h[:time_stamp])
259
- end
260
- end
261
-
262
- def self.fact_from_hash(hash)
263
- if hash[:provenance_subject]
264
- Fact.new(hash)
265
- else
266
- ProvenanceFact.new(hash)
267
- end
268
- end
269
-
270
238
  def validate_time_stamp_class(time_stamp)
271
239
  unless time_stamp.nil? || time_stamp.is_a?(TimeStamp)
272
240
  raise ArgumentError, "time_stamp is of class #{time_stamp.class}, should be TimeStamp"
@@ -0,0 +1,90 @@
1
+ module Dbd
2
+ class Fact
3
+ module Factory
4
+
5
+ class << self
6
+
7
+ ##
8
+ # @return [Class] the top class for which instances are created here.
9
+ def top_class
10
+ Fact
11
+ end
12
+
13
+ ##
14
+ # @return [String] A new subject string.
15
+ def new_subject
16
+ top_class::Subject.new_subject
17
+ end
18
+
19
+ ##
20
+ # @return [String] A new id string.
21
+ def new_id
22
+ top_class::ID.new_id
23
+ end
24
+
25
+ ##
26
+ # Constructs a Fact or ProvenanceFact from a string values array
27
+ # (e.g. pulled from a CSV row).
28
+ #
29
+ # @param [Array] string_values Required : the array with values, organized as in attributes
30
+ # @return [Fact, ProvenanceFact] the constructed fact
31
+ def from_string_values(string_values, options={})
32
+ string_hash = string_hash_from_values(string_values)
33
+ validate_string_hash(string_hash) if options[:validate]
34
+ fact_from_values_hash(values_hash(string_hash))
35
+ end
36
+
37
+ def attribute_formats
38
+ # TODO clean this up
39
+ {
40
+ id: [true, Fact::ID.valid_regexp],
41
+ time_stamp: [true, TimeStamp.valid_regexp],
42
+ provenance_subject: [false, Fact::Subject.valid_regexp],
43
+ subject: [true, Fact::Subject.valid_regexp],
44
+ predicate: [true, /./],
45
+ object: [true, /./]
46
+ }
47
+ end
48
+
49
+ private
50
+
51
+ def string_hash_from_values(string_values)
52
+ attributes_strings_array = [top_class.attributes, string_values].transpose
53
+ # Remove empty values (e.g. the provenance_subject for a ProvenanceFact).
54
+ attributes_strings_array.delete_if{|a,v| v.nil? || v == ''}
55
+ Hash[attributes_strings_array]
56
+ end
57
+
58
+ def values_hash(string_hash)
59
+ string_hash.tap do |h|
60
+ h[:time_stamp] = TimeStamp.new(time: h[:time_stamp])
61
+ end
62
+ end
63
+
64
+ def fact_from_values_hash(values_hash)
65
+ if values_hash[:provenance_subject]
66
+ Fact.new(values_hash)
67
+ else
68
+ ProvenanceFact.new(values_hash)
69
+ end
70
+ end
71
+
72
+ def validate_string_hash(string_hash)
73
+ attribute_formats.each do |attr, validation|
74
+ string = string_hash[attr]
75
+ mandatory, format = validation
76
+ validate_string(mandatory, string, format)
77
+ end
78
+ end
79
+
80
+ def validate_string(mandatory, string, format)
81
+ if (mandatory || string) && (string !~ format)
82
+ raise FactError, "invalid entry found : #{string}"
83
+ end
84
+ end
85
+
86
+ end
87
+
88
+ end
89
+ end
90
+ end
data/lib/dbd/fact/id.rb CHANGED
@@ -2,8 +2,8 @@ module Dbd
2
2
  class Fact
3
3
  module ID
4
4
 
5
- def self.regexp
6
- Helpers::UUID.regexp
5
+ def self.valid_regexp
6
+ Helpers::UUID.valid_regexp
7
7
  end
8
8
 
9
9
  def self.new_id
@@ -4,8 +4,8 @@ module Dbd
4
4
  class Fact
5
5
  module Subject
6
6
 
7
- def self.regexp
8
- Helpers::UUID.regexp
7
+ def self.valid_regexp
8
+ Helpers::UUID.valid_regexp
9
9
  end
10
10
 
11
11
  def self.new_subject