tripod 0.7.20 → 0.7.21

Sign up to get free protection for your applications and to get access to all the features.
@@ -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