tripod 0.7.20 → 0.7.21

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.
@@ -148,16 +148,16 @@ module Tripod::Persistence
148
148
  end
149
149
  end
150
150
 
151
- def update_attribute(name, value)
151
+ def update_attribute(name, value, opts={})
152
152
  write_attribute(name, value)
153
- save
153
+ save(opts)
154
154
  end
155
155
 
156
- def update_attributes(attributes={})
156
+ def update_attributes(attributes, opts={})
157
157
  attributes.each_pair do |name, value|
158
158
  send "#{name}=", value
159
159
  end
160
- save
160
+ save(opts)
161
161
  end
162
162
 
163
163
  module ClassMethods #:nodoc:
@@ -1,3 +1,3 @@
1
1
  module Tripod
2
- VERSION = "0.7.20"
2
+ VERSION = "0.7.21"
3
3
  end
@@ -96,31 +96,86 @@ describe Tripod::Persistence do
96
96
 
97
97
  describe '.update_attribute' do
98
98
  let (:person) { Person.new('http://example.com/newperson') }
99
- before { person.stub(:save) }
99
+
100
+ context 'without transactions' do
101
+ before { person.stub(:save) }
100
102
 
101
- it 'should write the attribute' do
102
- person.update_attribute(:name, 'Bob')
103
- person.name.should == 'Bob'
103
+ it 'should write the attribute' do
104
+ person.update_attribute(:name, 'Bob')
105
+ person.name.should == 'Bob'
106
+ end
107
+
108
+ it 'should save the record' do
109
+ person.should_receive(:save)
110
+ person.update_attribute(:name, 'Bob')
111
+ end
104
112
  end
105
113
 
106
- it 'should save the record' do
107
- person.should_receive(:save)
108
- person.update_attribute(:name, 'Bob')
114
+ context 'with transactions' do
115
+ it 'should create a new resource' do
116
+ transaction = Tripod::Persistence::Transaction.new
117
+
118
+ person.update_attribute(:name, 'George', transaction: transaction)
119
+
120
+ lambda { Person.find(person.uri) }.should raise_error(Tripod::Errors::ResourceNotFound)
121
+ transaction.commit
122
+ lambda { Person.find(person.uri) }.should_not raise_error()
123
+ end
124
+
125
+ it 'should assign the attributes of an existing' do
126
+ transaction = Tripod::Persistence::Transaction.new
127
+ person.save
128
+
129
+ person.update_attribute(:name, 'George', transaction: transaction)
130
+
131
+ Person.find(person.uri).name.should_not == 'George'
132
+ transaction.commit
133
+ Person.find(person.uri).name.should == 'George'
134
+ end
109
135
  end
110
136
  end
111
137
 
112
138
  describe '.update_attributes' do
113
139
  let (:person) { Person.new('http://example.com/newperson') }
114
- before { person.stub(:save) }
140
+
141
+ context "without transactions" do
142
+ before { person.stub(:save) }
115
143
 
116
- it 'should assign the attributes' do
117
- person.update_attributes(:name => 'Bob')
118
- person.name.should == 'Bob'
144
+ it 'should assign the attributes' do
145
+ person.update_attributes(:name => 'Bob')
146
+ person.name.should == 'Bob'
147
+ end
148
+
149
+ it 'should save the record' do
150
+ person.should_receive(:save)
151
+ person.update_attributes(:name => 'Bob')
152
+ end
119
153
  end
120
154
 
121
- it 'should save the record' do
122
- person.should_receive(:save)
123
- person.update_attributes(:name => 'Bob')
155
+ context 'with transactions' do
156
+
157
+ it 'should create a new resource' do
158
+ transaction = Tripod::Persistence::Transaction.new
159
+ attributes = { name: 'Fred' }
160
+
161
+ person.update_attributes(attributes, transaction: transaction)
162
+
163
+ lambda { Person.find(person.uri) }.should raise_error(Tripod::Errors::ResourceNotFound)
164
+ transaction.commit
165
+ lambda { Person.find(person.uri) }.should_not raise_error()
166
+ end
167
+
168
+ it 'should assign the attributes of an existing' do
169
+ transaction = Tripod::Persistence::Transaction.new
170
+ attributes = { name: 'Fred' }
171
+ person.save
172
+
173
+ person.update_attributes(attributes, transaction: transaction)
174
+
175
+ Person.find(person.uri).name.should_not == 'Fred'
176
+ transaction.commit
177
+ Person.find(person.uri).name.should == 'Fred'
178
+ end
124
179
  end
125
180
  end
126
181
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tripod
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.20
4
+ version: 0.7.21
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,11 +11,11 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2013-07-18 00:00:00.000000000 Z
14
+ date: 2013-08-05 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rest-client
18
- requirement: &70300931133180 !ruby/object:Gem::Requirement
18
+ requirement: &70318503679660 !ruby/object:Gem::Requirement
19
19
  none: false
