active-triples 0.7.2 → 0.7.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 024aea8eb521fecc89a76d764bb1dd856febbf9c
4
- data.tar.gz: e0fc3915d0fe0faba66b65df1adc31233a976433
3
+ metadata.gz: 2021791a9a343f59c6ae24159333c8897cebf86c
4
+ data.tar.gz: 81c56b132c4d53f6740d9c226f021e4b65b14cd8
5
5
  SHA512:
6
- metadata.gz: 20b0ff10a9833b835c4eae9957baa1712ced77bceebb362eff685a508475d2dc05ca587b2cfe30959ddcc31385696136f8d714c57997e30c4e1ffc809a4c967e
7
- data.tar.gz: b61e998c602a8d860fef2614158ecebeb3acec51c83b4e8e1b264554a2dced2beb10c9a1cc20cc3b746f4029df2318ab3ae8dcc50a07802b1742a4f096854e42
6
+ metadata.gz: 650d818e6a155bf3cf33fc78f68dd1507254ed2d0afd71c0b1b7cb3c60a7e88aa46370d88d10d0801cce7dc08938e83b4ce65fb20d1e52611ecd7f240161014c
7
+ data.tar.gz: 679cf912b7e71b6ca6b15f16a51dc4f846ee0d0694719781cd30a9b6aef95bf78746cf8442ca856422f36b03d7a05cef63033031d594d3e01250f7a4fe89f1d3
data/CHANGES.md CHANGED
@@ -1,10 +1,16 @@
1
+ 0.7.3
2
+ ----
3
+
4
+ - Optimize querying by using Graph#query instead of Queryable#query
5
+ - Improved error handling
6
+
1
7
  0.7.2
2
8
  ----
3
9
 
4
10
  - Allows interoperability between `ActiveModel::Validations` and
5
11
  `RDF::Graph#valid?`. This fixes a bug with validation callbacks. See:
6
12
  [#167](https://github.com/ActiveTriples/ActiveTriples/pull/167).
7
-
13
+
8
14
  0.7.1
9
15
  ----
10
16
 
@@ -73,7 +73,7 @@ module ActiveTriples
73
73
  graph.valid?
74
74
  end
75
75
 
76
- delegate :each, :load!, :count, :has_statement?, :to => :@graph
76
+ delegate :query, :each, :load!, :count, :has_statement?, :to => :@graph
77
77
 
78
78
  define_model_callbacks :persist
79
79
 
@@ -133,7 +133,7 @@ module ActiveTriples
133
133
  return
134
134
  end
135
135
  val = val.to_uri if val.respond_to? :to_uri
136
- raise "value must be an RDF URI, Node, Literal, or a valid datatype. See RDF::Literal.\n\tYou provided #{val.inspect}" unless
136
+ raise ValueError, val unless
137
137
  val.kind_of? RDF::Value or val.kind_of? RDF::Literal
138
138
  parent.insert [rdf_subject, predicate, val]
139
139
  end
@@ -235,6 +235,28 @@ module ActiveTriples
235
235
  parent.rdf_subject
236
236
  end
237
237
  end
238
+
239
+ public
240
+
241
+ ##
242
+ # An error class for unallowable values in relations.
243
+ class ValueError < ArgumentError
244
+ # @!attribute [r] value
245
+ attr_reader :value
246
+
247
+ ##
248
+ # @param value [Object]
249
+ def initialize(value)
250
+ @value = value
251
+ end
252
+
253
+ ##
254
+ # @return [String]
255
+ def message
256
+ 'value must be an RDF URI, Node, Literal, or a valid datatype. '\
257
+ "See RDF::Literal.\n\tYou provided #{value.inspect}"
258
+ end
259
+ end
238
260
  end
239
261
 
240
262
  class Term < Relation
@@ -16,8 +16,15 @@ module ActiveTriples
16
16
  # @see Configurable
17
17
  module Repositories
18
18
 
19
+ ##
20
+ # @param name [Symbol]
21
+ # @param repo [RDF::Repository]
22
+ #
23
+ # @return [RDF::Repository]
24
+ # @raise [ArgumentError] if a non-repository is passed
19
25
  def add_repository(name, repo)
20
- raise "Repositories must be an RDF::Repository" unless repo.kind_of? RDF::Repository
26
+ raise ArgumentError, "Repositories must be an RDF::Repository" unless
27
+ repo.kind_of? RDF::Repository
21
28
  repositories[name] = repo
22
29
  end
23
30
  module_function :add_repository
@@ -1,3 +1,3 @@
1
1
  module ActiveTriples
2
- VERSION = '0.7.2'.freeze
2
+ VERSION = '0.7.3'.freeze
3
3
  end
@@ -11,7 +11,7 @@ describe ActiveTriples::Relation do
11
11
  context "when relation has 0 value arguments" do
12
12
  before { subject.value_arguments = double(length: 0) }
13
13
  it "should raise an error" do
14
- expect { subject.send(:rdf_subject) }.to raise_error
14
+ expect { subject.send(:rdf_subject) }.to raise_error ArgumentError
15
15
  end
16
16
  end
17
17
  context "when term has 1 value argument" do
@@ -35,7 +35,7 @@ describe ActiveTriples::Relation do
35
35
  context "when relation has 3 value arguments" do
36
36
  before { subject.value_arguments = double(length: 3) }
37
37
  it "should raise an error" do
38
- expect { subject.send(:rdf_subject) }.to raise_error
38
+ expect { subject.send(:rdf_subject) }.to raise_error ArgumentError
39
39
  end
40
40
  end
41
41
  end
@@ -14,7 +14,8 @@ describe ActiveTriples::Repositories do
14
14
  expect(subject.repositories).to include :name
15
15
  end
16
16
  it 'should throw an error if passed something that is not a repository' do
17
- expect{subject.add_repository :name, :not_a_repo}.to raise_error
17
+ expect{subject.add_repository :name, :not_a_repo}
18
+ .to raise_error ArgumentError
18
19
  end
19
20
  end
20
21
 
@@ -22,7 +22,9 @@ describe ActiveTriples::Resource do
22
22
 
23
23
  describe '#property' do
24
24
  it 'raises error when set directly on Resource' do
25
- expect { ActiveTriples::Resource.property :blah, :predicate => RDF::DC.title }.to raise_error
25
+ expect { ActiveTriples::Resource.property :blah, predicate: RDF::DC.title }
26
+ .to raise_error 'Properties not definable directly on ' \
27
+ 'ActiveTriples::Resource, use a subclass'
26
28
  end
27
29
  end
28
30
 
@@ -67,7 +69,8 @@ describe ActiveTriples::Resource do
67
69
  end
68
70
 
69
71
  it 'should not be settable' do
70
- expect{ subject.set_subject! RDF::URI('http://example.org/moomin2') }.to raise_error
72
+ expect{ subject.set_subject! RDF::URI('http://example.org/moomin2') }
73
+ .to raise_error "Refusing update URI when one is already assigned!"
71
74
  end
72
75
  end
73
76
 
@@ -474,7 +477,8 @@ describe ActiveTriples::Resource do
474
477
  end
475
478
 
476
479
  it 'raises error when trying to set nil value' do
477
- expect { subject.aggregates[1] = nil }.to raise_error /value must be an RDF URI, Node, Literal, or a valid datatype/
480
+ expect { subject.aggregates[1] = nil }
481
+ .to raise_error ActiveTriples::Relation::ValueError
478
482
  end
479
483
 
480
484
  it "should be changeable for multiple values" do
@@ -560,7 +564,8 @@ describe ActiveTriples::Resource do
560
564
  end
561
565
 
562
566
  it "raise an error if the value is not a URI, Node, Literal, RdfResource, or string" do
563
- expect{subject.set_value(RDF::DC.title, Object.new)}.to raise_error
567
+ expect{subject.set_value(RDF::DC.title, Object.new)}
568
+ .to raise_error ActiveTriples::Relation::ValueError
564
569
  end
565
570
 
566
571
  it "should be able to accept a subject" do
@@ -583,7 +588,8 @@ describe ActiveTriples::Resource do
583
588
  end
584
589
 
585
590
  it "raise an error if the value is not a URI, Node, Literal, RdfResource, or string" do
586
- expect { subject[RDF::DC.title] = Object.new }.to raise_error
591
+ expect { subject[RDF::DC.title] = Object.new }
592
+ .to raise_error ActiveTriples::Relation::ValueError
587
593
  end
588
594
  end
589
595
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active-triples
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.2
4
+ version: 0.7.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Johnson
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-10-20 00:00:00.000000000 Z
12
+ date: 2016-01-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rdf
@@ -258,9 +258,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
258
258
  version: '0'
259
259
  requirements: []
260
260
  rubyforge_project:
261
- rubygems_version: 2.2.0
261
+ rubygems_version: 2.4.5.1
262
262
  signing_key:
263
263
  specification_version: 4
264
264
  summary: RDF graphs in ActiveModel wrappers.
265
265
  test_files: []
266
- has_rdoc: