lims-core 3.2.3

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 (177) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +5 -0
  3. data/.rspec +1 -0
  4. data/.rvmrc +2 -0
  5. data/.travis.yml +2 -0
  6. data/.vimrc +27 -0
  7. data/.yard_templates/default/layout/html/footer.erb +0 -0
  8. data/.yardopts +1 -0
  9. data/Gemfile +54 -0
  10. data/Gemfile.lock +197 -0
  11. data/Guardfile +21 -0
  12. data/Guardfile.tmux +28 -0
  13. data/README.markdown +67 -0
  14. data/Rakefile +16 -0
  15. data/config/database.yml +16 -0
  16. data/doc/Array.html +116 -0
  17. data/doc/Array/ArrayLoggerPersistor.html +152 -0
  18. data/doc/Lims.html +114 -0
  19. data/doc/Lims/Core.html +178 -0
  20. data/doc/Lims/Core/Action.html +91 -0
  21. data/doc/Lims/Core/Actions.html +116 -0
  22. data/doc/Lims/Core/Actions/Action.html +216 -0
  23. data/doc/Lims/Core/Actions/Action/AfterEval.html +853 -0
  24. data/doc/Lims/Core/Actions/Action/InvalidParameters.html +268 -0
  25. data/doc/Lims/Core/Actions/ActionGroup.html +196 -0
  26. data/doc/Lims/Core/Actions/ActionGroup/AfterEval.html +315 -0
  27. data/doc/Lims/Core/Actions/BulkAction.html +224 -0
  28. data/doc/Lims/Core/Actions/BulkAction/AfterEval.html +253 -0
  29. data/doc/Lims/Core/Actions/TestActionGroup.html +101 -0
  30. data/doc/Lims/Core/Actions/TestActionGroup/Action.html +133 -0
  31. data/doc/Lims/Core/Actions/TestActionGroup/ActionGroup.html +127 -0
  32. data/doc/Lims/Core/Base.html +287 -0
  33. data/doc/Lims/Core/Base/AccessibleViaSuper.html +252 -0
  34. data/doc/Lims/Core/Base/ClassMethod.html +177 -0
  35. data/doc/Lims/Core/Base/HashString.html +177 -0
  36. data/doc/Lims/Core/Base/IsArrayOf.html +606 -0
  37. data/doc/Lims/Core/Base/State.html +130 -0
  38. data/doc/Lims/Core/Organization.html +113 -0
  39. data/doc/Lims/Core/Organization/Batch.html +106 -0
  40. data/doc/Lims/Core/Persistence.html +267 -0
  41. data/doc/Lims/Core/Persistence/ComparisonFilter.html +318 -0
  42. data/doc/Lims/Core/Persistence/Filter.html +252 -0
  43. data/doc/Lims/Core/Persistence/IdentityMap.html +409 -0
  44. data/doc/Lims/Core/Persistence/IdentityMap/Class.html +144 -0
  45. data/doc/Lims/Core/Persistence/IdentityMap/DuplicateError.html +126 -0
  46. data/doc/Lims/Core/Persistence/IdentityMap/DuplicateIdError.html +136 -0
  47. data/doc/Lims/Core/Persistence/IdentityMap/DuplicateObjectError.html +136 -0
  48. data/doc/Lims/Core/Persistence/IdentityMapClass.html +133 -0
  49. data/doc/Lims/Core/Persistence/Logger.html +105 -0
  50. data/doc/Lims/Core/Persistence/Logger/Persistor.html +334 -0
  51. data/doc/Lims/Core/Persistence/Logger/Session.html +452 -0
  52. data/doc/Lims/Core/Persistence/Logger/Store.html +470 -0
  53. data/doc/Lims/Core/Persistence/MessageBus.html +871 -0
  54. data/doc/Lims/Core/Persistence/MessageBus/ConnectionError.html +123 -0
  55. data/doc/Lims/Core/Persistence/MessageBus/InvalidSettingsError.html +122 -0
  56. data/doc/Lims/Core/Persistence/MultiCriteriaFilter.html +293 -0
  57. data/doc/Lims/Core/Persistence/PersistAssociationTrait.html +91 -0
  58. data/doc/Lims/Core/Persistence/PersistableTrait.html +91 -0
  59. data/doc/Lims/Core/Persistence/Persistor.html +3072 -0
  60. data/doc/Lims/Core/Persistence/Persistor/DuplicateError.html +205 -0
  61. data/doc/Lims/Core/Persistence/Persistor/DuplicateIdError.html +147 -0
  62. data/doc/Lims/Core/Persistence/Persistor/DuplicateObjectError.html +147 -0
  63. data/doc/Lims/Core/Persistence/PersistorTrait.html +91 -0
  64. data/doc/Lims/Core/Persistence/ResourceState.html +1738 -0
  65. data/doc/Lims/Core/Persistence/Search.html +269 -0
  66. data/doc/Lims/Core/Persistence/Search/CreateSearch.html +251 -0
  67. data/doc/Lims/Core/Persistence/Search/SearchPersistor.html +240 -0
  68. data/doc/Lims/Core/Persistence/Search/SearchSequelPersistor.html +396 -0
  69. data/doc/Lims/Core/Persistence/Sequel.html +117 -0
  70. data/doc/Lims/Core/Persistence/Sequel/Filters.html +462 -0
  71. data/doc/Lims/Core/Persistence/Sequel/ForTest.html +101 -0
  72. data/doc/Lims/Core/Persistence/Sequel/ForTest/Name.html +137 -0
  73. data/doc/Lims/Core/Persistence/Sequel/ForTest/Name/NamePersitor.html +143 -0
  74. data/doc/Lims/Core/Persistence/Sequel/Migrations.html +266 -0
  75. data/doc/Lims/Core/Persistence/Sequel/Persistor.html +665 -0
  76. data/doc/Lims/Core/Persistence/Sequel/Session.html +501 -0
  77. data/doc/Lims/Core/Persistence/Sequel/Store.html +417 -0
  78. data/doc/Lims/Core/Persistence/Session.html +2751 -0
  79. data/doc/Lims/Core/Persistence/Session/UnmanagedObjectError.html +111 -0
  80. data/doc/Lims/Core/Persistence/StateGroup.html +696 -0
  81. data/doc/Lims/Core/Persistence/StateList.html +498 -0
  82. data/doc/Lims/Core/Persistence/Store.html +695 -0
  83. data/doc/Lims/Core/Persistence/UuidResource.html +1044 -0
  84. data/doc/Lims/Core/Persistence/UuidResource/InvalidUuidError.html +111 -0
  85. data/doc/Lims/Core/Persistence/UuidResource/UuidResourcePersistor.html +337 -0
  86. data/doc/Lims/Core/Persistence/Uuidable.html +799 -0
  87. data/doc/Lims/Core/Persistor.html +320 -0
  88. data/doc/Lims/Core/Resource.html +165 -0
  89. data/doc/Object.html +228 -0
  90. data/doc/SessionSpec.html +101 -0
  91. data/doc/SessionSpec/Model.html +279 -0
  92. data/doc/SessionSpec/Model/ModelPersistor.html +327 -0
  93. data/doc/_index.html +732 -0
  94. data/doc/class_list.html +47 -0
  95. data/doc/css/common.css +1 -0
  96. data/doc/css/full_list.css +55 -0
  97. data/doc/css/style.css +322 -0
  98. data/doc/file.README.html +127 -0
  99. data/doc/file_list.html +49 -0
  100. data/doc/frames.html +13 -0
  101. data/doc/index.html +127 -0
  102. data/doc/js/app.js +205 -0
  103. data/doc/js/full_list.js +167 -0
  104. data/doc/js/jquery.js +16 -0
  105. data/doc/method_list.html +1894 -0
  106. data/doc/top-level-namespace.html +100 -0
  107. data/lib/common.rb +18 -0
  108. data/lib/lims-core.rb +29 -0
  109. data/lib/lims-core/actions.rb +10 -0
  110. data/lib/lims-core/actions/action.rb +185 -0
  111. data/lib/lims-core/actions/action_group.rb +54 -0
  112. data/lib/lims-core/actions/bulk_action.rb +65 -0
  113. data/lib/lims-core/base.rb +132 -0
  114. data/lib/lims-core/helpers.rb +41 -0
  115. data/lib/lims-core/persistence.rb +15 -0
  116. data/lib/lims-core/persistence/comparison_filter.rb +54 -0
  117. data/lib/lims-core/persistence/filter.rb +23 -0
  118. data/lib/lims-core/persistence/identity_map.rb +55 -0
  119. data/lib/lims-core/persistence/logger/all.rb +5 -0
  120. data/lib/lims-core/persistence/logger/persistor.rb +35 -0
  121. data/lib/lims-core/persistence/logger/session.rb +30 -0
  122. data/lib/lims-core/persistence/logger/store.rb +37 -0
  123. data/lib/lims-core/persistence/message_bus.rb +131 -0
  124. data/lib/lims-core/persistence/multi_criteria_filter.rb +50 -0
  125. data/lib/lims-core/persistence/persist_association_trait.rb +96 -0
  126. data/lib/lims-core/persistence/persistable_trait.rb +150 -0
  127. data/lib/lims-core/persistence/persistor.rb +495 -0
  128. data/lib/lims-core/persistence/resource_state.rb +157 -0
  129. data/lib/lims-core/persistence/search.rb +3 -0
  130. data/lib/lims-core/persistence/search/all.rb +3 -0
  131. data/lib/lims-core/persistence/search/create_search.rb +55 -0
  132. data/lib/lims-core/persistence/search/search_persistor.rb +45 -0
  133. data/lib/lims-core/persistence/search/search_sequel_persistor.rb +40 -0
  134. data/lib/lims-core/persistence/sequel.rb +14 -0
  135. data/lib/lims-core/persistence/sequel/filters.rb +106 -0
  136. data/lib/lims-core/persistence/sequel/migrations.rb +14 -0
  137. data/lib/lims-core/persistence/sequel/migrations/add_audit_tables.rb +147 -0
  138. data/lib/lims-core/persistence/sequel/migrations/initial.rb +156 -0
  139. data/lib/lims-core/persistence/sequel/persistor.rb +200 -0
  140. data/lib/lims-core/persistence/sequel/session.rb +136 -0
  141. data/lib/lims-core/persistence/sequel/store.rb +37 -0
  142. data/lib/lims-core/persistence/session.rb +409 -0
  143. data/lib/lims-core/persistence/state_group.rb +97 -0
  144. data/lib/lims-core/persistence/state_list.rb +56 -0
  145. data/lib/lims-core/persistence/store.rb +73 -0
  146. data/lib/lims-core/persistence/uuid_resource.rb +115 -0
  147. data/lib/lims-core/persistence/uuid_resource_persistor.rb +43 -0
  148. data/lib/lims-core/persistence/uuidable.rb +107 -0
  149. data/lib/lims-core/resource.rb +21 -0
  150. data/lib/lims-core/subclass_tracker.rb +30 -0
  151. data/lib/lims-core/version.rb +5 -0
  152. data/lims-core.gemspec +40 -0
  153. data/makefile +52 -0
  154. data/showoff/core-2012-06-11/core/01_slide.md +237 -0
  155. data/showoff/core-2012-06-11/core/02_slide.md +110 -0
  156. data/showoff/core-2012-06-11/custom.css +44 -0
  157. data/showoff/core-2012-06-11/main/01_slide.md +53 -0
  158. data/showoff/core-2012-06-11/showoff.json +10 -0
  159. data/showoff/core-2012-06-11/tp1.tpl +1 -0
  160. data/spec/actions/action_group_spec.rb +39 -0
  161. data/spec/actions/spec_helper.rb +1 -0
  162. data/spec/persistence/identity_map_spec.rb +55 -0
  163. data/spec/persistence/logger/spec_helper.rb +7 -0
  164. data/spec/persistence/logger/store_spec.rb +48 -0
  165. data/spec/persistence/message_bus_spec.rb +76 -0
  166. data/spec/persistence/sequel/session_spec.rb +125 -0
  167. data/spec/persistence/sequel/spec_helper.rb +39 -0
  168. data/spec/persistence/sequel/store_shared.rb +25 -0
  169. data/spec/persistence/sequel/store_spec.rb +22 -0
  170. data/spec/persistence/session_spec.rb +199 -0
  171. data/spec/persistence/spec_helper.rb +2 -0
  172. data/spec/persistence/uuid_resource_spec.rb +80 -0
  173. data/spec/spec_helper.rb +10 -0
  174. data/spec/subclass_tracker_sperc.rb +62 -0
  175. data/utils/constant_tree.rb +29 -0
  176. data/utils/stack.rb +48 -0
  177. metadata +402 -0
@@ -0,0 +1,91 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Module: Lims::Core::Persistence::PersistorTrait
8
+
9
+ &mdash; Documentation by YARD 0.7.3
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../../../css/style.css" type="text/css" media="screen" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../../../css/common.css" type="text/css" media="screen" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ relpath = '../../..';
19
+ if (relpath != '') relpath += '/';
20
+ </script>
21
+
22
+ <script type="text/javascript" charset="utf-8" src="../../../js/jquery.js"></script>
23
+
24
+ <script type="text/javascript" charset="utf-8" src="../../../js/app.js"></script>
25
+
26
+
27
+ </head>
28
+ <body>
29
+ <script type="text/javascript" charset="utf-8">
30
+ if (window.top.frames.main) document.body.className = 'frames';
31
+ </script>
32
+
33
+ <div id="header">
34
+ <div id="menu">
35
+
36
+ <a href="../../../_index.html">Index (P)</a> &raquo;
37
+ <span class='title'><span class='object_link'><a href="../../../Lims.html" title="Lims (module)">Lims</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../../Core.html" title="Lims::Core (module)">Core</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Persistence.html" title="Lims::Core::Persistence (module)">Persistence</a></span></span>
38
+ &raquo;
39
+ <span class="title">PersistorTrait</span>
40
+
41
+
42
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
43
+ </div>
44
+
45
+ <div id="search">
46
+
47
+ <a id="class_list_link" href="#">Class List</a>
48
+
49
+ <a id="method_list_link" href="#">Method List</a>
50
+
51
+ <a id="file_list_link" href="#">File List</a>
52
+
53
+ </div>
54
+ <div class="clear"></div>
55
+ </div>
56
+
57
+ <iframe id="search_frame"></iframe>
58
+
59
+ <div id="content"><h1>Module: Lims::Core::Persistence::PersistorTrait
60
+
61
+
62
+
63
+ </h1>
64
+
65
+ <dl class="box">
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+
74
+ <dt class="r1 last">Defined in:</dt>
75
+ <dd class="r1 last">lib/lims-core/persistence/persistable_trait.rb</dd>
76
+
77
+ </dl>
78
+ <div class="clear"></div>
79
+
80
+
81
+
82
+
83
+
84
+
85
+
86
+
87
+ </div>
88
+
89
+
90
+ </body>
91
+ </html>
@@ -0,0 +1,1738 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Class: Lims::Core::Persistence::ResourceState
8
+
9
+ &mdash; Documentation by YARD 0.7.3
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../../../css/style.css" type="text/css" media="screen" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../../../css/common.css" type="text/css" media="screen" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ relpath = '../../..';
19
+ if (relpath != '') relpath += '/';
20
+ </script>
21
+
22
+ <script type="text/javascript" charset="utf-8" src="../../../js/jquery.js"></script>
23
+
24
+ <script type="text/javascript" charset="utf-8" src="../../../js/app.js"></script>
25
+
26
+
27
+ </head>
28
+ <body>
29
+ <script type="text/javascript" charset="utf-8">
30
+ if (window.top.frames.main) document.body.className = 'frames';
31
+ </script>
32
+
33
+ <div id="header">
34
+ <div id="menu">
35
+
36
+ <a href="../../../_index.html">Index (R)</a> &raquo;
37
+ <span class='title'><span class='object_link'><a href="../../../Lims.html" title="Lims (module)">Lims</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../../Core.html" title="Lims::Core (module)">Core</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Persistence.html" title="Lims::Core::Persistence (module)">Persistence</a></span></span>
38
+ &raquo;
39
+ <span class="title">ResourceState</span>
40
+
41
+
42
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
43
+ </div>
44
+
45
+ <div id="search">
46
+
47
+ <a id="class_list_link" href="#">Class List</a>
48
+
49
+ <a id="method_list_link" href="#">Method List</a>
50
+
51
+ <a id="file_list_link" href="#">File List</a>
52
+
53
+ </div>
54
+ <div class="clear"></div>
55
+ </div>
56
+
57
+ <iframe id="search_frame"></iframe>
58
+
59
+ <div id="content"><h1>Class: Lims::Core::Persistence::ResourceState
60
+
61
+
62
+
63
+ </h1>
64
+
65
+ <dl class="box">
66
+
67
+ <dt class="r1">Inherits:</dt>
68
+ <dd class="r1">
69
+ <span class="inheritName"><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></span>
70
+
71
+ <ul class="fullTree">
72
+ <li><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></li>
73
+
74
+ <li class="next">Lims::Core::Persistence::ResourceState</li>
75
+
76
+ </ul>
77
+ <a href="#" class="inheritanceTree">show all</a>
78
+
79
+ </dd>
80
+
81
+
82
+
83
+
84
+
85
+
86
+ <dt class="r2">Includes:</dt>
87
+ <dd class="r2">Virtus</dd>
88
+
89
+
90
+
91
+
92
+
93
+ <dt class="r1 last">Defined in:</dt>
94
+ <dd class="r1 last">lib/lims-core/persistence/resource_state.rb</dd>
95
+
96
+ </dl>
97
+ <div class="clear"></div>
98
+
99
+ <h2>Overview</h2><div class="docstring">
100
+ <div class="discussion">
101
+
102
+ <p>Hold different information relateed particular resource within a
103
+ <span class='object_link'><a href="Session.html" title="Lims::Core::Persistence::Session (class)">Session</a></span>/<span class='object_link'><a href="Persistor.html" title="Lims::Core::Persistence::Persistor (class)">Persistor</a></span>. This could be the database id, the current saving
104
+ state etc ...</p>
105
+
106
+
107
+ </div>
108
+ </div>
109
+ <div class="tags">
110
+
111
+
112
+ </div>
113
+
114
+
115
+
116
+
117
+
118
+
119
+
120
+ <h2>
121
+ Instance Method Summary
122
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
123
+ </h2>
124
+
125
+ <ul class="summary">
126
+
127
+ <li class="public ">
128
+ <span class="summary_signature">
129
+
130
+ <a href="#body_saved%21-instance_method" title="#body_saved! (instance method)">- (Object) <strong>body_saved!</strong> </a>
131
+
132
+
133
+
134
+ </span>
135
+
136
+
137
+
138
+
139
+
140
+
141
+
142
+
143
+ <span class="summary_desc"><div class='inline'></div></span>
144
+
145
+ </li>
146
+
147
+
148
+ <li class="public ">
149
+ <span class="summary_signature">
150
+
151
+ <a href="#body_saved%3F-instance_method" title="#body_saved? (instance method)">- (Boolean) <strong>body_saved?</strong> </a>
152
+
153
+
154
+
155
+ </span>
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+ <span class="summary_desc"><div class='inline'></div></span>
165
+
166
+ </li>
167
+
168
+
169
+ <li class="public ">
170
+ <span class="summary_signature">
171
+
172
+ <a href="#children-instance_method" title="#children (instance method)">- (Object) <strong>children</strong> </a>
173
+
174
+
175
+
176
+ </span>
177
+
178
+
179
+
180
+
181
+
182
+
183
+
184
+
185
+ <span class="summary_desc"><div class='inline'></div></span>
186
+
187
+ </li>
188
+
189
+
190
+ <li class="public ">
191
+ <span class="summary_signature">
192
+
193
+ <a href="#children%21-instance_method" title="#children! (instance method)">- (Object) <strong>children!</strong> </a>
194
+
195
+
196
+
197
+ </span>
198
+
199
+
200
+
201
+
202
+
203
+
204
+
205
+
206
+ <span class="summary_desc"><div class='inline'></div></span>
207
+
208
+ </li>
209
+
210
+
211
+ <li class="public ">
212
+ <span class="summary_signature">
213
+
214
+ <a href="#children_saved%21-instance_method" title="#children_saved! (instance method)">- (Object) <strong>children_saved!</strong> </a>
215
+
216
+
217
+
218
+ </span>
219
+
220
+
221
+
222
+
223
+
224
+
225
+
226
+
227
+ <span class="summary_desc"><div class='inline'></div></span>
228
+
229
+ </li>
230
+
231
+
232
+ <li class="public ">
233
+ <span class="summary_signature">
234
+
235
+ <a href="#children_saved%3F-instance_method" title="#children_saved? (instance method)">- (Boolean) <strong>children_saved?</strong> </a>
236
+
237
+
238
+
239
+ </span>
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+
248
+ <span class="summary_desc"><div class='inline'></div></span>
249
+
250
+ </li>
251
+
252
+
253
+ <li class="public ">
254
+ <span class="summary_signature">
255
+
256
+ <a href="#dirty%3F-instance_method" title="#dirty? (instance method)">- (Boolean) <strong>dirty?</strong> </a>
257
+
258
+
259
+
260
+ </span>
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+
269
+ <span class="summary_desc"><div class='inline'></div></span>
270
+
271
+ </li>
272
+
273
+
274
+ <li class="public ">
275
+ <span class="summary_signature">
276
+
277
+ <a href="#dirty_key-instance_method" title="#dirty_key (instance method)">- (Object) <strong>dirty_key</strong> </a>
278
+
279
+
280
+
281
+ </span>
282
+
283
+
284
+
285
+
286
+
287
+
288
+
289
+
290
+ <span class="summary_desc"><div class='inline'></div></span>
291
+
292
+ </li>
293
+
294
+
295
+ <li class="public ">
296
+ <span class="summary_signature">
297
+
298
+ <a href="#id-instance_method" title="#id (instance method)">- (Object) <strong>id</strong> </a>
299
+
300
+
301
+
302
+ </span>
303
+
304
+
305
+
306
+
307
+
308
+
309
+
310
+
311
+ <span class="summary_desc"><div class='inline'></div></span>
312
+
313
+ </li>
314
+
315
+
316
+ <li class="public ">
317
+ <span class="summary_signature">
318
+
319
+ <a href="#id%3D-instance_method" title="#id= (instance method)">- (Object) <strong>id=</strong>(new_id) </a>
320
+
321
+
322
+
323
+ </span>
324
+
325
+
326
+
327
+
328
+
329
+
330
+
331
+
332
+ <span class="summary_desc"><div class='inline'></div></span>
333
+
334
+ </li>
335
+
336
+
337
+ <li class="public ">
338
+ <span class="summary_signature">
339
+
340
+ <a href="#initialize-instance_method" title="#initialize (instance method)">- (ResourceState) <strong>initialize</strong>(resource, persistor, id = nil) </a>
341
+
342
+
343
+
344
+ </span>
345
+
346
+ <span class="note title constructor">constructor</span>
347
+
348
+
349
+
350
+
351
+
352
+
353
+
354
+
355
+ <span class="summary_desc"><div class='inline'>
356
+ <p>A new instance of ResourceState.</p>
357
+ </div></span>
358
+
359
+ </li>
360
+
361
+
362
+ <li class="public ">
363
+ <span class="summary_signature">
364
+
365
+ <a href="#inserted-instance_method" title="#inserted (instance method)">- (Object) <strong>inserted</strong>(new_id = nil) </a>
366
+
367
+
368
+
369
+ </span>
370
+
371
+
372
+
373
+
374
+
375
+
376
+
377
+
378
+ <span class="summary_desc"><div class='inline'></div></span>
379
+
380
+ </li>
381
+
382
+
383
+ <li class="public ">
384
+ <span class="summary_signature">
385
+
386
+ <a href="#mark_for_deletion-instance_method" title="#mark_for_deletion (instance method)">- (Object) <strong>mark_for_deletion</strong> </a>
387
+
388
+
389
+
390
+ </span>
391
+
392
+
393
+
394
+
395
+
396
+
397
+
398
+
399
+ <span class="summary_desc"><div class='inline'></div></span>
400
+
401
+ </li>
402
+
403
+
404
+ <li class="public ">
405
+ <span class="summary_signature">
406
+
407
+ <a href="#new%3F-instance_method" title="#new? (instance method)">- (Boolean) <strong>new?</strong> </a>
408
+
409
+
410
+
411
+ </span>
412
+
413
+
414
+
415
+
416
+
417
+
418
+
419
+
420
+ <span class="summary_desc"><div class='inline'></div></span>
421
+
422
+ </li>
423
+
424
+
425
+ <li class="public ">
426
+ <span class="summary_signature">
427
+
428
+ <a href="#parents-instance_method" title="#parents (instance method)">- (Object) <strong>parents</strong> </a>
429
+
430
+
431
+
432
+ </span>
433
+
434
+
435
+
436
+
437
+
438
+
439
+
440
+
441
+ <span class="summary_desc"><div class='inline'></div></span>
442
+
443
+ </li>
444
+
445
+
446
+ <li class="public ">
447
+ <span class="summary_signature">
448
+
449
+ <a href="#parents%21-instance_method" title="#parents! (instance method)">- (Object) <strong>parents!</strong> </a>
450
+
451
+
452
+
453
+ </span>
454
+
455
+
456
+
457
+
458
+
459
+
460
+
461
+
462
+ <span class="summary_desc"><div class='inline'></div></span>
463
+
464
+ </li>
465
+
466
+
467
+ <li class="public ">
468
+ <span class="summary_signature">
469
+
470
+ <a href="#parents_saved%21-instance_method" title="#parents_saved! (instance method)">- (Object) <strong>parents_saved!</strong> </a>
471
+
472
+
473
+
474
+ </span>
475
+
476
+
477
+
478
+
479
+
480
+
481
+
482
+
483
+ <span class="summary_desc"><div class='inline'></div></span>
484
+
485
+ </li>
486
+
487
+
488
+ <li class="public ">
489
+ <span class="summary_signature">
490
+
491
+ <a href="#parents_saved%3F-instance_method" title="#parents_saved? (instance method)">- (Boolean) <strong>parents_saved?</strong> </a>
492
+
493
+
494
+
495
+ </span>
496
+
497
+
498
+
499
+
500
+
501
+
502
+
503
+
504
+ <span class="summary_desc"><div class='inline'></div></span>
505
+
506
+ </li>
507
+
508
+
509
+ <li class="public ">
510
+ <span class="summary_signature">
511
+
512
+ <a href="#persistor-instance_method" title="#persistor (instance method)">- (Object) <strong>persistor</strong> </a>
513
+
514
+
515
+
516
+ </span>
517
+
518
+
519
+
520
+
521
+
522
+
523
+
524
+
525
+ <span class="summary_desc"><div class='inline'></div></span>
526
+
527
+ </li>
528
+
529
+
530
+ <li class="public ">
531
+ <span class="summary_signature">
532
+
533
+ <a href="#reset-instance_method" title="#reset (instance method)">- (Object) <strong>reset</strong> </a>
534
+
535
+
536
+
537
+ </span>
538
+
539
+
540
+
541
+
542
+
543
+
544
+
545
+
546
+ <span class="summary_desc"><div class='inline'></div></span>
547
+
548
+ </li>
549
+
550
+
551
+ <li class="public ">
552
+ <span class="summary_signature">
553
+
554
+ <a href="#resource-instance_method" title="#resource (instance method)">- (Object) <strong>resource</strong> </a>
555
+
556
+
557
+
558
+ </span>
559
+
560
+
561
+
562
+
563
+
564
+
565
+
566
+
567
+ <span class="summary_desc"><div class='inline'></div></span>
568
+
569
+ </li>
570
+
571
+
572
+ <li class="public ">
573
+ <span class="summary_signature">
574
+
575
+ <a href="#resource%3D-instance_method" title="#resource= (instance method)">- (Object) <strong>resource=</strong>(new_resource) </a>
576
+
577
+
578
+
579
+ </span>
580
+
581
+
582
+
583
+
584
+
585
+
586
+
587
+
588
+ <span class="summary_desc"><div class='inline'></div></span>
589
+
590
+ </li>
591
+
592
+
593
+ <li class="public ">
594
+ <span class="summary_signature">
595
+
596
+ <a href="#save_action-instance_method" title="#save_action (instance method)">- (Object) <strong>save_action</strong> </a>
597
+
598
+
599
+
600
+ </span>
601
+
602
+
603
+
604
+
605
+
606
+
607
+
608
+
609
+ <span class="summary_desc"><div class='inline'></div></span>
610
+
611
+ </li>
612
+
613
+
614
+ <li class="public ">
615
+ <span class="summary_signature">
616
+
617
+ <a href="#to_delete-instance_method" title="#to_delete (instance method)">- (Object) <strong>to_delete</strong> </a>
618
+
619
+
620
+
621
+ </span>
622
+
623
+
624
+
625
+
626
+
627
+
628
+
629
+
630
+ <span class="summary_desc"><div class='inline'></div></span>
631
+
632
+ </li>
633
+
634
+
635
+ <li class="public ">
636
+ <span class="summary_signature">
637
+
638
+ <a href="#to_load%3F-instance_method" title="#to_load? (instance method)">- (Boolean) <strong>to_load?</strong> </a>
639
+
640
+
641
+
642
+ </span>
643
+
644
+
645
+
646
+
647
+
648
+
649
+
650
+
651
+ <span class="summary_desc"><div class='inline'></div></span>
652
+
653
+ </li>
654
+
655
+
656
+ <li class="public ">
657
+ <span class="summary_signature">
658
+
659
+ <a href="#update_dirty_key-instance_method" title="#update_dirty_key (instance method)">- (Object) <strong>update_dirty_key</strong> </a>
660
+
661
+
662
+
663
+ </span>
664
+
665
+
666
+
667
+
668
+
669
+
670
+
671
+
672
+ <span class="summary_desc"><div class='inline'></div></span>
673
+
674
+ </li>
675
+
676
+
677
+ <li class="public ">
678
+ <span class="summary_signature">
679
+
680
+ <a href="#updated-instance_method" title="#updated (instance method)">- (Object) <strong>updated</strong> </a>
681
+
682
+
683
+
684
+ </span>
685
+
686
+
687
+
688
+
689
+
690
+
691
+
692
+
693
+ <span class="summary_desc"><div class='inline'></div></span>
694
+
695
+ </li>
696
+
697
+
698
+ </ul>
699
+
700
+
701
+
702
+ <div id="constructor_details" class="method_details_list">
703
+ <h2>Constructor Details</h2>
704
+
705
+ <div class="method_details first">
706
+ <p class="signature first" id="initialize-instance_method">
707
+
708
+ - (<tt><span class='object_link'><a href="" title="Lims::Core::Persistence::ResourceState (class)">ResourceState</a></span></tt>) <strong>initialize</strong>(resource, persistor, id = nil)
709
+
710
+
711
+
712
+ </p><div class="docstring">
713
+ <div class="discussion">
714
+
715
+ <p>A new instance of ResourceState</p>
716
+
717
+
718
+ </div>
719
+ </div>
720
+ <div class="tags">
721
+
722
+
723
+ </div><table class="source_code">
724
+ <tr>
725
+ <td>
726
+ <pre class="lines">
727
+
728
+
729
+ 27
730
+ 28
731
+ 29
732
+ 30
733
+ 31
734
+ 32
735
+ 33
736
+ 34
737
+ 35</pre>
738
+ </td>
739
+ <td>
740
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 27</span>
741
+
742
+ <span class='kw'>def</span> <span class='id initialize'>initialize</span><span class='lparen'>(</span><span class='id resource'>resource</span><span class='comma'>,</span> <span class='id persistor'>persistor</span><span class='comma'>,</span> <span class='id id'>id</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
743
+ <span class='ivar'>@resource</span><span class='op'>=</span><span class='id resource'>resource</span>
744
+ <span class='ivar'>@persistor</span><span class='op'>=</span><span class='id persistor'>persistor</span>
745
+ <span class='kw'>self</span><span class='period'>.</span><span class='id id'>id</span><span class='op'>=</span><span class='id id'>id</span> <span class='kw'>if</span> <span class='id id'>id</span>
746
+ <span class='ivar'>@to_delete</span> <span class='op'>=</span> <span class='kw'>false</span>
747
+ <span class='id update_dirty_key'>update_dirty_key</span>
748
+ <span class='id reset'>reset</span>
749
+
750
+ <span class='kw'>end</span></pre>
751
+ </td>
752
+ </tr>
753
+ </table>
754
+ </div>
755
+
756
+ </div>
757
+
758
+
759
+ <div id="instance_method_details" class="method_details_list">
760
+ <h2>Instance Method Details</h2>
761
+
762
+
763
+ <div class="method_details first">
764
+ <p class="signature first" id="body_saved!-instance_method">
765
+
766
+ - (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>body_saved!</strong>
767
+
768
+
769
+
770
+ </p><table class="source_code">
771
+ <tr>
772
+ <td>
773
+ <pre class="lines">
774
+
775
+
776
+ 144
777
+ 145
778
+ 146</pre>
779
+ </td>
780
+ <td>
781
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 144</span>
782
+
783
+ <span class='kw'>def</span> <span class='id body_saved!'>body_saved!</span>
784
+ <span class='ivar'>@body_saved</span> <span class='op'>=</span> <span class='kw'>true</span>
785
+ <span class='kw'>end</span></pre>
786
+ </td>
787
+ </tr>
788
+ </table>
789
+ </div>
790
+
791
+ <div class="method_details ">
792
+ <p class="signature " id="body_saved?-instance_method">
793
+
794
+ - (<tt>Boolean</tt>) <strong>body_saved?</strong>
795
+
796
+
797
+
798
+ </p><div class="docstring">
799
+ <div class="discussion">
800
+
801
+
802
+ </div>
803
+ </div>
804
+ <div class="tags">
805
+
806
+ <h3>Returns:</h3>
807
+ <ul class="return">
808
+
809
+ <li>
810
+
811
+
812
+ <span class='type'>(<tt>Boolean</tt>)</span>
813
+
814
+
815
+
816
+ </li>
817
+
818
+ </ul>
819
+
820
+ </div><table class="source_code">
821
+ <tr>
822
+ <td>
823
+ <pre class="lines">
824
+
825
+
826
+ 23
827
+ 24
828
+ 25</pre>
829
+ </td>
830
+ <td>
831
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 23</span>
832
+
833
+ <span class='kw'>def</span> <span class='id body_saved?'>body_saved?</span>
834
+ <span class='ivar'>@body_saved</span>
835
+ <span class='kw'>end</span></pre>
836
+ </td>
837
+ </tr>
838
+ </table>
839
+ </div>
840
+
841
+ <div class="method_details ">
842
+ <p class="signature " id="children-instance_method">
843
+
844
+ - (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>children</strong>
845
+
846
+
847
+
848
+ </p><table class="source_code">
849
+ <tr>
850
+ <td>
851
+ <pre class="lines">
852
+
853
+
854
+ 137
855
+ 138
856
+ 139
857
+ 140</pre>
858
+ </td>
859
+ <td>
860
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 137</span>
861
+
862
+ <span class='kw'>def</span> <span class='id children'>children</span>
863
+ <span class='kw'>return</span> <span class='lbracket'>[</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id to_delete'>to_delete</span>
864
+ <span class='op'>!</span><span class='ivar'>@children_saved</span> <span class='op'>&amp;&amp;</span> <span class='ivar'>@persistor</span><span class='period'>.</span><span class='id children_for'>children_for</span><span class='lparen'>(</span><span class='id resource'>resource</span><span class='rparen'>)</span>
865
+ <span class='kw'>end</span></pre>
866
+ </td>
867
+ </tr>
868
+ </table>
869
+ </div>
870
+
871
+ <div class="method_details ">
872
+ <p class="signature " id="children!-instance_method">
873
+
874
+ - (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>children!</strong>
875
+
876
+
877
+
878
+ </p><table class="source_code">
879
+ <tr>
880
+ <td>
881
+ <pre class="lines">
882
+
883
+
884
+ 141
885
+ 142
886
+ 143</pre>
887
+ </td>
888
+ <td>
889
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 141</span>
890
+
891
+ <span class='kw'>def</span> <span class='id children!'>children!</span>
892
+ <span class='id children'>children</span><span class='period'>.</span><span class='id tap'>tap</span> <span class='lbrace'>{</span> <span class='id children_saved!'>children_saved!</span> <span class='rbrace'>}</span>
893
+ <span class='kw'>end</span></pre>
894
+ </td>
895
+ </tr>
896
+ </table>
897
+ </div>
898
+
899
+ <div class="method_details ">
900
+ <p class="signature " id="children_saved!-instance_method">
901
+
902
+ - (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>children_saved!</strong>
903
+
904
+
905
+
906
+ </p><table class="source_code">
907
+ <tr>
908
+ <td>
909
+ <pre class="lines">
910
+
911
+
912
+ 130
913
+ 131
914
+ 132</pre>
915
+ </td>
916
+ <td>
917
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 130</span>
918
+
919
+ <span class='kw'>def</span> <span class='id children_saved!'>children_saved!</span>
920
+ <span class='ivar'>@children_saved</span> <span class='op'>=</span> <span class='kw'>true</span>
921
+ <span class='kw'>end</span></pre>
922
+ </td>
923
+ </tr>
924
+ </table>
925
+ </div>
926
+
927
+ <div class="method_details ">
928
+ <p class="signature " id="children_saved?-instance_method">
929
+
930
+ - (<tt>Boolean</tt>) <strong>children_saved?</strong>
931
+
932
+
933
+
934
+ </p><div class="docstring">
935
+ <div class="discussion">
936
+
937
+
938
+ </div>
939
+ </div>
940
+ <div class="tags">
941
+
942
+ <h3>Returns:</h3>
943
+ <ul class="return">
944
+
945
+ <li>
946
+
947
+
948
+ <span class='type'>(<tt>Boolean</tt>)</span>
949
+
950
+
951
+
952
+ </li>
953
+
954
+ </ul>
955
+
956
+ </div><table class="source_code">
957
+ <tr>
958
+ <td>
959
+ <pre class="lines">
960
+
961
+
962
+ 19
963
+ 20
964
+ 21</pre>
965
+ </td>
966
+ <td>
967
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 19</span>
968
+
969
+ <span class='kw'>def</span> <span class='id children_saved?'>children_saved?</span>
970
+ <span class='ivar'>@children_saved</span>
971
+ <span class='kw'>end</span></pre>
972
+ </td>
973
+ </tr>
974
+ </table>
975
+ </div>
976
+
977
+ <div class="method_details ">
978
+ <p class="signature " id="dirty?-instance_method">
979
+
980
+ - (<tt>Boolean</tt>) <strong>dirty?</strong>
981
+
982
+
983
+
984
+ </p><div class="docstring">
985
+ <div class="discussion">
986
+
987
+
988
+ </div>
989
+ </div>
990
+ <div class="tags">
991
+
992
+ <h3>Returns:</h3>
993
+ <ul class="return">
994
+
995
+ <li>
996
+
997
+
998
+ <span class='type'>(<tt>Boolean</tt>)</span>
999
+
1000
+
1001
+
1002
+ </li>
1003
+
1004
+ </ul>
1005
+
1006
+ </div><table class="source_code">
1007
+ <tr>
1008
+ <td>
1009
+ <pre class="lines">
1010
+
1011
+
1012
+ 71
1013
+ 72
1014
+ 73</pre>
1015
+ </td>
1016
+ <td>
1017
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 71</span>
1018
+
1019
+ <span class='kw'>def</span> <span class='id dirty?'>dirty?</span>
1020
+ <span class='op'>!</span><span class='ivar'>@body_saved</span> <span class='op'>&amp;&amp;</span> <span class='id dirty_key'>dirty_key</span> <span class='op'>!=</span> <span class='ivar'>@last_dirty_key</span>
1021
+ <span class='kw'>end</span></pre>
1022
+ </td>
1023
+ </tr>
1024
+ </table>
1025
+ </div>
1026
+
1027
+ <div class="method_details ">
1028
+ <p class="signature " id="dirty_key-instance_method">
1029
+
1030
+ - (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>dirty_key</strong>
1031
+
1032
+
1033
+
1034
+ </p><table class="source_code">
1035
+ <tr>
1036
+ <td>
1037
+ <pre class="lines">
1038
+
1039
+
1040
+ 54
1041
+ 55
1042
+ 56</pre>
1043
+ </td>
1044
+ <td>
1045
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 54</span>
1046
+
1047
+ <span class='kw'>def</span> <span class='id dirty_key'>dirty_key</span>
1048
+ <span class='ivar'>@persistor</span><span class='period'>.</span><span class='id dirty_key_for'>dirty_key_for</span><span class='lparen'>(</span><span class='id resource'>resource</span><span class='rparen'>)</span>
1049
+ <span class='kw'>end</span></pre>
1050
+ </td>
1051
+ </tr>
1052
+ </table>
1053
+ </div>
1054
+
1055
+ <div class="method_details ">
1056
+ <p class="signature " id="id-instance_method">
1057
+
1058
+ - (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>id</strong>
1059
+
1060
+
1061
+
1062
+ </p><table class="source_code">
1063
+ <tr>
1064
+ <td>
1065
+ <pre class="lines">
1066
+
1067
+
1068
+ 42
1069
+ 43
1070
+ 44</pre>
1071
+ </td>
1072
+ <td>
1073
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 42</span>
1074
+
1075
+ <span class='kw'>def</span> <span class='id id'>id</span>
1076
+ <span class='ivar'>@id</span>
1077
+ <span class='kw'>end</span></pre>
1078
+ </td>
1079
+ </tr>
1080
+ </table>
1081
+ </div>
1082
+
1083
+ <div class="method_details ">
1084
+ <p class="signature " id="id=-instance_method">
1085
+
1086
+ - (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>id=</strong>(new_id)
1087
+
1088
+
1089
+
1090
+ </p><div class="docstring">
1091
+ <div class="discussion">
1092
+
1093
+
1094
+ </div>
1095
+ </div>
1096
+ <div class="tags">
1097
+
1098
+ <h3>Raises:</h3>
1099
+ <ul class="raise">
1100
+
1101
+ <li>
1102
+
1103
+
1104
+ <span class='type'>(<tt>RuntimeError</tt>)</span>
1105
+
1106
+
1107
+
1108
+ </li>
1109
+
1110
+ </ul>
1111
+
1112
+ </div><table class="source_code">
1113
+ <tr>
1114
+ <td>
1115
+ <pre class="lines">
1116
+
1117
+
1118
+ 75
1119
+ 76
1120
+ 77
1121
+ 78
1122
+ 79
1123
+ 80
1124
+ 81
1125
+ 82</pre>
1126
+ </td>
1127
+ <td>
1128
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 75</span>
1129
+
1130
+ <span class='kw'>def</span> <span class='id id='>id=</span><span class='lparen'>(</span><span class='id new_id'>new_id</span><span class='rparen'>)</span>
1131
+ <span class='kw'>return</span> <span class='kw'>if</span> <span class='id new_id'>new_id</span> <span class='op'>==</span> <span class='ivar'>@id</span>
1132
+ <span class='id raise'>raise</span> <span class='const'>RuntimeError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>modifing existing id not allowed. </span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>if</span> <span class='ivar'>@id</span>
1133
+ <span class='ivar'>@id</span> <span class='op'>=</span> <span class='id new_id'>new_id</span>
1134
+ <span class='comment'># link the new id in th id_to_state map
1135
+ </span> <span class='ivar'>@persistor</span><span class='period'>.</span><span class='id bind_state_to_id'>bind_state_to_id</span><span class='lparen'>(</span><span class='kw'>self</span><span class='rparen'>)</span>
1136
+ <span class='id id'>id</span>
1137
+ <span class='kw'>end</span></pre>
1138
+ </td>
1139
+ </tr>
1140
+ </table>
1141
+ </div>
1142
+
1143
+ <div class="method_details ">
1144
+ <p class="signature " id="inserted-instance_method">
1145
+
1146
+ - (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>inserted</strong>(new_id = nil)
1147
+
1148
+
1149
+
1150
+ </p><table class="source_code">
1151
+ <tr>
1152
+ <td>
1153
+ <pre class="lines">
1154
+
1155
+
1156
+ 112
1157
+ 113
1158
+ 114
1159
+ 115</pre>
1160
+ </td>
1161
+ <td>
1162
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 112</span>
1163
+
1164
+ <span class='kw'>def</span> <span class='id inserted'>inserted</span><span class='lparen'>(</span><span class='id new_id'>new_id</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
1165
+ <span class='kw'>self</span><span class='period'>.</span><span class='id id'>id</span> <span class='op'>=</span> <span class='id new_id'>new_id</span>
1166
+ <span class='id update_dirty_key'>update_dirty_key</span>
1167
+ <span class='kw'>end</span></pre>
1168
+ </td>
1169
+ </tr>
1170
+ </table>
1171
+ </div>
1172
+
1173
+ <div class="method_details ">
1174
+ <p class="signature " id="mark_for_deletion-instance_method">
1175
+
1176
+ - (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>mark_for_deletion</strong>
1177
+
1178
+
1179
+
1180
+ </p><table class="source_code">
1181
+ <tr>
1182
+ <td>
1183
+ <pre class="lines">
1184
+
1185
+
1186
+ 98
1187
+ 99
1188
+ 100</pre>
1189
+ </td>
1190
+ <td>
1191
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 98</span>
1192
+
1193
+ <span class='kw'>def</span> <span class='id mark_for_deletion'>mark_for_deletion</span>
1194
+ <span class='ivar'>@to_delete</span> <span class='op'>=</span> <span class='kw'>true</span>
1195
+ <span class='kw'>end</span></pre>
1196
+ </td>
1197
+ </tr>
1198
+ </table>
1199
+ </div>
1200
+
1201
+ <div class="method_details ">
1202
+ <p class="signature " id="new?-instance_method">
1203
+
1204
+ - (<tt>Boolean</tt>) <strong>new?</strong>
1205
+
1206
+
1207
+
1208
+ </p><div class="docstring">
1209
+ <div class="discussion">
1210
+
1211
+
1212
+ </div>
1213
+ </div>
1214
+ <div class="tags">
1215
+
1216
+ <h3>Returns:</h3>
1217
+ <ul class="return">
1218
+
1219
+ <li>
1220
+
1221
+
1222
+ <span class='type'>(<tt>Boolean</tt>)</span>
1223
+
1224
+
1225
+
1226
+ </li>
1227
+
1228
+ </ul>
1229
+
1230
+ </div><table class="source_code">
1231
+ <tr>
1232
+ <td>
1233
+ <pre class="lines">
1234
+
1235
+
1236
+ 62
1237
+ 63
1238
+ 64</pre>
1239
+ </td>
1240
+ <td>
1241
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 62</span>
1242
+
1243
+ <span class='kw'>def</span> <span class='id new?'>new?</span>
1244
+ <span class='ivar'>@id</span> <span class='op'>==</span> <span class='kw'>nil</span>
1245
+ <span class='kw'>end</span></pre>
1246
+ </td>
1247
+ </tr>
1248
+ </table>
1249
+ </div>
1250
+
1251
+ <div class="method_details ">
1252
+ <p class="signature " id="parents-instance_method">
1253
+
1254
+ - (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>parents</strong>
1255
+
1256
+
1257
+
1258
+ </p><table class="source_code">
1259
+ <tr>
1260
+ <td>
1261
+ <pre class="lines">
1262
+
1263
+
1264
+ 124
1265
+ 125
1266
+ 126</pre>
1267
+ </td>
1268
+ <td>
1269
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 124</span>
1270
+
1271
+ <span class='kw'>def</span> <span class='id parents'>parents</span>
1272
+ <span class='op'>!</span><span class='ivar'>@parents_saved</span> <span class='op'>&amp;&amp;</span> <span class='ivar'>@persistor</span><span class='period'>.</span><span class='id parents_for'>parents_for</span><span class='lparen'>(</span><span class='id resource'>resource</span><span class='rparen'>)</span>
1273
+ <span class='kw'>end</span></pre>
1274
+ </td>
1275
+ </tr>
1276
+ </table>
1277
+ </div>
1278
+
1279
+ <div class="method_details ">
1280
+ <p class="signature " id="parents!-instance_method">
1281
+
1282
+ - (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>parents!</strong>
1283
+
1284
+
1285
+
1286
+ </p><table class="source_code">
1287
+ <tr>
1288
+ <td>
1289
+ <pre class="lines">
1290
+
1291
+
1292
+ 127
1293
+ 128
1294
+ 129</pre>
1295
+ </td>
1296
+ <td>
1297
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 127</span>
1298
+
1299
+ <span class='kw'>def</span> <span class='id parents!'>parents!</span>
1300
+ <span class='id parents'>parents</span><span class='period'>.</span><span class='id tap'>tap</span> <span class='lbrace'>{</span> <span class='id parents_saved!'>parents_saved!</span> <span class='rbrace'>}</span>
1301
+ <span class='kw'>end</span></pre>
1302
+ </td>
1303
+ </tr>
1304
+ </table>
1305
+ </div>
1306
+
1307
+ <div class="method_details ">
1308
+ <p class="signature " id="parents_saved!-instance_method">
1309
+
1310
+ - (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>parents_saved!</strong>
1311
+
1312
+
1313
+
1314
+ </p><table class="source_code">
1315
+ <tr>
1316
+ <td>
1317
+ <pre class="lines">
1318
+
1319
+
1320
+ 121
1321
+ 122
1322
+ 123</pre>
1323
+ </td>
1324
+ <td>
1325
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 121</span>
1326
+
1327
+ <span class='kw'>def</span> <span class='id parents_saved!'>parents_saved!</span>
1328
+ <span class='ivar'>@parents_saved</span> <span class='op'>=</span> <span class='kw'>true</span>
1329
+ <span class='kw'>end</span></pre>
1330
+ </td>
1331
+ </tr>
1332
+ </table>
1333
+ </div>
1334
+
1335
+ <div class="method_details ">
1336
+ <p class="signature " id="parents_saved?-instance_method">
1337
+
1338
+ - (<tt>Boolean</tt>) <strong>parents_saved?</strong>
1339
+
1340
+
1341
+
1342
+ </p><div class="docstring">
1343
+ <div class="discussion">
1344
+
1345
+
1346
+ </div>
1347
+ </div>
1348
+ <div class="tags">
1349
+
1350
+ <h3>Returns:</h3>
1351
+ <ul class="return">
1352
+
1353
+ <li>
1354
+
1355
+
1356
+ <span class='type'>(<tt>Boolean</tt>)</span>
1357
+
1358
+
1359
+
1360
+ </li>
1361
+
1362
+ </ul>
1363
+
1364
+ </div><table class="source_code">
1365
+ <tr>
1366
+ <td>
1367
+ <pre class="lines">
1368
+
1369
+
1370
+ 134
1371
+ 135
1372
+ 136</pre>
1373
+ </td>
1374
+ <td>
1375
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 134</span>
1376
+
1377
+ <span class='kw'>def</span> <span class='id parents_saved?'>parents_saved?</span>
1378
+ <span class='ivar'>@parents_saved</span>
1379
+ <span class='kw'>end</span></pre>
1380
+ </td>
1381
+ </tr>
1382
+ </table>
1383
+ </div>
1384
+
1385
+ <div class="method_details ">
1386
+ <p class="signature " id="persistor-instance_method">
1387
+
1388
+ - (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>persistor</strong>
1389
+
1390
+
1391
+
1392
+ </p><table class="source_code">
1393
+ <tr>
1394
+ <td>
1395
+ <pre class="lines">
1396
+
1397
+
1398
+ 50
1399
+ 51
1400
+ 52</pre>
1401
+ </td>
1402
+ <td>
1403
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 50</span>
1404
+
1405
+ <span class='kw'>def</span> <span class='id persistor'>persistor</span>
1406
+ <span class='ivar'>@persistor</span>
1407
+ <span class='kw'>end</span></pre>
1408
+ </td>
1409
+ </tr>
1410
+ </table>
1411
+ </div>
1412
+
1413
+ <div class="method_details ">
1414
+ <p class="signature " id="reset-instance_method">
1415
+
1416
+ - (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>reset</strong>
1417
+
1418
+
1419
+
1420
+ </p><table class="source_code">
1421
+ <tr>
1422
+ <td>
1423
+ <pre class="lines">
1424
+
1425
+
1426
+ 148
1427
+ 149
1428
+ 150
1429
+ 151
1430
+ 152</pre>
1431
+ </td>
1432
+ <td>
1433
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 148</span>
1434
+
1435
+ <span class='kw'>def</span> <span class='id reset'>reset</span>
1436
+ <span class='ivar'>@parents_saved</span> <span class='op'>=</span> <span class='kw'>nil</span>
1437
+ <span class='ivar'>@children_saved</span> <span class='op'>=</span> <span class='kw'>nil</span>
1438
+ <span class='ivar'>@body_saved</span><span class='op'>=</span> <span class='kw'>nil</span>
1439
+ <span class='kw'>end</span></pre>
1440
+ </td>
1441
+ </tr>
1442
+ </table>
1443
+ </div>
1444
+
1445
+ <div class="method_details ">
1446
+ <p class="signature " id="resource-instance_method">
1447
+
1448
+ - (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>resource</strong>
1449
+
1450
+
1451
+
1452
+ </p><table class="source_code">
1453
+ <tr>
1454
+ <td>
1455
+ <pre class="lines">
1456
+
1457
+
1458
+ 46
1459
+ 47
1460
+ 48</pre>
1461
+ </td>
1462
+ <td>
1463
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 46</span>
1464
+
1465
+ <span class='kw'>def</span> <span class='id resource'>resource</span>
1466
+ <span class='ivar'>@resource</span>
1467
+ <span class='kw'>end</span></pre>
1468
+ </td>
1469
+ </tr>
1470
+ </table>
1471
+ </div>
1472
+
1473
+ <div class="method_details ">
1474
+ <p class="signature " id="resource=-instance_method">
1475
+
1476
+ - (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>resource=</strong>(new_resource)
1477
+
1478
+
1479
+
1480
+ </p><div class="docstring">
1481
+ <div class="discussion">
1482
+
1483
+
1484
+ </div>
1485
+ </div>
1486
+ <div class="tags">
1487
+
1488
+ <h3>Raises:</h3>
1489
+ <ul class="raise">
1490
+
1491
+ <li>
1492
+
1493
+
1494
+ <span class='type'>(<tt>RuntimeError</tt>)</span>
1495
+
1496
+
1497
+
1498
+ </li>
1499
+
1500
+ </ul>
1501
+
1502
+ </div><table class="source_code">
1503
+ <tr>
1504
+ <td>
1505
+ <pre class="lines">
1506
+
1507
+
1508
+ 84
1509
+ 85
1510
+ 86
1511
+ 87
1512
+ 88
1513
+ 89
1514
+ 90
1515
+ 91
1516
+ 92
1517
+ 93
1518
+ 94
1519
+ 95
1520
+ 96</pre>
1521
+ </td>
1522
+ <td>
1523
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 84</span>
1524
+
1525
+ <span class='kw'>def</span> <span class='id resource='>resource=</span><span class='lparen'>(</span><span class='id new_resource'>new_resource</span><span class='rparen'>)</span>
1526
+ <span class='comment'># Hack
1527
+ </span> <span class='comment'># for some emtpy resources , resource == nil returns true
1528
+ </span> <span class='comment'># but nil == resource returns false
1529
+ </span> <span class='comment'># which is why we test both.
1530
+ </span> <span class='kw'>return</span> <span class='kw'>if</span> <span class='id resource'>resource</span> <span class='op'>==</span> <span class='id new_resource'>new_resource</span> <span class='op'>&amp;&amp;</span> <span class='id new_resource'>new_resource</span> <span class='op'>==</span> <span class='id resource'>resource</span>
1531
+ <span class='id raise'>raise</span> <span class='const'>RuntimeError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>modifing existing resource not allowed. </span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>if</span> <span class='ivar'>@resource</span>
1532
+ <span class='ivar'>@resource</span> <span class='op'>=</span> <span class='id new_resource'>new_resource</span>
1533
+ <span class='comment'># link the new resource in th resource_to_state map
1534
+ </span> <span class='ivar'>@persistor</span><span class='period'>.</span><span class='id bind_state_to_resource'>bind_state_to_resource</span><span class='lparen'>(</span><span class='kw'>self</span><span class='rparen'>)</span>
1535
+ <span class='id update_dirty_key'>update_dirty_key</span>
1536
+ <span class='id resource'>resource</span>
1537
+ <span class='kw'>end</span></pre>
1538
+ </td>
1539
+ </tr>
1540
+ </table>
1541
+ </div>
1542
+
1543
+ <div class="method_details ">
1544
+ <p class="signature " id="save_action-instance_method">
1545
+
1546
+ - (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>save_action</strong>
1547
+
1548
+
1549
+
1550
+ </p><div class="docstring">
1551
+ <div class="discussion">
1552
+
1553
+ <div class="note todo">
1554
+ <strong>TODO:</strong>
1555
+ <div class='inline'>
1556
+ <p>use state machine ?</p>
1557
+ </div>
1558
+ </div>
1559
+
1560
+
1561
+
1562
+ </div>
1563
+ </div>
1564
+ <div class="tags">
1565
+
1566
+
1567
+ </div><table class="source_code">
1568
+ <tr>
1569
+ <td>
1570
+ <pre class="lines">
1571
+
1572
+
1573
+ 103
1574
+ 104
1575
+ 105
1576
+ 106
1577
+ 107
1578
+ 108
1579
+ 109
1580
+ 110</pre>
1581
+ </td>
1582
+ <td>
1583
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 103</span>
1584
+
1585
+ <span class='kw'>def</span> <span class='id save_action'>save_action</span>
1586
+ <span class='kw'>case</span>
1587
+ <span class='kw'>when</span> <span class='ivar'>@body_saved</span> <span class='kw'>then</span> <span class='kw'>nil</span>
1588
+ <span class='kw'>when</span> <span class='id to_delete'>to_delete</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id new?'>new?</span> <span class='kw'>then</span> <span class='symbol'>:delete</span>
1589
+ <span class='kw'>when</span> <span class='id new?'>new?</span> <span class='kw'>then</span> <span class='symbol'>:insert</span>
1590
+ <span class='kw'>when</span> <span class='id dirty?'>dirty?</span> <span class='kw'>then</span> <span class='symbol'>:update</span>
1591
+ <span class='kw'>end</span>
1592
+ <span class='kw'>end</span></pre>
1593
+ </td>
1594
+ </tr>
1595
+ </table>
1596
+ </div>
1597
+
1598
+ <div class="method_details ">
1599
+ <p class="signature " id="to_delete-instance_method">
1600
+
1601
+ - (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>to_delete</strong>
1602
+
1603
+
1604
+
1605
+ </p><table class="source_code">
1606
+ <tr>
1607
+ <td>
1608
+ <pre class="lines">
1609
+
1610
+
1611
+ 37
1612
+ 38
1613
+ 39</pre>
1614
+ </td>
1615
+ <td>
1616
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 37</span>
1617
+
1618
+ <span class='kw'>def</span> <span class='id to_delete'>to_delete</span>
1619
+ <span class='ivar'>@to_delete</span>
1620
+ <span class='kw'>end</span></pre>
1621
+ </td>
1622
+ </tr>
1623
+ </table>
1624
+ </div>
1625
+
1626
+ <div class="method_details ">
1627
+ <p class="signature " id="to_load?-instance_method">
1628
+
1629
+ - (<tt>Boolean</tt>) <strong>to_load?</strong>
1630
+
1631
+
1632
+
1633
+ </p><div class="docstring">
1634
+ <div class="discussion">
1635
+
1636
+
1637
+ </div>
1638
+ </div>
1639
+ <div class="tags">
1640
+
1641
+ <h3>Returns:</h3>
1642
+ <ul class="return">
1643
+
1644
+ <li>
1645
+
1646
+
1647
+ <span class='type'>(<tt>Boolean</tt>)</span>
1648
+
1649
+
1650
+
1651
+ </li>
1652
+
1653
+ </ul>
1654
+
1655
+ </div><table class="source_code">
1656
+ <tr>
1657
+ <td>
1658
+ <pre class="lines">
1659
+
1660
+
1661
+ 66
1662
+ 67
1663
+ 68</pre>
1664
+ </td>
1665
+ <td>
1666
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 66</span>
1667
+
1668
+ <span class='kw'>def</span> <span class='id to_load?'>to_load?</span>
1669
+ <span class='ivar'>@id</span> <span class='op'>!=</span> <span class='kw'>nil</span> <span class='op'>&amp;&amp;</span> <span class='ivar'>@resource</span> <span class='op'>==</span> <span class='kw'>nil</span>
1670
+ <span class='kw'>end</span></pre>
1671
+ </td>
1672
+ </tr>
1673
+ </table>
1674
+ </div>
1675
+
1676
+ <div class="method_details ">
1677
+ <p class="signature " id="update_dirty_key-instance_method">
1678
+
1679
+ - (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>update_dirty_key</strong>
1680
+
1681
+
1682
+
1683
+ </p><table class="source_code">
1684
+ <tr>
1685
+ <td>
1686
+ <pre class="lines">
1687
+
1688
+
1689
+ 58
1690
+ 59
1691
+ 60</pre>
1692
+ </td>
1693
+ <td>
1694
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 58</span>
1695
+
1696
+ <span class='kw'>def</span> <span class='id update_dirty_key'>update_dirty_key</span>
1697
+ <span class='ivar'>@last_dirty_key</span> <span class='op'>=</span> <span class='id resource'>resource</span> <span class='op'>?</span> <span class='ivar'>@persistor</span><span class='period'>.</span><span class='id dirty_key_for'>dirty_key_for</span><span class='lparen'>(</span><span class='id resource'>resource</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='kw'>nil</span>
1698
+ <span class='kw'>end</span></pre>
1699
+ </td>
1700
+ </tr>
1701
+ </table>
1702
+ </div>
1703
+
1704
+ <div class="method_details ">
1705
+ <p class="signature " id="updated-instance_method">
1706
+
1707
+ - (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>updated</strong>
1708
+
1709
+
1710
+
1711
+ </p><table class="source_code">
1712
+ <tr>
1713
+ <td>
1714
+ <pre class="lines">
1715
+
1716
+
1717
+ 117
1718
+ 118
1719
+ 119</pre>
1720
+ </td>
1721
+ <td>
1722
+ <pre class="code"><span class="info file"># File 'lib/lims-core/persistence/resource_state.rb', line 117</span>
1723
+
1724
+ <span class='kw'>def</span> <span class='id updated'>updated</span>
1725
+ <span class='id update_dirty_key'>update_dirty_key</span>
1726
+ <span class='kw'>end</span></pre>
1727
+ </td>
1728
+ </tr>
1729
+ </table>
1730
+ </div>
1731
+
1732
+ </div>
1733
+
1734
+ </div>
1735
+
1736
+
1737
+ </body>
1738
+ </html>