20
20
  requirements:
21
21
  - - ! '>='
@@ -23,10 +23,10 @@ dependencies:
23
23
  version: '0'
24
24
  type: :runtime
25
25
  prerelease: false
26
- version_requirements: *70300931133180
26
+ version_requirements: *70318503679660
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activemodel
29
- requirement: &70300931132360 !ruby/object:Gem::Requirement
29
+ requirement: &70318503679120 !ruby/object:Gem::Requirement
30
30
  none: false
31
31
  requirements:
32
32
  - - ~>
@@ -34,10 +34,10 @@ dependencies:
34
34
  version: '3.2'
35
35
  type: :runtime
36
36
  prerelease: false
37
- version_requirements: *70300931132360
37
+ version_requirements: *70318503679120
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: equivalent-xml
40
- requirement: &70300931131740 !ruby/object:Gem::Requirement
40
+ requirement: &70318503695080 !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
43
  - - ! '>='
@@ -45,10 +45,10 @@ dependencies:
45
45
  version: '0'
46
46
  type: :runtime
47
47
  prerelease: false
48
- version_requirements: *70300931131740
48
+ version_requirements: *70318503695080
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: rdf
51
- requirement: &70300931130920 !ruby/object:Gem::Requirement
51
+ requirement: &70318503694540 !ruby/object:Gem::Requirement
52
52
  none: false
53
53
  requirements:
54
54
  - - ~>
@@ -56,10 +56,10 @@ dependencies:
56
56
  version: '1.0'
57
57
  type: :runtime
58
58
  prerelease: false
59
- version_requirements: *70300931130920
59
+ version_requirements: *70318503694540
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: rdf-rdfxml
62
- requirement: &70300931130300 !ruby/object:Gem::Requirement
62
+ requirement: &70318503694060 !ruby/object:Gem::Requirement
63
63
  none: false
64
64
  requirements:
65
65
  - - ! '>='
@@ -67,10 +67,10 @@ dependencies:
67
67
  version: '0'
68
68
  type: :runtime
69
69
  prerelease: false
70
- version_requirements: *70300931130300
70
+ version_requirements: *70318503694060
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: rdf-turtle
73
- requirement: &70300931129580 !ruby/object:Gem::Requirement
73
+ requirement: &70318503693520 !ruby/object:Gem::Requirement
74
74
  none: false
75
75
  requirements:
76
76
  - - ! '>='
@@ -78,10 +78,10 @@ dependencies:
78
78
  version: '0'
79
79
  type: :runtime
80
80
  prerelease: false
81
- version_requirements: *70300931129580
81
+ version_requirements: *70318503693520
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: rdf-json
84
- requirement: &70300931129160 !ruby/object:Gem::Requirement
84
+ requirement: &70318503693020 !ruby/object:Gem::Requirement
85
85
  none: false
86
86
  requirements:
87
87
  - - ! '>='
@@ -89,10 +89,10 @@ dependencies:
89
89
  version: '0'
90
90
  type: :runtime
91
91
  prerelease: false
92
- version_requirements: *70300931129160
92
+ version_requirements: *70318503693020
93
93
  - !ruby/object:Gem::Dependency
94
94
  name: json-ld
95
- requirement: &70300931128660 !ruby/object:Gem::Requirement
95
+ requirement: &70318503692320 !ruby/object:Gem::Requirement
96
96
  none: false
97
97
  requirements:
98
98
  - - ~>
@@ -100,10 +100,10 @@ dependencies:
100
100
  version: 0.9.1
101
101
  type: :runtime
102
102
  prerelease: false
103
- version_requirements: *70300931128660
103
+ version_requirements: *70318503692320
104
104
  - !ruby/object:Gem::Dependency
105
105
  name: guid
106
- requirement: &70300931144620 !ruby/object:Gem::Requirement
106
+ requirement: &70318503691520 !ruby/object:Gem::Requirement
107
107
  none: false
108
108
  requirements:
109
109
  - - ! '>='
@@ -111,10 +111,10 @@ dependencies:
111
111
  version: '0'
112
112
  type: :runtime
113
113
  prerelease: false
114
- version_requirements: *70300931144620
114
+ version_requirements: *70318503691520
115
115
  - !ruby/object:Gem::Dependency
116
116
  name: dalli
117
- requirement: &70300931144040 !ruby/object:Gem::Requirement
117
+ requirement: &70318503690980 !ruby/object:Gem::Requirement
118
118
  none: false
119
119
  requirements:
120
120
  - - ~>
@@ -122,7 +122,7 @@ dependencies:
122
122
  version: '2.6'
123
123
  type: :runtime
124
124
  prerelease: false
125
- version_requirements: *70300931144040
125
+ version_requirements: *70318503690980
126
126
  description: RDF ruby ORM
127
127
  email:
128
128
  - ric@swirrl.com