active-triples 0.3.1 → 0.4.0
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.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 69f4bbb38bbc80b3dcb2f5250390db3a6519f70a
|
4
|
+
data.tar.gz: 695a3c37c83a8fd57902dd1d444418f637299208
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6d7e2610c7b7d621d8979ada3384b799dfe4002c62d308416233f15ab05bf3dc09b4f19a621801912d8eec49e3edbb9d6730996aaf03e5082cee90f3731f96ee
|
7
|
+
data.tar.gz: ba886577caa4650341a311a0097489875fb4ef557fc69858c17c8058c749c16a710fad5889f3ee1f9f7f8fd2148583897fdb50516d54efdfdb6d2faf0738af2a
|
@@ -53,9 +53,16 @@ module ActiveTriples
|
|
53
53
|
# @param [Hash] opts for this property, must include a :predicate
|
54
54
|
# @yield [index] index sets solr behaviors for the property
|
55
55
|
def property(name, opts={}, &block)
|
56
|
+
raise ArgumentError, "#{name} is a keyword and not an acceptable property name." if protected_property_name? name
|
56
57
|
reflection = PropertyBuilder.build(self, name, opts, &block)
|
57
58
|
Reflection.add_reflection self, name, reflection
|
58
59
|
end
|
60
|
+
|
61
|
+
def protected_property_name?(name)
|
62
|
+
reject = self.instance_methods.map! { |s| s.to_s.gsub(/=$/, '').to_sym }
|
63
|
+
reject -= properties.keys.map { |k| k.to_sym }
|
64
|
+
reject.include? name
|
65
|
+
end
|
59
66
|
|
60
67
|
##
|
61
68
|
# Given a property name or a predicate, return the configuration
|
@@ -38,6 +38,22 @@ describe ActiveTriples::Properties do
|
|
38
38
|
DummyProperties.property :title, :predicate => RDF::DC.title, :class_name => "FakeClassName"
|
39
39
|
expect(DummyProperties.reflect_on_property(:title)[:class_name]).to eq "FakeClassName"
|
40
40
|
end
|
41
|
+
|
42
|
+
it 'raises error when defining properties that are already methods' do
|
43
|
+
DummyProperties.send :define_method, :type, lambda { }
|
44
|
+
expect { DummyProperties.property :type, :predicate => RDF::DC.type }.to raise_error ArgumentError
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'raises error when defining properties already have method setters' do
|
48
|
+
DummyProperties.send :define_method, :type=, lambda { }
|
49
|
+
expect { DummyProperties.property :type, :predicate => RDF::DC.type }.to raise_error ArgumentError
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'allows resetting of properties' do
|
53
|
+
DummyProperties.property :title, :predicate => RDF::DC.alternative
|
54
|
+
DummyProperties.property :title, :predicate => RDF::DC.title
|
55
|
+
expect(DummyProperties.reflect_on_property(:title).predicate).to eq RDF::DC.title
|
56
|
+
end
|
41
57
|
end
|
42
58
|
|
43
59
|
describe '#config_for_term_or_uri' do
|
@@ -549,7 +549,7 @@ describe ActiveTriples::Resource do
|
|
549
549
|
before do
|
550
550
|
class DummyPerson < ActiveTriples::Resource
|
551
551
|
configure :type => RDF::URI('http://example.org/Person')
|
552
|
-
property :
|
552
|
+
property :foaf_name, :predicate => RDF::FOAF.name
|
553
553
|
property :publications, :predicate => RDF::FOAF.publications, :class_name => 'DummyDocument'
|
554
554
|
property :knows, :predicate => RDF::FOAF.knows, :class_name => DummyPerson
|
555
555
|
end
|
@@ -579,13 +579,13 @@ describe ActiveTriples::Resource do
|
|
579
579
|
|
580
580
|
let (:person1) do
|
581
581
|
p = DummyPerson.new
|
582
|
-
p.
|
582
|
+
p.foaf_name = 'Alice'
|
583
583
|
p
|
584
584
|
end
|
585
585
|
|
586
586
|
let (:person2) do
|
587
587
|
p = DummyPerson.new
|
588
|
-
p.
|
588
|
+
p.foaf_name = 'Bob'
|
589
589
|
p
|
590
590
|
end
|
591
591
|
|
@@ -614,7 +614,7 @@ END
|
|
614
614
|
document2.creator = person1
|
615
615
|
person1.knows = person2
|
616
616
|
subject.item = [document1]
|
617
|
-
expect(subject.item.first.creator.first.knows.first.
|
617
|
+
expect(subject.item.first.creator.first.knows.first.foaf_name).to eq ['Bob']
|
618
618
|
end
|
619
619
|
end
|
620
620
|
end
|
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.
|
4
|
+
version: 0.4.0
|
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: 2014-10-
|
12
|
+
date: 2014-10-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rdf
|