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.
- checksums.yaml +15 -0
- data/.gitignore +5 -0
- data/.rspec +1 -0
- data/.rvmrc +2 -0
- data/.travis.yml +2 -0
- data/.vimrc +27 -0
- data/.yard_templates/default/layout/html/footer.erb +0 -0
- data/.yardopts +1 -0
- data/Gemfile +54 -0
- data/Gemfile.lock +197 -0
- data/Guardfile +21 -0
- data/Guardfile.tmux +28 -0
- data/README.markdown +67 -0
- data/Rakefile +16 -0
- data/config/database.yml +16 -0
- data/doc/Array.html +116 -0
- data/doc/Array/ArrayLoggerPersistor.html +152 -0
- data/doc/Lims.html +114 -0
- data/doc/Lims/Core.html +178 -0
- data/doc/Lims/Core/Action.html +91 -0
- data/doc/Lims/Core/Actions.html +116 -0
- data/doc/Lims/Core/Actions/Action.html +216 -0
- data/doc/Lims/Core/Actions/Action/AfterEval.html +853 -0
- data/doc/Lims/Core/Actions/Action/InvalidParameters.html +268 -0
- data/doc/Lims/Core/Actions/ActionGroup.html +196 -0
- data/doc/Lims/Core/Actions/ActionGroup/AfterEval.html +315 -0
- data/doc/Lims/Core/Actions/BulkAction.html +224 -0
- data/doc/Lims/Core/Actions/BulkAction/AfterEval.html +253 -0
- data/doc/Lims/Core/Actions/TestActionGroup.html +101 -0
- data/doc/Lims/Core/Actions/TestActionGroup/Action.html +133 -0
- data/doc/Lims/Core/Actions/TestActionGroup/ActionGroup.html +127 -0
- data/doc/Lims/Core/Base.html +287 -0
- data/doc/Lims/Core/Base/AccessibleViaSuper.html +252 -0
- data/doc/Lims/Core/Base/ClassMethod.html +177 -0
- data/doc/Lims/Core/Base/HashString.html +177 -0
- data/doc/Lims/Core/Base/IsArrayOf.html +606 -0
- data/doc/Lims/Core/Base/State.html +130 -0
- data/doc/Lims/Core/Organization.html +113 -0
- data/doc/Lims/Core/Organization/Batch.html +106 -0
- data/doc/Lims/Core/Persistence.html +267 -0
- data/doc/Lims/Core/Persistence/ComparisonFilter.html +318 -0
- data/doc/Lims/Core/Persistence/Filter.html +252 -0
- data/doc/Lims/Core/Persistence/IdentityMap.html +409 -0
- data/doc/Lims/Core/Persistence/IdentityMap/Class.html +144 -0
- data/doc/Lims/Core/Persistence/IdentityMap/DuplicateError.html +126 -0
- data/doc/Lims/Core/Persistence/IdentityMap/DuplicateIdError.html +136 -0
- data/doc/Lims/Core/Persistence/IdentityMap/DuplicateObjectError.html +136 -0
- data/doc/Lims/Core/Persistence/IdentityMapClass.html +133 -0
- data/doc/Lims/Core/Persistence/Logger.html +105 -0
- data/doc/Lims/Core/Persistence/Logger/Persistor.html +334 -0
- data/doc/Lims/Core/Persistence/Logger/Session.html +452 -0
- data/doc/Lims/Core/Persistence/Logger/Store.html +470 -0
- data/doc/Lims/Core/Persistence/MessageBus.html +871 -0
- data/doc/Lims/Core/Persistence/MessageBus/ConnectionError.html +123 -0
- data/doc/Lims/Core/Persistence/MessageBus/InvalidSettingsError.html +122 -0
- data/doc/Lims/Core/Persistence/MultiCriteriaFilter.html +293 -0
- data/doc/Lims/Core/Persistence/PersistAssociationTrait.html +91 -0
- data/doc/Lims/Core/Persistence/PersistableTrait.html +91 -0
- data/doc/Lims/Core/Persistence/Persistor.html +3072 -0
- data/doc/Lims/Core/Persistence/Persistor/DuplicateError.html +205 -0
- data/doc/Lims/Core/Persistence/Persistor/DuplicateIdError.html +147 -0
- data/doc/Lims/Core/Persistence/Persistor/DuplicateObjectError.html +147 -0
- data/doc/Lims/Core/Persistence/PersistorTrait.html +91 -0
- data/doc/Lims/Core/Persistence/ResourceState.html +1738 -0
- data/doc/Lims/Core/Persistence/Search.html +269 -0
- data/doc/Lims/Core/Persistence/Search/CreateSearch.html +251 -0
- data/doc/Lims/Core/Persistence/Search/SearchPersistor.html +240 -0
- data/doc/Lims/Core/Persistence/Search/SearchSequelPersistor.html +396 -0
- data/doc/Lims/Core/Persistence/Sequel.html +117 -0
- data/doc/Lims/Core/Persistence/Sequel/Filters.html +462 -0
- data/doc/Lims/Core/Persistence/Sequel/ForTest.html +101 -0
- data/doc/Lims/Core/Persistence/Sequel/ForTest/Name.html +137 -0
- data/doc/Lims/Core/Persistence/Sequel/ForTest/Name/NamePersitor.html +143 -0
- data/doc/Lims/Core/Persistence/Sequel/Migrations.html +266 -0
- data/doc/Lims/Core/Persistence/Sequel/Persistor.html +665 -0
- data/doc/Lims/Core/Persistence/Sequel/Session.html +501 -0
- data/doc/Lims/Core/Persistence/Sequel/Store.html +417 -0
- data/doc/Lims/Core/Persistence/Session.html +2751 -0
- data/doc/Lims/Core/Persistence/Session/UnmanagedObjectError.html +111 -0
- data/doc/Lims/Core/Persistence/StateGroup.html +696 -0
- data/doc/Lims/Core/Persistence/StateList.html +498 -0
- data/doc/Lims/Core/Persistence/Store.html +695 -0
- data/doc/Lims/Core/Persistence/UuidResource.html +1044 -0
- data/doc/Lims/Core/Persistence/UuidResource/InvalidUuidError.html +111 -0
- data/doc/Lims/Core/Persistence/UuidResource/UuidResourcePersistor.html +337 -0
- data/doc/Lims/Core/Persistence/Uuidable.html +799 -0
- data/doc/Lims/Core/Persistor.html +320 -0
- data/doc/Lims/Core/Resource.html +165 -0
- data/doc/Object.html +228 -0
- data/doc/SessionSpec.html +101 -0
- data/doc/SessionSpec/Model.html +279 -0
- data/doc/SessionSpec/Model/ModelPersistor.html +327 -0
- data/doc/_index.html +732 -0
- data/doc/class_list.html +47 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +55 -0
- data/doc/css/style.css +322 -0
- data/doc/file.README.html +127 -0
- data/doc/file_list.html +49 -0
- data/doc/frames.html +13 -0
- data/doc/index.html +127 -0
- data/doc/js/app.js +205 -0
- data/doc/js/full_list.js +167 -0
- data/doc/js/jquery.js +16 -0
- data/doc/method_list.html +1894 -0
- data/doc/top-level-namespace.html +100 -0
- data/lib/common.rb +18 -0
- data/lib/lims-core.rb +29 -0
- data/lib/lims-core/actions.rb +10 -0
- data/lib/lims-core/actions/action.rb +185 -0
- data/lib/lims-core/actions/action_group.rb +54 -0
- data/lib/lims-core/actions/bulk_action.rb +65 -0
- data/lib/lims-core/base.rb +132 -0
- data/lib/lims-core/helpers.rb +41 -0
- data/lib/lims-core/persistence.rb +15 -0
- data/lib/lims-core/persistence/comparison_filter.rb +54 -0
- data/lib/lims-core/persistence/filter.rb +23 -0
- data/lib/lims-core/persistence/identity_map.rb +55 -0
- data/lib/lims-core/persistence/logger/all.rb +5 -0
- data/lib/lims-core/persistence/logger/persistor.rb +35 -0
- data/lib/lims-core/persistence/logger/session.rb +30 -0
- data/lib/lims-core/persistence/logger/store.rb +37 -0
- data/lib/lims-core/persistence/message_bus.rb +131 -0
- data/lib/lims-core/persistence/multi_criteria_filter.rb +50 -0
- data/lib/lims-core/persistence/persist_association_trait.rb +96 -0
- data/lib/lims-core/persistence/persistable_trait.rb +150 -0
- data/lib/lims-core/persistence/persistor.rb +495 -0
- data/lib/lims-core/persistence/resource_state.rb +157 -0
- data/lib/lims-core/persistence/search.rb +3 -0
- data/lib/lims-core/persistence/search/all.rb +3 -0
- data/lib/lims-core/persistence/search/create_search.rb +55 -0
- data/lib/lims-core/persistence/search/search_persistor.rb +45 -0
- data/lib/lims-core/persistence/search/search_sequel_persistor.rb +40 -0
- data/lib/lims-core/persistence/sequel.rb +14 -0
- data/lib/lims-core/persistence/sequel/filters.rb +106 -0
- data/lib/lims-core/persistence/sequel/migrations.rb +14 -0
- data/lib/lims-core/persistence/sequel/migrations/add_audit_tables.rb +147 -0
- data/lib/lims-core/persistence/sequel/migrations/initial.rb +156 -0
- data/lib/lims-core/persistence/sequel/persistor.rb +200 -0
- data/lib/lims-core/persistence/sequel/session.rb +136 -0
- data/lib/lims-core/persistence/sequel/store.rb +37 -0
- data/lib/lims-core/persistence/session.rb +409 -0
- data/lib/lims-core/persistence/state_group.rb +97 -0
- data/lib/lims-core/persistence/state_list.rb +56 -0
- data/lib/lims-core/persistence/store.rb +73 -0
- data/lib/lims-core/persistence/uuid_resource.rb +115 -0
- data/lib/lims-core/persistence/uuid_resource_persistor.rb +43 -0
- data/lib/lims-core/persistence/uuidable.rb +107 -0
- data/lib/lims-core/resource.rb +21 -0
- data/lib/lims-core/subclass_tracker.rb +30 -0
- data/lib/lims-core/version.rb +5 -0
- data/lims-core.gemspec +40 -0
- data/makefile +52 -0
- data/showoff/core-2012-06-11/core/01_slide.md +237 -0
- data/showoff/core-2012-06-11/core/02_slide.md +110 -0
- data/showoff/core-2012-06-11/custom.css +44 -0
- data/showoff/core-2012-06-11/main/01_slide.md +53 -0
- data/showoff/core-2012-06-11/showoff.json +10 -0
- data/showoff/core-2012-06-11/tp1.tpl +1 -0
- data/spec/actions/action_group_spec.rb +39 -0
- data/spec/actions/spec_helper.rb +1 -0
- data/spec/persistence/identity_map_spec.rb +55 -0
- data/spec/persistence/logger/spec_helper.rb +7 -0
- data/spec/persistence/logger/store_spec.rb +48 -0
- data/spec/persistence/message_bus_spec.rb +76 -0
- data/spec/persistence/sequel/session_spec.rb +125 -0
- data/spec/persistence/sequel/spec_helper.rb +39 -0
- data/spec/persistence/sequel/store_shared.rb +25 -0
- data/spec/persistence/sequel/store_spec.rb +22 -0
- data/spec/persistence/session_spec.rb +199 -0
- data/spec/persistence/spec_helper.rb +2 -0
- data/spec/persistence/uuid_resource_spec.rb +80 -0
- data/spec/spec_helper.rb +10 -0
- data/spec/subclass_tracker_sperc.rb +62 -0
- data/utils/constant_tree.rb +29 -0
- data/utils/stack.rb +48 -0
- metadata +402 -0
|
@@ -0,0 +1,417 @@
|
|
|
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::Sequel::Store
|
|
8
|
+
|
|
9
|
+
— 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 (S)</a> »
|
|
37
|
+
<span class='title'><span class='object_link'><a href="../../../../Lims.html" title="Lims (module)">Lims</a></span></span> » <span class='title'><span class='object_link'><a href="../../../Core.html" title="Lims::Core (module)">Core</a></span></span> » <span class='title'><span class='object_link'><a href="../../Persistence.html" title="Lims::Core::Persistence (module)">Persistence</a></span></span> » <span class='title'><span class='object_link'><a href="../Sequel.html" title="Lims::Core::Persistence::Sequel (module)">Sequel</a></span></span>
|
|
38
|
+
»
|
|
39
|
+
<span class="title">Store</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::Sequel::Store
|
|
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="../Store.html" title="Lims::Core::Persistence::Store (class)">Lims::Core::Persistence::Store</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"><span class='object_link'><a href="../Store.html" title="Lims::Core::Persistence::Store (class)">Lims::Core::Persistence::Store</a></span></li>
|
|
75
|
+
|
|
76
|
+
<li class="next">Lims::Core::Persistence::Sequel::Store</li>
|
|
77
|
+
|
|
78
|
+
</ul>
|
|
79
|
+
<a href="#" class="inheritanceTree">show all</a>
|
|
80
|
+
|
|
81
|
+
</dd>
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
<dt class="r2 last">Defined in:</dt>
|
|
92
|
+
<dd class="r2 last">lib/lims-core/persistence/sequel/store.rb</dd>
|
|
93
|
+
|
|
94
|
+
</dl>
|
|
95
|
+
<div class="clear"></div>
|
|
96
|
+
|
|
97
|
+
<h2>Overview</h2><div class="docstring">
|
|
98
|
+
<div class="discussion">
|
|
99
|
+
|
|
100
|
+
<p>An Sequel::Store, ie an wrapper around a database using the sequel gem</p>
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
</div>
|
|
104
|
+
</div>
|
|
105
|
+
<div class="tags">
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
</div>
|
|
109
|
+
<h2>Constant Summary</h2>
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
<h3 class="inherited">Constants inherited from <span class='object_link'><a href="../Store.html" title="Lims::Core::Persistence::Store (class)">Lims::Core::Persistence::Store</a></span></h3>
|
|
118
|
+
<p class="inherited"><span class='object_link'><a href="../Store.html#DIRTY_ATTRIBUTE_STRATEGY_DEEP_COPY-constant" title="Lims::Core::Persistence::Store::DIRTY_ATTRIBUTE_STRATEGY_DEEP_COPY (constant)">DIRTY_ATTRIBUTE_STRATEGY_DEEP_COPY</a></span>, <span class='object_link'><a href="../Store.html#DIRTY_ATTRIBUTE_STRATEGY_MD5-constant" title="Lims::Core::Persistence::Store::DIRTY_ATTRIBUTE_STRATEGY_MD5 (constant)">DIRTY_ATTRIBUTE_STRATEGY_MD5</a></span>, <span class='object_link'><a href="../Store.html#DIRTY_ATTRIBUTE_STRATEGY_QUICK_HASH-constant" title="Lims::Core::Persistence::Store::DIRTY_ATTRIBUTE_STRATEGY_QUICK_HASH (constant)">DIRTY_ATTRIBUTE_STRATEGY_QUICK_HASH</a></span>, <span class='object_link'><a href="../Store.html#DIRTY_ATTRIBUTE_STRATEGY_SHA1-constant" title="Lims::Core::Persistence::Store::DIRTY_ATTRIBUTE_STRATEGY_SHA1 (constant)">DIRTY_ATTRIBUTE_STRATEGY_SHA1</a></span></p>
|
|
119
|
+
|
|
120
|
+
<h2>Instance Attribute Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small></h2>
|
|
121
|
+
<ul class="summary">
|
|
122
|
+
|
|
123
|
+
<li class="public ">
|
|
124
|
+
<span class="summary_signature">
|
|
125
|
+
|
|
126
|
+
<a href="#database-instance_method" title="#database (instance method)">- (Object) <strong>database</strong> </a>
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
</span>
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
<span class="note title readonly">readonly</span>
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
<span class="summary_desc"><div class='inline'>
|
|
143
|
+
<p>Returns the value of attribute database.</p>
|
|
144
|
+
</div></span>
|
|
145
|
+
|
|
146
|
+
</li>
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
</ul>
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
<h3 class="inherited">Attributes inherited from <span class='object_link'><a href="../Store.html" title="Lims::Core::Persistence::Store (class)">Lims::Core::Persistence::Store</a></span></h3>
|
|
159
|
+
<p class="inherited"><span class='object_link'><a href="../Store.html#dirty_attribute_strategy-instance_method" title="Lims::Core::Persistence::Store#dirty_attribute_strategy (method)">dirty_attribute_strategy</a></span></p>
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
<h2>
|
|
164
|
+
Instance Method Summary
|
|
165
|
+
<small>(<a href="#" class="summary_toggle">collapse</a>)</small>
|
|
166
|
+
</h2>
|
|
167
|
+
|
|
168
|
+
<ul class="summary">
|
|
169
|
+
|
|
170
|
+
<li class="public ">
|
|
171
|
+
<span class="summary_signature">
|
|
172
|
+
|
|
173
|
+
<a href="#initialize-instance_method" title="#initialize (instance method)">- (Store) <strong>initialize</strong>(database, *args) </a>
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
</span>
|
|
178
|
+
|
|
179
|
+
<span class="note title constructor">constructor</span>
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
<span class="summary_desc"><div class='inline'>
|
|
189
|
+
<p>Create a store with a Sequel::Database We don't wrap for now the creation
|
|
190
|
+
of the database.</p>
|
|
191
|
+
</div></span>
|
|
192
|
+
|
|
193
|
+
</li>
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
<li class="public ">
|
|
197
|
+
<span class="summary_signature">
|
|
198
|
+
|
|
199
|
+
<a href="#transaction-instance_method" title="#transaction (instance method)">- (Object) <strong>transaction</strong> </a>
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
</span>
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
<span class="summary_desc"><div class='inline'>
|
|
213
|
+
<p>Execute given block within a transaction.</p>
|
|
214
|
+
</div></span>
|
|
215
|
+
|
|
216
|
+
</li>
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
</ul>
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
<h3 class="inherited">Methods inherited from <span class='object_link'><a href="../Store.html" title="Lims::Core::Persistence::Store (class)">Lims::Core::Persistence::Store</a></span></h3>
|
|
231
|
+
<p class="inherited"><span class='object_link'><a href="../Store.html#base_module-instance_method" title="Lims::Core::Persistence::Store#base_module (method)">#base_module</a></span>, <span class='object_link'><a href="../Store.html#base_module-class_method" title="Lims::Core::Persistence::Store.base_module (method)">base_module</a></span>, <span class='object_link'><a href="../Store.html#const_missing-class_method" title="Lims::Core::Persistence::Store.const_missing (method)">const_missing</a></span>, <span class='object_link'><a href="../Store.html#create_session-instance_method" title="Lims::Core::Persistence::Store#create_session (method)">#create_session</a></span>, <span class='object_link'><a href="../Store.html#with_session-instance_method" title="Lims::Core::Persistence::Store#with_session (method)">#with_session</a></span></p>
|
|
232
|
+
<div id="constructor_details" class="method_details_list">
|
|
233
|
+
<h2>Constructor Details</h2>
|
|
234
|
+
|
|
235
|
+
<div class="method_details first">
|
|
236
|
+
<p class="signature first" id="initialize-instance_method">
|
|
237
|
+
|
|
238
|
+
- (<tt><span class='object_link'><a href="" title="Lims::Core::Persistence::Sequel::Store (class)">Store</a></span></tt>) <strong>initialize</strong>(database, *args)
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
</p><div class="docstring">
|
|
243
|
+
<div class="discussion">
|
|
244
|
+
|
|
245
|
+
<p>Create a store with a Sequel::Database We don't wrap for now the creation
|
|
246
|
+
of the database</p>
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
</div>
|
|
250
|
+
</div>
|
|
251
|
+
<div class="tags">
|
|
252
|
+
<h3>Parameters:</h3>
|
|
253
|
+
<ul class="param">
|
|
254
|
+
|
|
255
|
+
<li>
|
|
256
|
+
|
|
257
|
+
<span class='name'>type</span>
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
<span class='type'>(<tt>Sequel::Database</tt>)</span>
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
—
|
|
265
|
+
<div class='inline'>
|
|
266
|
+
<p>underlying database</p>
|
|
267
|
+
</div>
|
|
268
|
+
|
|
269
|
+
</li>
|
|
270
|
+
|
|
271
|
+
</ul>
|
|
272
|
+
|
|
273
|
+
<h3>Raises:</h3>
|
|
274
|
+
<ul class="raise">
|
|
275
|
+
|
|
276
|
+
<li>
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
<span class='type'>(<tt>RuntimeError</tt>)</span>
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
</li>
|
|
284
|
+
|
|
285
|
+
</ul>
|
|
286
|
+
|
|
287
|
+
</div><table class="source_code">
|
|
288
|
+
<tr>
|
|
289
|
+
<td>
|
|
290
|
+
<pre class="lines">
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
19
|
|
294
|
+
20
|
|
295
|
+
21
|
|
296
|
+
22
|
|
297
|
+
23
|
|
298
|
+
24</pre>
|
|
299
|
+
</td>
|
|
300
|
+
<td>
|
|
301
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/sequel/store.rb', line 19</span>
|
|
302
|
+
|
|
303
|
+
<span class='kw'>def</span> <span class='id initialize'>initialize</span><span class='lparen'>(</span><span class='id database'>database</span><span class='comma'>,</span> <span class='op'>*</span><span class='id args'>args</span><span class='rparen'>)</span>
|
|
304
|
+
<span class='id raise'>raise</span> <span class='const'>RuntimeError</span> <span class='kw'>unless</span> <span class='id database'>database</span><span class='period'>.</span><span class='id is_a?'>is_a?</span><span class='lparen'>(</span><span class='op'>::</span><span class='const'>Sequel</span><span class='op'>::</span><span class='const'>Database</span><span class='rparen'>)</span>
|
|
305
|
+
<span class='ivar'>@database</span> <span class='op'>=</span> <span class='id database'>database</span>
|
|
306
|
+
<span class='kw'>super</span><span class='lparen'>(</span><span class='op'>*</span><span class='id args'>args</span><span class='rparen'>)</span>
|
|
307
|
+
<span class='ivar'>@dirty_attribute_strategy</span> <span class='op'>=</span> <span class='const'>DIRTY_ATTRIBUTE_STRATEGY_SHA1</span>
|
|
308
|
+
<span class='kw'>end</span></pre>
|
|
309
|
+
</td>
|
|
310
|
+
</tr>
|
|
311
|
+
</table>
|
|
312
|
+
</div>
|
|
313
|
+
|
|
314
|
+
</div>
|
|
315
|
+
|
|
316
|
+
<div id="instance_attr_details" class="attr_details">
|
|
317
|
+
<h2>Instance Attribute Details</h2>
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
<span id=""></span>
|
|
321
|
+
<span id="database-instance_method"></span>
|
|
322
|
+
<div class="method_details first">
|
|
323
|
+
<p class="signature first" id="database-instance_method">
|
|
324
|
+
|
|
325
|
+
- (<tt><span class='object_link'><a href="../../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>database</strong> <span class="extras">(readonly)</span>
|
|
326
|
+
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
</p><div class="docstring">
|
|
330
|
+
<div class="discussion">
|
|
331
|
+
|
|
332
|
+
<p>Returns the value of attribute database</p>
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
</div>
|
|
336
|
+
</div>
|
|
337
|
+
<div class="tags">
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
</div><table class="source_code">
|
|
341
|
+
<tr>
|
|
342
|
+
<td>
|
|
343
|
+
<pre class="lines">
|
|
344
|
+
|
|
345
|
+
|
|
346
|
+
13
|
|
347
|
+
14
|
|
348
|
+
15</pre>
|
|
349
|
+
</td>
|
|
350
|
+
<td>
|
|
351
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/sequel/store.rb', line 13</span>
|
|
352
|
+
|
|
353
|
+
<span class='kw'>def</span> <span class='id database'>database</span>
|
|
354
|
+
<span class='ivar'>@database</span>
|
|
355
|
+
<span class='kw'>end</span></pre>
|
|
356
|
+
</td>
|
|
357
|
+
</tr>
|
|
358
|
+
</table>
|
|
359
|
+
</div>
|
|
360
|
+
|
|
361
|
+
</div>
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
<div id="instance_method_details" class="method_details_list">
|
|
365
|
+
<h2>Instance Method Details</h2>
|
|
366
|
+
|
|
367
|
+
|
|
368
|
+
<div class="method_details first">
|
|
369
|
+
<p class="signature first" id="transaction-instance_method">
|
|
370
|
+
|
|
371
|
+
- (<tt><span class='object_link'><a href="../../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>transaction</strong>
|
|
372
|
+
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
</p><div class="docstring">
|
|
376
|
+
<div class="discussion">
|
|
377
|
+
|
|
378
|
+
<p>Execute given block within a transaction</p>
|
|
379
|
+
|
|
380
|
+
|
|
381
|
+
</div>
|
|
382
|
+
</div>
|
|
383
|
+
<div class="tags">
|
|
384
|
+
|
|
385
|
+
|
|
386
|
+
</div><table class="source_code">
|
|
387
|
+
<tr>
|
|
388
|
+
<td>
|
|
389
|
+
<pre class="lines">
|
|
390
|
+
|
|
391
|
+
|
|
392
|
+
27
|
|
393
|
+
28
|
|
394
|
+
29
|
|
395
|
+
30
|
|
396
|
+
31</pre>
|
|
397
|
+
</td>
|
|
398
|
+
<td>
|
|
399
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/sequel/store.rb', line 27</span>
|
|
400
|
+
|
|
401
|
+
<span class='kw'>def</span> <span class='id transaction'>transaction</span>
|
|
402
|
+
<span class='id database'>database</span><span class='period'>.</span><span class='id transaction'>transaction</span> <span class='kw'>do</span>
|
|
403
|
+
<span class='kw'>super</span>
|
|
404
|
+
<span class='kw'>end</span>
|
|
405
|
+
<span class='kw'>end</span></pre>
|
|
406
|
+
</td>
|
|
407
|
+
</tr>
|
|
408
|
+
</table>
|
|
409
|
+
</div>
|
|
410
|
+
|
|
411
|
+
</div>
|
|
412
|
+
|
|
413
|
+
</div>
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
</body>
|
|
417
|
+
</html>
|
|
@@ -0,0 +1,2751 @@
|
|
|
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::Session
|
|
8
|
+
|
|
9
|
+
— 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 (S)</a> »
|
|
37
|
+
<span class='title'><span class='object_link'><a href="../../../Lims.html" title="Lims (module)">Lims</a></span></span> » <span class='title'><span class='object_link'><a href="../../Core.html" title="Lims::Core (module)">Core</a></span></span> » <span class='title'><span class='object_link'><a href="../Persistence.html" title="Lims::Core::Persistence (module)">Persistence</a></span></span>
|
|
38
|
+
»
|
|
39
|
+
<span class="title">Session</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::Session
|
|
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::Session</li>
|
|
75
|
+
|
|
76
|
+
</ul>
|
|
77
|
+
<a href="#" class="inheritanceTree">show all</a>
|
|
78
|
+
|
|
79
|
+
</dd>
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
<dt class="r2">Extended by:</dt>
|
|
85
|
+
<dd class="r2">Forwardable</dd>
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
<dt class="r1 last">Defined in:</dt>
|
|
94
|
+
<dd class="r1 last">lib/lims-core/persistence/session.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>A session is in charge of restoring and saving object throug the
|
|
103
|
+
persistence layer. A Session can not normally be created by the end user.
|
|
104
|
+
It has to be in a Store::with_session block, which acts has a transaction
|
|
105
|
+
and save/update everything at the end of it. It should also provides an
|
|
106
|
+
identity map. Session information (user, time) are also associated to the
|
|
107
|
+
modifications of those objects.</p>
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
</div>
|
|
111
|
+
</div>
|
|
112
|
+
<div class="tags">
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
</div><div id="subclasses">
|
|
116
|
+
<h2>Direct Known Subclasses</h2>
|
|
117
|
+
<p class="children"><span class='object_link'><a href="Logger/Session.html" title="Lims::Core::Persistence::Logger::Session (class)">Logger::Session</a></span>, <span class='object_link'><a href="Sequel/Session.html" title="Lims::Core::Persistence::Sequel::Session (class)">Lims::Core::Persistence::Sequel::Session</a></span></p>
|
|
118
|
+
</div>
|
|
119
|
+
<h2>Defined Under Namespace</h2>
|
|
120
|
+
<p class="children">
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
<strong class="classes">Classes:</strong> <span class='object_link'><a href="Session/UnmanagedObjectError.html" title="Lims::Core::Persistence::Session::UnmanagedObjectError (class)">UnmanagedObjectError</a></span>
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
</p>
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
<h2>Instance Attribute Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small></h2>
|
|
133
|
+
<ul class="summary">
|
|
134
|
+
|
|
135
|
+
<li class="public ">
|
|
136
|
+
<span class="summary_signature">
|
|
137
|
+
|
|
138
|
+
<a href="#dirty_attribute_strategy-instance_method" title="#dirty_attribute_strategy (instance method)">- (Object) <strong>dirty_attribute_strategy</strong> </a>
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
</span>
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
<span class="summary_desc"><div class='inline'>
|
|
155
|
+
<p>The dirty-attribute strategy decides how object modification is detected to
|
|
156
|
+
avoid saved unmodified object.</p>
|
|
157
|
+
</div></span>
|
|
158
|
+
|
|
159
|
+
</li>
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
</ul>
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
<h2>
|
|
170
|
+
Class Method Summary
|
|
171
|
+
<small>(<a href="#" class="summary_toggle">collapse</a>)</small>
|
|
172
|
+
</h2>
|
|
173
|
+
|
|
174
|
+
<ul class="summary">
|
|
175
|
+
|
|
176
|
+
<li class="private ">
|
|
177
|
+
<span class="summary_signature">
|
|
178
|
+
|
|
179
|
+
<a href="#find_or_create_persistor_for-class_method" title="find_or_create_persistor_for (class method)">+ (Object) <strong>find_or_create_persistor_for</strong>(model) </a>
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
</span>
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
<span class="note title private">private</span>
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
|
193
|
+
|
|
194
|
+
</li>
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
<li class="private ">
|
|
198
|
+
<span class="summary_signature">
|
|
199
|
+
|
|
200
|
+
<a href="#model_for-class_method" title="model_for (class method)">+ (Symbol) <strong>model_for</strong>(object) </a>
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
</span>
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
<span class="note title private">private</span>
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
<span class="summary_desc"><div class='inline'>
|
|
214
|
+
<p>Find the model corresponding to an object Takes many type of input.</p>
|
|
215
|
+
</div></span>
|
|
216
|
+
|
|
217
|
+
</li>
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
<li class="public ">
|
|
221
|
+
<span class="summary_signature">
|
|
222
|
+
|
|
223
|
+
<a href="#model_map-class_method" title="model_map (class method)">+ (Object) <strong>model_map</strong> </a>
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
</span>
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
<span class="summary_desc"><div class='inline'>
|
|
237
|
+
<p>The map name <=> model class is shared between all type of session.</p>
|
|
238
|
+
</div></span>
|
|
239
|
+
|
|
240
|
+
</li>
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
<li class="private ">
|
|
244
|
+
<span class="summary_signature">
|
|
245
|
+
|
|
246
|
+
<a href="#model_to_name-class_method" title="model_to_name (class method)">+ (Symbol) <strong>model_to_name</strong>(model) </a>
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
</span>
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
<span class="note title private">private</span>
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
<span class="summary_desc"><div class='inline'>
|
|
260
|
+
<p>Find the registered name of a given class @<a href="http://Class">param</a>
|
|
261
|
+
model.</p>
|
|
262
|
+
</div></span>
|
|
263
|
+
|
|
264
|
+
</li>
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
<li class="private ">
|
|
268
|
+
<span class="summary_signature">
|
|
269
|
+
|
|
270
|
+
<a href="#name_to_model-class_method" title="name_to_model (class method)">+ (Class) <strong>name_to_model</strong>(name) </a>
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
</span>
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
<span class="note title private">private</span>
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
<span class="summary_desc"><div class='inline'>
|
|
284
|
+
<p>Find the model class for a registered name registered name are used when
|
|
285
|
+
doing session.model.</p>
|
|
286
|
+
</div></span>
|
|
287
|
+
|
|
288
|
+
</li>
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
<li class="public ">
|
|
292
|
+
<span class="summary_signature">
|
|
293
|
+
|
|
294
|
+
<a href="#pack_uuid-class_method" title="pack_uuid (class method)">+ (Object) <strong>pack_uuid</strong>(uuid) </a>
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
</span>
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
|
|
307
|
+
<span class="summary_desc"><div class='inline'>
|
|
308
|
+
<p>Pack if needed an uuid to its store representation This method is need to
|
|
309
|
+
lookup an uuid by name.</p>
|
|
310
|
+
</div></span>
|
|
311
|
+
|
|
312
|
+
</li>
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
<li class="private ">
|
|
316
|
+
<span class="summary_signature">
|
|
317
|
+
|
|
318
|
+
<a href="#persistor_class_for-class_method" title="persistor_class_for (class method)">+ (Class) <strong>persistor_class_for</strong>(object) </a>
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
</span>
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
<span class="note title private">private</span>
|
|
326
|
+
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
|
|
331
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
|
332
|
+
|
|
333
|
+
</li>
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
<li class="private ">
|
|
337
|
+
<span class="summary_signature">
|
|
338
|
+
|
|
339
|
+
<a href="#persistor_class_map-class_method" title="persistor_class_map (class method)">+ (Object) <strong>persistor_class_map</strong> </a>
|
|
340
|
+
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
</span>
|
|
344
|
+
|
|
345
|
+
|
|
346
|
+
<span class="note title private">private</span>
|
|
347
|
+
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
|
|
351
|
+
|
|
352
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
|
353
|
+
|
|
354
|
+
</li>
|
|
355
|
+
|
|
356
|
+
|
|
357
|
+
<li class="private ">
|
|
358
|
+
<span class="summary_signature">
|
|
359
|
+
|
|
360
|
+
<a href="#persistor_name_for-class_method" title="persistor_name_for (class method)">+ (Object) <strong>persistor_name_for</strong>(object) </a>
|
|
361
|
+
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
</span>
|
|
365
|
+
|
|
366
|
+
|
|
367
|
+
<span class="note title private">private</span>
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
|
|
372
|
+
|
|
373
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
|
374
|
+
|
|
375
|
+
</li>
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
<li class="private ">
|
|
379
|
+
<span class="summary_signature">
|
|
380
|
+
|
|
381
|
+
<a href="#register_model-class_method" title="register_model (class method)">+ (Object) <strong>register_model</strong>(name, model) </a>
|
|
382
|
+
|
|
383
|
+
|
|
384
|
+
|
|
385
|
+
</span>
|
|
386
|
+
|
|
387
|
+
|
|
388
|
+
<span class="note title private">private</span>
|
|
389
|
+
|
|
390
|
+
|
|
391
|
+
|
|
392
|
+
|
|
393
|
+
|
|
394
|
+
<span class="summary_desc"><div class='inline'>
|
|
395
|
+
<p>Register a model for a given name.</p>
|
|
396
|
+
</div></span>
|
|
397
|
+
|
|
398
|
+
</li>
|
|
399
|
+
|
|
400
|
+
|
|
401
|
+
<li class="public ">
|
|
402
|
+
<span class="summary_signature">
|
|
403
|
+
|
|
404
|
+
<a href="#unpack_uuid-class_method" title="unpack_uuid (class method)">+ (String) <strong>unpack_uuid</strong>(puuid) </a>
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
</span>
|
|
409
|
+
|
|
410
|
+
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
|
|
417
|
+
<span class="summary_desc"><div class='inline'>
|
|
418
|
+
<p>Unpac if needed an uuid from its store representation.</p>
|
|
419
|
+
</div></span>
|
|
420
|
+
|
|
421
|
+
</li>
|
|
422
|
+
|
|
423
|
+
|
|
424
|
+
</ul>
|
|
425
|
+
|
|
426
|
+
<h2>
|
|
427
|
+
Instance Method Summary
|
|
428
|
+
<small>(<a href="#" class="summary_toggle">collapse</a>)</small>
|
|
429
|
+
</h2>
|
|
430
|
+
|
|
431
|
+
<ul class="summary">
|
|
432
|
+
|
|
433
|
+
<li class="public ">
|
|
434
|
+
<span class="summary_signature">
|
|
435
|
+
|
|
436
|
+
<a href="#%3C%3C-instance_method" title="#<< (instance method)">- (Object) <strong><<</strong>(object) </a>
|
|
437
|
+
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
</span>
|
|
441
|
+
|
|
442
|
+
|
|
443
|
+
|
|
444
|
+
|
|
445
|
+
|
|
446
|
+
|
|
447
|
+
|
|
448
|
+
|
|
449
|
+
<span class="summary_desc"><div class='inline'>
|
|
450
|
+
<p>Tell the session to be responsible of an object.</p>
|
|
451
|
+
</div></span>
|
|
452
|
+
|
|
453
|
+
</li>
|
|
454
|
+
|
|
455
|
+
|
|
456
|
+
<li class="public ">
|
|
457
|
+
<span class="summary_signature">
|
|
458
|
+
|
|
459
|
+
<a href="#delete-instance_method" title="#delete (instance method)">- (Object) <strong>delete</strong>(object) </a>
|
|
460
|
+
|
|
461
|
+
|
|
462
|
+
|
|
463
|
+
</span>
|
|
464
|
+
|
|
465
|
+
|
|
466
|
+
|
|
467
|
+
|
|
468
|
+
|
|
469
|
+
|
|
470
|
+
|
|
471
|
+
|
|
472
|
+
<span class="summary_desc"><div class='inline'>
|
|
473
|
+
<p>Mark an object as to be deleted.</p>
|
|
474
|
+
</div></span>
|
|
475
|
+
|
|
476
|
+
</li>
|
|
477
|
+
|
|
478
|
+
|
|
479
|
+
<li class="public ">
|
|
480
|
+
<span class="summary_signature">
|
|
481
|
+
|
|
482
|
+
<a href="#dirty_key_for-instance_method" title="#dirty_key_for (instance method)">- (Object) <strong>dirty_key_for</strong>(object) </a>
|
|
483
|
+
|
|
484
|
+
|
|
485
|
+
|
|
486
|
+
</span>
|
|
487
|
+
|
|
488
|
+
|
|
489
|
+
|
|
490
|
+
|
|
491
|
+
|
|
492
|
+
|
|
493
|
+
|
|
494
|
+
|
|
495
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
|
496
|
+
|
|
497
|
+
</li>
|
|
498
|
+
|
|
499
|
+
|
|
500
|
+
<li class="private ">
|
|
501
|
+
<span class="summary_signature">
|
|
502
|
+
|
|
503
|
+
<a href="#filter-instance_method" title="#filter (instance method)">- (Persistor) <strong>filter</strong>(persistor) </a>
|
|
504
|
+
|
|
505
|
+
|
|
506
|
+
|
|
507
|
+
</span>
|
|
508
|
+
|
|
509
|
+
|
|
510
|
+
<span class="note title private">private</span>
|
|
511
|
+
|
|
512
|
+
|
|
513
|
+
|
|
514
|
+
|
|
515
|
+
|
|
516
|
+
<span class="summary_desc"><div class='inline'>
|
|
517
|
+
<p>Create a new persistor sharing the same internal parameters but with the
|
|
518
|
+
"context" (datasest) of the new one.</p>
|
|
519
|
+
</div></span>
|
|
520
|
+
|
|
521
|
+
</li>
|
|
522
|
+
|
|
523
|
+
|
|
524
|
+
<li class="public ">
|
|
525
|
+
<span class="summary_signature">
|
|
526
|
+
|
|
527
|
+
<a href="#id_for-instance_method" title="#id_for (instance method)">- (Id<sup>?</sup>) <strong>id_for</strong>(object) </a>
|
|
528
|
+
|
|
529
|
+
|
|
530
|
+
|
|
531
|
+
</span>
|
|
532
|
+
|
|
533
|
+
|
|
534
|
+
|
|
535
|
+
|
|
536
|
+
|
|
537
|
+
|
|
538
|
+
|
|
539
|
+
|
|
540
|
+
<span class="summary_desc"><div class='inline'>
|
|
541
|
+
<p>Returns the id of an object if exists.</p>
|
|
542
|
+
</div></span>
|
|
543
|
+
|
|
544
|
+
</li>
|
|
545
|
+
|
|
546
|
+
|
|
547
|
+
<li class="public ">
|
|
548
|
+
<span class="summary_signature">
|
|
549
|
+
|
|
550
|
+
<a href="#id_for%21-instance_method" title="#id_for! (instance method)">- (Id) <strong>id_for!</strong>(object) </a>
|
|
551
|
+
|
|
552
|
+
|
|
553
|
+
|
|
554
|
+
</span>
|
|
555
|
+
|
|
556
|
+
|
|
557
|
+
|
|
558
|
+
|
|
559
|
+
|
|
560
|
+
|
|
561
|
+
|
|
562
|
+
|
|
563
|
+
<span class="summary_desc"><div class='inline'>
|
|
564
|
+
<p>Returns the id of an object and save it if necessary.</p>
|
|
565
|
+
</div></span>
|
|
566
|
+
|
|
567
|
+
</li>
|
|
568
|
+
|
|
569
|
+
|
|
570
|
+
<li class="public ">
|
|
571
|
+
<span class="summary_signature">
|
|
572
|
+
|
|
573
|
+
<a href="#initialize-instance_method" title="#initialize (instance method)">- (Session) <strong>initialize</strong>(store, *params) </a>
|
|
574
|
+
|
|
575
|
+
|
|
576
|
+
|
|
577
|
+
</span>
|
|
578
|
+
|
|
579
|
+
<span class="note title constructor">constructor</span>
|
|
580
|
+
|
|
581
|
+
|
|
582
|
+
|
|
583
|
+
|
|
584
|
+
|
|
585
|
+
|
|
586
|
+
|
|
587
|
+
|
|
588
|
+
<span class="summary_desc"><div class='inline'>
|
|
589
|
+
<p>param [Store] store the underlying store.</p>
|
|
590
|
+
</div></span>
|
|
591
|
+
|
|
592
|
+
</li>
|
|
593
|
+
|
|
594
|
+
|
|
595
|
+
<li class="public ">
|
|
596
|
+
<span class="summary_signature">
|
|
597
|
+
|
|
598
|
+
<a href="#manage_state-instance_method" title="#manage_state (instance method)">- (Object) <strong>manage_state</strong>(state) </a>
|
|
599
|
+
|
|
600
|
+
|
|
601
|
+
|
|
602
|
+
</span>
|
|
603
|
+
|
|
604
|
+
|
|
605
|
+
|
|
606
|
+
|
|
607
|
+
|
|
608
|
+
|
|
609
|
+
|
|
610
|
+
|
|
611
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
|
612
|
+
|
|
613
|
+
</li>
|
|
614
|
+
|
|
615
|
+
|
|
616
|
+
<li class="public ">
|
|
617
|
+
<span class="summary_signature">
|
|
618
|
+
|
|
619
|
+
<a href="#managed%3F-instance_method" title="#managed? (instance method)">- (Boolean) <strong>managed?</strong>(object) </a>
|
|
620
|
+
|
|
621
|
+
|
|
622
|
+
|
|
623
|
+
</span>
|
|
624
|
+
|
|
625
|
+
|
|
626
|
+
|
|
627
|
+
|
|
628
|
+
|
|
629
|
+
|
|
630
|
+
|
|
631
|
+
|
|
632
|
+
<span class="summary_desc"><div class='inline'>
|
|
633
|
+
<p>Check if the session 'mananage' already this object.</p>
|
|
634
|
+
</div></span>
|
|
635
|
+
|
|
636
|
+
</li>
|
|
637
|
+
|
|
638
|
+
|
|
639
|
+
<li class="public ">
|
|
640
|
+
<span class="summary_signature">
|
|
641
|
+
|
|
642
|
+
<a href="#method_missing-instance_method" title="#method_missing (instance method)">- (Object) <strong>method_missing</strong>(name, *args, &block) </a>
|
|
643
|
+
|
|
644
|
+
|
|
645
|
+
|
|
646
|
+
</span>
|
|
647
|
+
|
|
648
|
+
|
|
649
|
+
|
|
650
|
+
|
|
651
|
+
|
|
652
|
+
|
|
653
|
+
|
|
654
|
+
|
|
655
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
|
656
|
+
|
|
657
|
+
</li>
|
|
658
|
+
|
|
659
|
+
|
|
660
|
+
<li class="public ">
|
|
661
|
+
<span class="summary_signature">
|
|
662
|
+
|
|
663
|
+
<a href="#pack_uuid-instance_method" title="#pack_uuid (instance method)">- (Object) <strong>pack_uuid</strong>(uuid) </a>
|
|
664
|
+
|
|
665
|
+
|
|
666
|
+
|
|
667
|
+
</span>
|
|
668
|
+
|
|
669
|
+
|
|
670
|
+
|
|
671
|
+
|
|
672
|
+
|
|
673
|
+
|
|
674
|
+
|
|
675
|
+
|
|
676
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
|
677
|
+
|
|
678
|
+
</li>
|
|
679
|
+
|
|
680
|
+
|
|
681
|
+
<li class="public ">
|
|
682
|
+
<span class="summary_signature">
|
|
683
|
+
|
|
684
|
+
<a href="#persistor_for-instance_method" title="#persistor_for (instance method)">- (Persistor<sup>?</sup>) <strong>persistor_for</strong>(object) </a>
|
|
685
|
+
|
|
686
|
+
|
|
687
|
+
|
|
688
|
+
</span>
|
|
689
|
+
|
|
690
|
+
|
|
691
|
+
|
|
692
|
+
|
|
693
|
+
|
|
694
|
+
|
|
695
|
+
|
|
696
|
+
|
|
697
|
+
<span class="summary_desc"><div class='inline'>
|
|
698
|
+
<p>Get the persistor corresponding to the object class.</p>
|
|
699
|
+
</div></span>
|
|
700
|
+
|
|
701
|
+
</li>
|
|
702
|
+
|
|
703
|
+
|
|
704
|
+
<li class="private ">
|
|
705
|
+
<span class="summary_signature">
|
|
706
|
+
|
|
707
|
+
<a href="#persistor_name_for-instance_method" title="#persistor_name_for (instance method)">- (Object) <strong>persistor_name_for</strong>(object) </a>
|
|
708
|
+
|
|
709
|
+
|
|
710
|
+
|
|
711
|
+
</span>
|
|
712
|
+
|
|
713
|
+
|
|
714
|
+
<span class="note title private">private</span>
|
|
715
|
+
|
|
716
|
+
|
|
717
|
+
|
|
718
|
+
|
|
719
|
+
|
|
720
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
|
721
|
+
|
|
722
|
+
</li>
|
|
723
|
+
|
|
724
|
+
|
|
725
|
+
<li class="private ">
|
|
726
|
+
<span class="summary_signature">
|
|
727
|
+
|
|
728
|
+
<a href="#save_all-instance_method" title="#save_all (instance method)">- (Object) <strong>save_all</strong> </a>
|
|
729
|
+
|
|
730
|
+
|
|
731
|
+
|
|
732
|
+
</span>
|
|
733
|
+
|
|
734
|
+
|
|
735
|
+
<span class="note title private">private</span>
|
|
736
|
+
|
|
737
|
+
|
|
738
|
+
|
|
739
|
+
|
|
740
|
+
|
|
741
|
+
<span class="summary_desc"><div class='inline'>
|
|
742
|
+
<p>save all objects which needs to be.</p>
|
|
743
|
+
</div></span>
|
|
744
|
+
|
|
745
|
+
</li>
|
|
746
|
+
|
|
747
|
+
|
|
748
|
+
<li class="public ">
|
|
749
|
+
<span class="summary_signature">
|
|
750
|
+
|
|
751
|
+
<a href="#serialize-instance_method" title="#serialize (instance method)">- (Object) <strong>serialize</strong>(object) </a>
|
|
752
|
+
|
|
753
|
+
|
|
754
|
+
|
|
755
|
+
</span>
|
|
756
|
+
|
|
757
|
+
|
|
758
|
+
|
|
759
|
+
|
|
760
|
+
|
|
761
|
+
|
|
762
|
+
|
|
763
|
+
|
|
764
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
|
765
|
+
|
|
766
|
+
</li>
|
|
767
|
+
|
|
768
|
+
|
|
769
|
+
<li class="public ">
|
|
770
|
+
<span class="summary_signature">
|
|
771
|
+
|
|
772
|
+
<a href="#state_for-instance_method" title="#state_for (instance method)">- (Object) <strong>state_for</strong>(object) </a>
|
|
773
|
+
|
|
774
|
+
|
|
775
|
+
|
|
776
|
+
</span>
|
|
777
|
+
|
|
778
|
+
|
|
779
|
+
|
|
780
|
+
|
|
781
|
+
|
|
782
|
+
|
|
783
|
+
|
|
784
|
+
|
|
785
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
|
786
|
+
|
|
787
|
+
</li>
|
|
788
|
+
|
|
789
|
+
|
|
790
|
+
<li class="public ">
|
|
791
|
+
<span class="summary_signature">
|
|
792
|
+
|
|
793
|
+
<a href="#states_for-instance_method" title="#states_for (instance method)">- (Object) <strong>states_for</strong>(objects) </a>
|
|
794
|
+
|
|
795
|
+
|
|
796
|
+
|
|
797
|
+
</span>
|
|
798
|
+
|
|
799
|
+
|
|
800
|
+
|
|
801
|
+
|
|
802
|
+
|
|
803
|
+
|
|
804
|
+
|
|
805
|
+
|
|
806
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
|
807
|
+
|
|
808
|
+
</li>
|
|
809
|
+
|
|
810
|
+
|
|
811
|
+
<li class="public ">
|
|
812
|
+
<span class="summary_signature">
|
|
813
|
+
|
|
814
|
+
<a href="#unpack_uuid-instance_method" title="#unpack_uuid (instance method)">- (Object) <strong>unpack_uuid</strong>(uuid) </a>
|
|
815
|
+
|
|
816
|
+
|
|
817
|
+
|
|
818
|
+
</span>
|
|
819
|
+
|
|
820
|
+
|
|
821
|
+
|
|
822
|
+
|
|
823
|
+
|
|
824
|
+
|
|
825
|
+
|
|
826
|
+
|
|
827
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
|
828
|
+
|
|
829
|
+
</li>
|
|
830
|
+
|
|
831
|
+
|
|
832
|
+
<li class="public ">
|
|
833
|
+
<span class="summary_signature">
|
|
834
|
+
|
|
835
|
+
<a href="#unserialize-instance_method" title="#unserialize (instance method)">- (Object) <strong>unserialize</strong>(object) </a>
|
|
836
|
+
|
|
837
|
+
|
|
838
|
+
|
|
839
|
+
</span>
|
|
840
|
+
|
|
841
|
+
|
|
842
|
+
|
|
843
|
+
|
|
844
|
+
|
|
845
|
+
|
|
846
|
+
|
|
847
|
+
|
|
848
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
|
849
|
+
|
|
850
|
+
</li>
|
|
851
|
+
|
|
852
|
+
|
|
853
|
+
<li class="public ">
|
|
854
|
+
<span class="summary_signature">
|
|
855
|
+
|
|
856
|
+
<a href="#with_session-instance_method" title="#with_session (instance method)">- (Object) <strong>with_session</strong>(*params) {|session| ... }</a>
|
|
857
|
+
|
|
858
|
+
|
|
859
|
+
|
|
860
|
+
</span>
|
|
861
|
+
|
|
862
|
+
|
|
863
|
+
|
|
864
|
+
|
|
865
|
+
|
|
866
|
+
|
|
867
|
+
|
|
868
|
+
|
|
869
|
+
<span class="summary_desc"><div class='inline'>
|
|
870
|
+
<p>Execute a block and save every 'marked' object in a transaction at the End.</p>
|
|
871
|
+
</div></span>
|
|
872
|
+
|
|
873
|
+
</li>
|
|
874
|
+
|
|
875
|
+
|
|
876
|
+
</ul>
|
|
877
|
+
|
|
878
|
+
|
|
879
|
+
|
|
880
|
+
<div id="constructor_details" class="method_details_list">
|
|
881
|
+
<h2>Constructor Details</h2>
|
|
882
|
+
|
|
883
|
+
<div class="method_details first">
|
|
884
|
+
<p class="signature first" id="initialize-instance_method">
|
|
885
|
+
|
|
886
|
+
- (<tt><span class='object_link'><a href="" title="Lims::Core::Persistence::Session (class)">Session</a></span></tt>) <strong>initialize</strong>(store, *params)
|
|
887
|
+
|
|
888
|
+
|
|
889
|
+
|
|
890
|
+
</p><div class="docstring">
|
|
891
|
+
<div class="discussion">
|
|
892
|
+
|
|
893
|
+
<p>param [Store] store the underlying store.</p>
|
|
894
|
+
|
|
895
|
+
|
|
896
|
+
</div>
|
|
897
|
+
</div>
|
|
898
|
+
<div class="tags">
|
|
899
|
+
|
|
900
|
+
|
|
901
|
+
</div><table class="source_code">
|
|
902
|
+
<tr>
|
|
903
|
+
<td>
|
|
904
|
+
<pre class="lines">
|
|
905
|
+
|
|
906
|
+
|
|
907
|
+
42
|
|
908
|
+
43
|
|
909
|
+
44
|
|
910
|
+
45
|
|
911
|
+
46
|
|
912
|
+
47
|
|
913
|
+
48
|
|
914
|
+
49</pre>
|
|
915
|
+
</td>
|
|
916
|
+
<td>
|
|
917
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 42</span>
|
|
918
|
+
|
|
919
|
+
<span class='kw'>def</span> <span class='id initialize'>initialize</span><span class='lparen'>(</span><span class='id store'>store</span><span class='comma'>,</span> <span class='op'>*</span><span class='id params'>params</span><span class='rparen'>)</span>
|
|
920
|
+
<span class='ivar'>@store</span> <span class='op'>=</span> <span class='id store'>store</span>
|
|
921
|
+
<span class='ivar'>@object_states</span> <span class='op'>=</span> <span class='const'>StateList</span><span class='period'>.</span><span class='id new'>new</span>
|
|
922
|
+
<span class='ivar'>@in_session</span> <span class='op'>=</span> <span class='kw'>false</span>
|
|
923
|
+
<span class='ivar'>@saved</span> <span class='op'>=</span> <span class='const'>Set</span><span class='period'>.</span><span class='id new'>new</span>
|
|
924
|
+
<span class='ivar'>@persistor_map</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
|
|
925
|
+
<span class='ivar'>@dirty_attribute_strategy</span> <span class='op'>=</span> <span class='ivar'>@store</span><span class='period'>.</span><span class='id dirty_attribute_strategy'>dirty_attribute_strategy</span>
|
|
926
|
+
<span class='kw'>end</span></pre>
|
|
927
|
+
</td>
|
|
928
|
+
</tr>
|
|
929
|
+
</table>
|
|
930
|
+
</div>
|
|
931
|
+
|
|
932
|
+
</div>
|
|
933
|
+
<div id="method_missing_details" class="method_details_list">
|
|
934
|
+
<h2>Dynamic Method Handling</h2>
|
|
935
|
+
<p class="notice this">
|
|
936
|
+
This class handles dynamic methods through the <tt>method_missing</tt> method
|
|
937
|
+
|
|
938
|
+
</p>
|
|
939
|
+
|
|
940
|
+
<div class="method_details first">
|
|
941
|
+
<p class="signature first" id="method_missing-instance_method">
|
|
942
|
+
|
|
943
|
+
- (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>method_missing</strong>(name, *args, &block)
|
|
944
|
+
|
|
945
|
+
|
|
946
|
+
|
|
947
|
+
</p><table class="source_code">
|
|
948
|
+
<tr>
|
|
949
|
+
<td>
|
|
950
|
+
<pre class="lines">
|
|
951
|
+
|
|
952
|
+
|
|
953
|
+
89
|
|
954
|
+
90
|
|
955
|
+
91
|
|
956
|
+
92
|
|
957
|
+
93
|
|
958
|
+
94
|
|
959
|
+
95
|
|
960
|
+
96
|
|
961
|
+
97</pre>
|
|
962
|
+
</td>
|
|
963
|
+
<td>
|
|
964
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 89</span>
|
|
965
|
+
|
|
966
|
+
<span class='kw'>def</span> <span class='id method_missing'>method_missing</span><span class='lparen'>(</span><span class='id name'>name</span><span class='comma'>,</span> <span class='op'>*</span><span class='id args'>args</span><span class='comma'>,</span> <span class='op'>&</span><span class='id block'>block</span><span class='rparen'>)</span>
|
|
967
|
+
<span class='kw'>begin</span>
|
|
968
|
+
<span class='id persistor_for'>persistor_for</span><span class='lparen'>(</span><span class='id name'>name</span><span class='rparen'>)</span>
|
|
969
|
+
<span class='kw'>rescue</span> <span class='const'>NameError</span>
|
|
970
|
+
<span class='comment'># No persistor found for the given name
|
|
971
|
+
</span> <span class='comment'># Call the normal method_missing
|
|
972
|
+
</span> <span class='kw'>super</span><span class='lparen'>(</span><span class='id name'>name</span><span class='comma'>,</span> <span class='op'>*</span><span class='id args'>args</span><span class='comma'>,</span> <span class='op'>&</span><span class='id block'>block</span><span class='rparen'>)</span>
|
|
973
|
+
<span class='kw'>end</span>
|
|
974
|
+
<span class='kw'>end</span></pre>
|
|
975
|
+
</td>
|
|
976
|
+
</tr>
|
|
977
|
+
</table>
|
|
978
|
+
</div>
|
|
979
|
+
|
|
980
|
+
</div>
|
|
981
|
+
|
|
982
|
+
<div id="instance_attr_details" class="attr_details">
|
|
983
|
+
<h2>Instance Attribute Details</h2>
|
|
984
|
+
|
|
985
|
+
|
|
986
|
+
<span id="dirty_attribute_strategy=-instance_method"></span>
|
|
987
|
+
<span id="dirty_attribute_strategy-instance_method"></span>
|
|
988
|
+
<div class="method_details first">
|
|
989
|
+
<p class="signature first" id="dirty_attribute_strategy-instance_method">
|
|
990
|
+
|
|
991
|
+
- (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>dirty_attribute_strategy</strong>
|
|
992
|
+
|
|
993
|
+
|
|
994
|
+
|
|
995
|
+
</p><div class="docstring">
|
|
996
|
+
<div class="discussion">
|
|
997
|
+
|
|
998
|
+
<p>The dirty-attribute strategy decides how object modification is detected to
|
|
999
|
+
avoid saved unmodified object. The default value comes from the session.</p>
|
|
1000
|
+
|
|
1001
|
+
|
|
1002
|
+
</div>
|
|
1003
|
+
</div>
|
|
1004
|
+
<div class="tags">
|
|
1005
|
+
|
|
1006
|
+
|
|
1007
|
+
</div><table class="source_code">
|
|
1008
|
+
<tr>
|
|
1009
|
+
<td>
|
|
1010
|
+
<pre class="lines">
|
|
1011
|
+
|
|
1012
|
+
|
|
1013
|
+
27
|
|
1014
|
+
28
|
|
1015
|
+
29</pre>
|
|
1016
|
+
</td>
|
|
1017
|
+
<td>
|
|
1018
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 27</span>
|
|
1019
|
+
|
|
1020
|
+
<span class='kw'>def</span> <span class='id dirty_attribute_strategy'>dirty_attribute_strategy</span>
|
|
1021
|
+
<span class='ivar'>@dirty_attribute_strategy</span>
|
|
1022
|
+
<span class='kw'>end</span></pre>
|
|
1023
|
+
</td>
|
|
1024
|
+
</tr>
|
|
1025
|
+
</table>
|
|
1026
|
+
</div>
|
|
1027
|
+
|
|
1028
|
+
</div>
|
|
1029
|
+
|
|
1030
|
+
|
|
1031
|
+
<div id="class_method_details" class="method_details_list">
|
|
1032
|
+
<h2>Class Method Details</h2>
|
|
1033
|
+
|
|
1034
|
+
|
|
1035
|
+
<div class="method_details first">
|
|
1036
|
+
<p class="signature first" id="find_or_create_persistor_for-class_method">
|
|
1037
|
+
|
|
1038
|
+
+ (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>find_or_create_persistor_for</strong>(model) <span class="extras">(private)</span>
|
|
1039
|
+
|
|
1040
|
+
|
|
1041
|
+
|
|
1042
|
+
</p><table class="source_code">
|
|
1043
|
+
<tr>
|
|
1044
|
+
<td>
|
|
1045
|
+
<pre class="lines">
|
|
1046
|
+
|
|
1047
|
+
|
|
1048
|
+
309
|
|
1049
|
+
310
|
|
1050
|
+
311
|
|
1051
|
+
312
|
|
1052
|
+
313
|
|
1053
|
+
314
|
|
1054
|
+
315
|
|
1055
|
+
316
|
|
1056
|
+
317
|
|
1057
|
+
318
|
|
1058
|
+
319
|
|
1059
|
+
320
|
|
1060
|
+
321
|
|
1061
|
+
322
|
|
1062
|
+
323
|
|
1063
|
+
324
|
|
1064
|
+
325
|
|
1065
|
+
326
|
|
1066
|
+
327
|
|
1067
|
+
328
|
|
1068
|
+
329
|
|
1069
|
+
330
|
|
1070
|
+
331
|
|
1071
|
+
332
|
|
1072
|
+
333
|
|
1073
|
+
334
|
|
1074
|
+
335
|
|
1075
|
+
336
|
|
1076
|
+
337
|
|
1077
|
+
338
|
|
1078
|
+
339
|
|
1079
|
+
340
|
|
1080
|
+
341
|
|
1081
|
+
342
|
|
1082
|
+
343
|
|
1083
|
+
344
|
|
1084
|
+
345</pre>
|
|
1085
|
+
</td>
|
|
1086
|
+
<td>
|
|
1087
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 309</span>
|
|
1088
|
+
|
|
1089
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id find_or_create_persistor_for'>find_or_create_persistor_for</span><span class='lparen'>(</span><span class='id model'>model</span><span class='rparen'>)</span>
|
|
1090
|
+
<span class='comment'># find the persistor within the class
|
|
1091
|
+
</span> <span class='comment'># other corresponding to the current session type
|
|
1092
|
+
</span> <span class='kw'>return</span> <span class='kw'>nil</span> <span class='kw'>unless</span> <span class='id model'>model</span>
|
|
1093
|
+
<span class='id session_persistor_class'>session_persistor_class</span> <span class='op'>=</span> <span class='id parent_scope'>parent_scope</span><span class='period'>.</span><span class='id const_get'>const_get</span><span class='lparen'>(</span><span class='symbol'>:Persistor</span><span class='rparen'>)</span>
|
|
1094
|
+
<span class='id model'>model</span><span class='period'>.</span><span class='id constants'>constants</span><span class='lparen'>(</span><span class='kw'>false</span><span class='rparen'>)</span><span class='period'>.</span><span class='id each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id name'>name</span><span class='op'>|</span>
|
|
1095
|
+
<span class='id klass'>klass</span> <span class='op'>=</span> <span class='id model'>model</span><span class='period'>.</span><span class='id const_get'>const_get</span><span class='lparen'>(</span><span class='id name'>name</span><span class='rparen'>)</span>
|
|
1096
|
+
<span class='kw'>next</span> <span class='kw'>unless</span> <span class='id klass'>klass</span><span class='period'>.</span><span class='id is_a?'>is_a?</span> <span class='const'>Module</span>
|
|
1097
|
+
<span class='kw'>if</span> <span class='id klass'>klass</span><span class='period'>.</span><span class='id ancestors'>ancestors</span><span class='period'>.</span><span class='id include?'>include?</span><span class='lparen'>(</span><span class='id session_persistor_class'>session_persistor_class</span><span class='rparen'>)</span>
|
|
1098
|
+
<span class='comment'># found
|
|
1099
|
+
</span> <span class='kw'>return</span> <span class='id klass'>klass</span>
|
|
1100
|
+
<span class='kw'>end</span>
|
|
1101
|
+
<span class='kw'>end</span>
|
|
1102
|
+
<span class='comment'># not found, we need to create it
|
|
1103
|
+
</span> <span class='comment'># First we look for the base persistor to inherit from
|
|
1104
|
+
</span> <span class='id debugger'>debugger</span> <span class='kw'>unless</span> <span class='id superclass'>superclass</span><span class='period'>.</span><span class='id respond_to?'>respond_to?</span> <span class='symbol'>:persistor_class_for</span>
|
|
1105
|
+
<span class='id raise'>raise</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Can't find base persistor for </span><span class='embexpr_beg'>#{</span><span class='id model'>model</span><span class='period'>.</span><span class='id inspect'>inspect</span><span class='rbrace'>}</span><span class='tstring_end'>"</span></span> <span class='kw'>unless</span> <span class='id superclass'>superclass</span><span class='period'>.</span><span class='id respond_to?'>respond_to?</span> <span class='symbol'>:persistor_class_for</span>
|
|
1106
|
+
|
|
1107
|
+
<span class='id parent_persistor_class'>parent_persistor_class</span> <span class='op'>=</span> <span class='id superclass'>superclass</span><span class='period'>.</span><span class='id persistor_class_for'>persistor_class_for</span><span class='lparen'>(</span><span class='id model'>model</span><span class='rparen'>)</span>
|
|
1108
|
+
|
|
1109
|
+
<span class='comment'># if the current persistor (ex Sequel::Persistor) is the same as the base one
|
|
1110
|
+
</span> <span class='comment'># there is nothing else to do
|
|
1111
|
+
</span> <span class='kw'>return</span> <span class='id parent_persistor_class'>parent_persistor_class</span> <span class='kw'>unless</span> <span class='id parent_scope'>parent_scope</span><span class='op'>::</span><span class='id const_defined?'>const_defined?</span><span class='lparen'>(</span><span class='symbol'>:Persistor</span><span class='comma'>,</span> <span class='kw'>false</span><span class='rparen'>)</span>
|
|
1112
|
+
|
|
1113
|
+
<span class='id raise'>raise</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>no Persistor defined for </span><span class='embexpr_beg'>#{</span><span class='id model'>model</span><span class='period'>.</span><span class='id name'>name</span><span class='rbrace'>}</span><span class='tstring_end'>"</span></span> <span class='kw'>unless</span> <span class='id parent_persistor_class'>parent_persistor_class</span>
|
|
1114
|
+
<span class='id module_name'>module_name</span> <span class='op'>=</span> <span class='id parent_scope'>parent_scope</span><span class='period'>.</span><span class='id name'>name</span><span class='period'>.</span><span class='id sub'>sub</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>.*Persistence::</span><span class='regexp_end'>/</span></span><span class='comma'>,</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
|
1115
|
+
<span class='id model_name'>model_name</span> <span class='op'>=</span> <span class='id model'>model</span><span class='period'>.</span><span class='id name'>name</span><span class='period'>.</span><span class='id split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>::</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id pop'>pop</span>
|
|
1116
|
+
<span class='comment'># the we create a new Persistor class including the Persistor mixin
|
|
1117
|
+
</span> <span class='comment'># corresponding to the session
|
|
1118
|
+
</span> <span class='id class_declaration'>class_declaration</span> <span class='op'>=</span> <span class='heredoc_beg'><<-EOV</span>
|
|
1119
|
+
<span class='tstring_content'> class </span><span class='embexpr_beg'>#{</span><span class='id model_name'>model_name</span><span class='rbrace'>}</span><span class='embexpr_beg'>#{</span><span class='id module_name'>module_name</span><span class='rbrace'>}</span><span class='tstring_content'>Persistor < </span><span class='embexpr_beg'>#{</span><span class='id parent_persistor_class'>parent_persistor_class</span><span class='period'>.</span><span class='id name'>name</span><span class='rbrace'>}</span><span class='tstring_content'>
|
|
1120
|
+
</span><span class='embexpr_beg'> include #{</span><span class='id parent_scope'>parent_scope</span><span class='op'>::</span><span class='const'>Persistor</span><span class='rbrace'>}</span><span class='tstring_content'>
|
|
1121
|
+
end
|
|
1122
|
+
</span><span class='heredoc_end'> EOV
|
|
1123
|
+
</span> <span class='id model'>model</span><span class='period'>.</span><span class='id class_eval'>class_eval</span> <span class='id class_declaration'>class_declaration</span>
|
|
1124
|
+
|
|
1125
|
+
<span class='kw'>end</span></pre>
|
|
1126
|
+
</td>
|
|
1127
|
+
</tr>
|
|
1128
|
+
</table>
|
|
1129
|
+
</div>
|
|
1130
|
+
|
|
1131
|
+
<div class="method_details ">
|
|
1132
|
+
<p class="signature " id="model_for-class_method">
|
|
1133
|
+
|
|
1134
|
+
+ (<tt>Symbol</tt>) <strong>model_for</strong>(object) <span class="extras">(private)</span>
|
|
1135
|
+
|
|
1136
|
+
|
|
1137
|
+
|
|
1138
|
+
</p><div class="docstring">
|
|
1139
|
+
<div class="discussion">
|
|
1140
|
+
|
|
1141
|
+
<p>Find the model corresponding to an object Takes many type of input</p>
|
|
1142
|
+
|
|
1143
|
+
|
|
1144
|
+
</div>
|
|
1145
|
+
</div>
|
|
1146
|
+
<div class="tags">
|
|
1147
|
+
<h3>Parameters:</h3>
|
|
1148
|
+
<ul class="param">
|
|
1149
|
+
|
|
1150
|
+
<li>
|
|
1151
|
+
|
|
1152
|
+
<span class='name'>object</span>
|
|
1153
|
+
|
|
1154
|
+
|
|
1155
|
+
<span class='type'>(<tt>String</tt>, <tt>Symbol</tt>, <tt><span class='object_link'><a href="../Resource.html" title="Lims::Core::Resource (module)">Resource</a></span></tt>, <tt><span class='object_link'><a href="Persistor.html" title="Lims::Core::Persistence::Persistor (class)">Persistor</a></span></tt>)</span>
|
|
1156
|
+
|
|
1157
|
+
|
|
1158
|
+
|
|
1159
|
+
</li>
|
|
1160
|
+
|
|
1161
|
+
</ul>
|
|
1162
|
+
|
|
1163
|
+
<h3>Returns:</h3>
|
|
1164
|
+
<ul class="return">
|
|
1165
|
+
|
|
1166
|
+
<li>
|
|
1167
|
+
|
|
1168
|
+
|
|
1169
|
+
<span class='type'>(<tt>Symbol</tt>)</span>
|
|
1170
|
+
|
|
1171
|
+
|
|
1172
|
+
|
|
1173
|
+
</li>
|
|
1174
|
+
|
|
1175
|
+
</ul>
|
|
1176
|
+
|
|
1177
|
+
</div><table class="source_code">
|
|
1178
|
+
<tr>
|
|
1179
|
+
<td>
|
|
1180
|
+
<pre class="lines">
|
|
1181
|
+
|
|
1182
|
+
|
|
1183
|
+
249
|
|
1184
|
+
250
|
|
1185
|
+
251
|
|
1186
|
+
252
|
|
1187
|
+
253
|
|
1188
|
+
254
|
|
1189
|
+
255
|
|
1190
|
+
256
|
|
1191
|
+
257
|
|
1192
|
+
258
|
|
1193
|
+
259
|
|
1194
|
+
260
|
|
1195
|
+
261
|
|
1196
|
+
262
|
|
1197
|
+
263
|
|
1198
|
+
264
|
|
1199
|
+
265
|
|
1200
|
+
266
|
|
1201
|
+
267
|
|
1202
|
+
268
|
|
1203
|
+
269
|
|
1204
|
+
270
|
|
1205
|
+
271
|
|
1206
|
+
272
|
|
1207
|
+
273
|
|
1208
|
+
274
|
|
1209
|
+
275
|
|
1210
|
+
276
|
|
1211
|
+
277
|
|
1212
|
+
278
|
|
1213
|
+
279
|
|
1214
|
+
280
|
|
1215
|
+
281</pre>
|
|
1216
|
+
</td>
|
|
1217
|
+
<td>
|
|
1218
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 249</span>
|
|
1219
|
+
|
|
1220
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id model_for'>model_for</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
1221
|
+
<span class='kw'>case</span> <span class='id object'>object</span>
|
|
1222
|
+
<span class='kw'>when</span> <span class='kw'>nil</span> <span class='kw'>then</span> <span class='kw'>nil</span>
|
|
1223
|
+
<span class='kw'>when</span> <span class='const'>String</span> <span class='kw'>then</span> <span class='id name_to_model'>name_to_model</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
1224
|
+
<span class='kw'>when</span> <span class='const'>Symbol</span> <span class='kw'>then</span> <span class='id name_to_model'>name_to_model</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
1225
|
+
<span class='kw'>when</span> <span class='const'>Class</span> <span class='kw'>then</span>
|
|
1226
|
+
<span class='comment'># check if the class has been registered
|
|
1227
|
+
</span> <span class='comment'># IMPORTANT needs to be done before 'when module'
|
|
1228
|
+
</span> <span class='comment'># because object can class and module at the same time.
|
|
1229
|
+
</span> <span class='kw'>return</span> <span class='id object'>object</span> <span class='kw'>if</span> <span class='id model_to_name'>model_to_name</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
1230
|
+
|
|
1231
|
+
<span class='comment'># if it's already persistor find the associate model
|
|
1232
|
+
</span> <span class='id persistor_class_map'>persistor_class_map</span><span class='period'>.</span><span class='id id_for'>id_for</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id model'>model</span><span class='op'>|</span>
|
|
1233
|
+
<span class='kw'>return</span> <span class='id model'>model</span>
|
|
1234
|
+
<span class='kw'>end</span>
|
|
1235
|
+
|
|
1236
|
+
|
|
1237
|
+
|
|
1238
|
+
<span class='comment'># check the super class
|
|
1239
|
+
</span> <span class='id model_for'>model_for</span><span class='lparen'>(</span><span class='id object'>object</span><span class='period'>.</span><span class='id superclass'>superclass</span><span class='rparen'>)</span><span class='period'>.</span><span class='id andtap'>andtap</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id model'>model</span><span class='op'>|</span>
|
|
1240
|
+
<span class='kw'>return</span> <span class='id model'>model</span>
|
|
1241
|
+
<span class='rbrace'>}</span>
|
|
1242
|
+
|
|
1243
|
+
<span class='comment'># Check the owner
|
|
1244
|
+
</span> <span class='kw'>return</span> <span class='kw'>nil</span> <span class='kw'>unless</span> <span class='id object'>object</span><span class='period'>.</span><span class='id respond_to?'>respond_to?</span> <span class='symbol'>:parent_scope</span>
|
|
1245
|
+
<span class='id model_for'>model_for</span><span class='lparen'>(</span><span class='id object'>object</span><span class='period'>.</span><span class='id parent_scope'>parent_scope</span><span class='rparen'>)</span><span class='period'>.</span><span class='id andtap'>andtap</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id model'>model</span><span class='op'>|</span>
|
|
1246
|
+
<span class='kw'>return</span> <span class='id model'>model</span>
|
|
1247
|
+
<span class='rbrace'>}</span>
|
|
1248
|
+
<span class='kw'>when</span> <span class='const'>Module</span> <span class='kw'>then</span> <span class='id object'>object</span>
|
|
1249
|
+
<span class='kw'>else</span>
|
|
1250
|
+
<span class='id model_for'>model_for</span><span class='lparen'>(</span><span class='id object'>object</span><span class='period'>.</span><span class='id class'>class</span><span class='rparen'>)</span>
|
|
1251
|
+
<span class='kw'>end</span>
|
|
1252
|
+
<span class='kw'>end</span></pre>
|
|
1253
|
+
</td>
|
|
1254
|
+
</tr>
|
|
1255
|
+
</table>
|
|
1256
|
+
</div>
|
|
1257
|
+
|
|
1258
|
+
<div class="method_details ">
|
|
1259
|
+
<p class="signature " id="model_map-class_method">
|
|
1260
|
+
|
|
1261
|
+
+ (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>model_map</strong>
|
|
1262
|
+
|
|
1263
|
+
|
|
1264
|
+
|
|
1265
|
+
</p><div class="docstring">
|
|
1266
|
+
<div class="discussion">
|
|
1267
|
+
|
|
1268
|
+
<p>The map name <=> model class is shared between all type of session</p>
|
|
1269
|
+
|
|
1270
|
+
|
|
1271
|
+
</div>
|
|
1272
|
+
</div>
|
|
1273
|
+
<div class="tags">
|
|
1274
|
+
|
|
1275
|
+
|
|
1276
|
+
</div><table class="source_code">
|
|
1277
|
+
<tr>
|
|
1278
|
+
<td>
|
|
1279
|
+
<pre class="lines">
|
|
1280
|
+
|
|
1281
|
+
|
|
1282
|
+
33
|
|
1283
|
+
34
|
|
1284
|
+
35</pre>
|
|
1285
|
+
</td>
|
|
1286
|
+
<td>
|
|
1287
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 33</span>
|
|
1288
|
+
|
|
1289
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id model_map'>model_map</span><span class='lparen'>(</span><span class='rparen'>)</span>
|
|
1290
|
+
<span class='cvar'>@@model_map</span> <span class='op'>||=</span> <span class='const'>IdentityMap</span><span class='op'>::</span><span class='const'>Class</span><span class='period'>.</span><span class='id new'>new</span>
|
|
1291
|
+
<span class='kw'>end</span></pre>
|
|
1292
|
+
</td>
|
|
1293
|
+
</tr>
|
|
1294
|
+
</table>
|
|
1295
|
+
</div>
|
|
1296
|
+
|
|
1297
|
+
<div class="method_details ">
|
|
1298
|
+
<p class="signature " id="model_to_name-class_method">
|
|
1299
|
+
|
|
1300
|
+
+ (<tt>Symbol</tt>) <strong>model_to_name</strong>(model) <span class="extras">(private)</span>
|
|
1301
|
+
|
|
1302
|
+
|
|
1303
|
+
|
|
1304
|
+
</p><div class="docstring">
|
|
1305
|
+
<div class="discussion">
|
|
1306
|
+
|
|
1307
|
+
<p>Find the registered name of a given class @<a href="http://Class">param</a>
|
|
1308
|
+
model</p>
|
|
1309
|
+
|
|
1310
|
+
|
|
1311
|
+
</div>
|
|
1312
|
+
</div>
|
|
1313
|
+
<div class="tags">
|
|
1314
|
+
|
|
1315
|
+
<h3>Returns:</h3>
|
|
1316
|
+
<ul class="return">
|
|
1317
|
+
|
|
1318
|
+
<li>
|
|
1319
|
+
|
|
1320
|
+
|
|
1321
|
+
<span class='type'>(<tt>Symbol</tt>)</span>
|
|
1322
|
+
|
|
1323
|
+
|
|
1324
|
+
|
|
1325
|
+
</li>
|
|
1326
|
+
|
|
1327
|
+
</ul>
|
|
1328
|
+
|
|
1329
|
+
</div><table class="source_code">
|
|
1330
|
+
<tr>
|
|
1331
|
+
<td>
|
|
1332
|
+
<pre class="lines">
|
|
1333
|
+
|
|
1334
|
+
|
|
1335
|
+
228
|
|
1336
|
+
229
|
|
1337
|
+
230</pre>
|
|
1338
|
+
</td>
|
|
1339
|
+
<td>
|
|
1340
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 228</span>
|
|
1341
|
+
|
|
1342
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id model_to_name'>model_to_name</span><span class='lparen'>(</span><span class='id model'>model</span><span class='rparen'>)</span>
|
|
1343
|
+
<span class='id model_map'>model_map</span><span class='period'>.</span><span class='id id_for'>id_for</span><span class='lparen'>(</span><span class='id model'>model</span><span class='rparen'>)</span>
|
|
1344
|
+
<span class='kw'>end</span></pre>
|
|
1345
|
+
</td>
|
|
1346
|
+
</tr>
|
|
1347
|
+
</table>
|
|
1348
|
+
</div>
|
|
1349
|
+
|
|
1350
|
+
<div class="method_details ">
|
|
1351
|
+
<p class="signature " id="name_to_model-class_method">
|
|
1352
|
+
|
|
1353
|
+
+ (<tt>Class</tt>) <strong>name_to_model</strong>(name) <span class="extras">(private)</span>
|
|
1354
|
+
|
|
1355
|
+
|
|
1356
|
+
|
|
1357
|
+
</p><div class="docstring">
|
|
1358
|
+
<div class="discussion">
|
|
1359
|
+
|
|
1360
|
+
<p>Find the model class for a registered name registered name are used when
|
|
1361
|
+
doing session.model</p>
|
|
1362
|
+
|
|
1363
|
+
|
|
1364
|
+
</div>
|
|
1365
|
+
</div>
|
|
1366
|
+
<div class="tags">
|
|
1367
|
+
<h3>Parameters:</h3>
|
|
1368
|
+
<ul class="param">
|
|
1369
|
+
|
|
1370
|
+
<li>
|
|
1371
|
+
|
|
1372
|
+
<span class='name'>name</span>
|
|
1373
|
+
|
|
1374
|
+
|
|
1375
|
+
<span class='type'>(<tt>String</tt>, <tt>Symbol</tt>)</span>
|
|
1376
|
+
|
|
1377
|
+
|
|
1378
|
+
|
|
1379
|
+
</li>
|
|
1380
|
+
|
|
1381
|
+
</ul>
|
|
1382
|
+
|
|
1383
|
+
<h3>Returns:</h3>
|
|
1384
|
+
<ul class="return">
|
|
1385
|
+
|
|
1386
|
+
<li>
|
|
1387
|
+
|
|
1388
|
+
|
|
1389
|
+
<span class='type'>(<tt>Class</tt>)</span>
|
|
1390
|
+
|
|
1391
|
+
|
|
1392
|
+
|
|
1393
|
+
</li>
|
|
1394
|
+
|
|
1395
|
+
</ul>
|
|
1396
|
+
|
|
1397
|
+
</div><table class="source_code">
|
|
1398
|
+
<tr>
|
|
1399
|
+
<td>
|
|
1400
|
+
<pre class="lines">
|
|
1401
|
+
|
|
1402
|
+
|
|
1403
|
+
221
|
|
1404
|
+
222
|
|
1405
|
+
223</pre>
|
|
1406
|
+
</td>
|
|
1407
|
+
<td>
|
|
1408
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 221</span>
|
|
1409
|
+
|
|
1410
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id name_to_model'>name_to_model</span><span class='lparen'>(</span><span class='id name'>name</span><span class='rparen'>)</span>
|
|
1411
|
+
<span class='id model_map'>model_map</span><span class='period'>.</span><span class='id object_for'>object_for</span><span class='lparen'>(</span><span class='id name'>name</span><span class='period'>.</span><span class='id to_s'>to_s</span><span class='rparen'>)</span>
|
|
1412
|
+
<span class='kw'>end</span></pre>
|
|
1413
|
+
</td>
|
|
1414
|
+
</tr>
|
|
1415
|
+
</table>
|
|
1416
|
+
</div>
|
|
1417
|
+
|
|
1418
|
+
<div class="method_details ">
|
|
1419
|
+
<p class="signature " id="pack_uuid-class_method">
|
|
1420
|
+
|
|
1421
|
+
+ (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>pack_uuid</strong>(uuid)
|
|
1422
|
+
|
|
1423
|
+
|
|
1424
|
+
|
|
1425
|
+
</p><div class="docstring">
|
|
1426
|
+
<div class="discussion">
|
|
1427
|
+
|
|
1428
|
+
<p>Pack if needed an uuid to its store representation This method is need to
|
|
1429
|
+
lookup an uuid by name</p>
|
|
1430
|
+
|
|
1431
|
+
|
|
1432
|
+
</div>
|
|
1433
|
+
</div>
|
|
1434
|
+
<div class="tags">
|
|
1435
|
+
<h3>Parameters:</h3>
|
|
1436
|
+
<ul class="param">
|
|
1437
|
+
|
|
1438
|
+
<li>
|
|
1439
|
+
|
|
1440
|
+
<span class='name'>uuid</span>
|
|
1441
|
+
|
|
1442
|
+
|
|
1443
|
+
<span class='type'>(<tt>String</tt>)</span>
|
|
1444
|
+
|
|
1445
|
+
|
|
1446
|
+
|
|
1447
|
+
</li>
|
|
1448
|
+
|
|
1449
|
+
</ul>
|
|
1450
|
+
|
|
1451
|
+
<h3>Returns:</h3>
|
|
1452
|
+
<ul class="return">
|
|
1453
|
+
|
|
1454
|
+
<li>
|
|
1455
|
+
|
|
1456
|
+
|
|
1457
|
+
<span class='type'>(<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>)</span>
|
|
1458
|
+
|
|
1459
|
+
|
|
1460
|
+
|
|
1461
|
+
</li>
|
|
1462
|
+
|
|
1463
|
+
</ul>
|
|
1464
|
+
|
|
1465
|
+
</div><table class="source_code">
|
|
1466
|
+
<tr>
|
|
1467
|
+
<td>
|
|
1468
|
+
<pre class="lines">
|
|
1469
|
+
|
|
1470
|
+
|
|
1471
|
+
153
|
|
1472
|
+
154
|
|
1473
|
+
155</pre>
|
|
1474
|
+
</td>
|
|
1475
|
+
<td>
|
|
1476
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 153</span>
|
|
1477
|
+
|
|
1478
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id pack_uuid'>pack_uuid</span><span class='lparen'>(</span><span class='id uuid'>uuid</span><span class='rparen'>)</span>
|
|
1479
|
+
<span class='id uuid'>uuid</span>
|
|
1480
|
+
<span class='kw'>end</span></pre>
|
|
1481
|
+
</td>
|
|
1482
|
+
</tr>
|
|
1483
|
+
</table>
|
|
1484
|
+
</div>
|
|
1485
|
+
|
|
1486
|
+
<div class="method_details ">
|
|
1487
|
+
<p class="signature " id="persistor_class_for-class_method">
|
|
1488
|
+
|
|
1489
|
+
+ (<tt>Class</tt>) <strong>persistor_class_for</strong>(object) <span class="extras">(private)</span>
|
|
1490
|
+
|
|
1491
|
+
|
|
1492
|
+
|
|
1493
|
+
</p><div class="docstring">
|
|
1494
|
+
<div class="discussion">
|
|
1495
|
+
|
|
1496
|
+
|
|
1497
|
+
</div>
|
|
1498
|
+
</div>
|
|
1499
|
+
<div class="tags">
|
|
1500
|
+
<h3>Parameters:</h3>
|
|
1501
|
+
<ul class="param">
|
|
1502
|
+
|
|
1503
|
+
<li>
|
|
1504
|
+
|
|
1505
|
+
<span class='name'>object</span>
|
|
1506
|
+
|
|
1507
|
+
|
|
1508
|
+
<span class='type'>(<tt>String</tt>, <tt>Symbol</tt>, <tt><span class='object_link'><a href="../Resource.html" title="Lims::Core::Resource (module)">Resource</a></span></tt>, <tt><span class='object_link'><a href="Persistor.html" title="Lims::Core::Persistence::Persistor (class)">Persistor</a></span></tt>)</span>
|
|
1509
|
+
|
|
1510
|
+
|
|
1511
|
+
|
|
1512
|
+
</li>
|
|
1513
|
+
|
|
1514
|
+
</ul>
|
|
1515
|
+
|
|
1516
|
+
<h3>Returns:</h3>
|
|
1517
|
+
<ul class="return">
|
|
1518
|
+
|
|
1519
|
+
<li>
|
|
1520
|
+
|
|
1521
|
+
|
|
1522
|
+
<span class='type'>(<tt>Class</tt>)</span>
|
|
1523
|
+
|
|
1524
|
+
|
|
1525
|
+
|
|
1526
|
+
</li>
|
|
1527
|
+
|
|
1528
|
+
</ul>
|
|
1529
|
+
|
|
1530
|
+
</div><table class="source_code">
|
|
1531
|
+
<tr>
|
|
1532
|
+
<td>
|
|
1533
|
+
<pre class="lines">
|
|
1534
|
+
|
|
1535
|
+
|
|
1536
|
+
294
|
|
1537
|
+
295
|
|
1538
|
+
296
|
|
1539
|
+
297
|
|
1540
|
+
298
|
|
1541
|
+
299
|
|
1542
|
+
300
|
|
1543
|
+
301
|
|
1544
|
+
302
|
|
1545
|
+
303</pre>
|
|
1546
|
+
</td>
|
|
1547
|
+
<td>
|
|
1548
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 294</span>
|
|
1549
|
+
|
|
1550
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id persistor_class_for'>persistor_class_for</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
1551
|
+
<span class='id model'>model</span> <span class='op'>=</span> <span class='id model_for'>model_for</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
1552
|
+
|
|
1553
|
+
<span class='id persistor'>persistor</span> <span class='op'>=</span> <span class='id persistor_class_map'>persistor_class_map</span><span class='period'>.</span><span class='id object_for'>object_for</span><span class='lparen'>(</span><span class='id model'>model</span><span class='rparen'>)</span>
|
|
1554
|
+
<span class='kw'>unless</span> <span class='id persistor'>persistor</span>
|
|
1555
|
+
<span class='id persistor'>persistor</span> <span class='op'>=</span> <span class='id find_or_create_persistor_for'>find_or_create_persistor_for</span><span class='lparen'>(</span><span class='id model'>model</span><span class='rparen'>)</span>
|
|
1556
|
+
<span class='id persistor_class_map'>persistor_class_map</span><span class='period'>.</span><span class='id map_id_object'>map_id_object</span><span class='lparen'>(</span><span class='id model'>model</span><span class='comma'>,</span> <span class='id persistor'>persistor</span><span class='rparen'>)</span>
|
|
1557
|
+
<span class='kw'>end</span>
|
|
1558
|
+
<span class='id persistor'>persistor</span>
|
|
1559
|
+
<span class='kw'>end</span></pre>
|
|
1560
|
+
</td>
|
|
1561
|
+
</tr>
|
|
1562
|
+
</table>
|
|
1563
|
+
</div>
|
|
1564
|
+
|
|
1565
|
+
<div class="method_details ">
|
|
1566
|
+
<p class="signature " id="persistor_class_map-class_method">
|
|
1567
|
+
|
|
1568
|
+
+ (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>persistor_class_map</strong> <span class="extras">(private)</span>
|
|
1569
|
+
|
|
1570
|
+
|
|
1571
|
+
|
|
1572
|
+
</p><table class="source_code">
|
|
1573
|
+
<tr>
|
|
1574
|
+
<td>
|
|
1575
|
+
<pre class="lines">
|
|
1576
|
+
|
|
1577
|
+
|
|
1578
|
+
305
|
|
1579
|
+
306
|
|
1580
|
+
307</pre>
|
|
1581
|
+
</td>
|
|
1582
|
+
<td>
|
|
1583
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 305</span>
|
|
1584
|
+
|
|
1585
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id persistor_class_map'>persistor_class_map</span><span class='lparen'>(</span><span class='rparen'>)</span>
|
|
1586
|
+
<span class='ivar'>@persistor_class_map</span> <span class='op'>||=</span> <span class='const'>IdentityMap</span><span class='op'>::</span><span class='const'>Class</span><span class='period'>.</span><span class='id new'>new</span>
|
|
1587
|
+
<span class='kw'>end</span></pre>
|
|
1588
|
+
</td>
|
|
1589
|
+
</tr>
|
|
1590
|
+
</table>
|
|
1591
|
+
</div>
|
|
1592
|
+
|
|
1593
|
+
<div class="method_details ">
|
|
1594
|
+
<p class="signature " id="persistor_name_for-class_method">
|
|
1595
|
+
|
|
1596
|
+
+ (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>persistor_name_for</strong>(object) <span class="extras">(private)</span>
|
|
1597
|
+
|
|
1598
|
+
|
|
1599
|
+
|
|
1600
|
+
</p><table class="source_code">
|
|
1601
|
+
<tr>
|
|
1602
|
+
<td>
|
|
1603
|
+
<pre class="lines">
|
|
1604
|
+
|
|
1605
|
+
|
|
1606
|
+
283
|
|
1607
|
+
284
|
|
1608
|
+
285
|
|
1609
|
+
286</pre>
|
|
1610
|
+
</td>
|
|
1611
|
+
<td>
|
|
1612
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 283</span>
|
|
1613
|
+
|
|
1614
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id persistor_name_for'>persistor_name_for</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
1615
|
+
<span class='id model'>model</span> <span class='op'>=</span> <span class='id model_for'>model_for</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
1616
|
+
<span class='id model_to_name'>model_to_name</span><span class='lparen'>(</span><span class='id model'>model</span><span class='rparen'>)</span>
|
|
1617
|
+
<span class='kw'>end</span></pre>
|
|
1618
|
+
</td>
|
|
1619
|
+
</tr>
|
|
1620
|
+
</table>
|
|
1621
|
+
</div>
|
|
1622
|
+
|
|
1623
|
+
<div class="method_details ">
|
|
1624
|
+
<p class="signature " id="register_model-class_method">
|
|
1625
|
+
|
|
1626
|
+
+ (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>register_model</strong>(name, model) <span class="extras">(private)</span>
|
|
1627
|
+
|
|
1628
|
+
|
|
1629
|
+
|
|
1630
|
+
</p><div class="docstring">
|
|
1631
|
+
<div class="discussion">
|
|
1632
|
+
|
|
1633
|
+
<p>Register a model for a given name. This name will be looked up when calling
|
|
1634
|
+
session.<name> Persistors need to be registered.</p>
|
|
1635
|
+
|
|
1636
|
+
|
|
1637
|
+
</div>
|
|
1638
|
+
</div>
|
|
1639
|
+
<div class="tags">
|
|
1640
|
+
<h3>Parameters:</h3>
|
|
1641
|
+
<ul class="param">
|
|
1642
|
+
|
|
1643
|
+
<li>
|
|
1644
|
+
|
|
1645
|
+
<span class='name'>name</span>
|
|
1646
|
+
|
|
1647
|
+
|
|
1648
|
+
<span class='type'>(<tt>String</tt>, <tt>Symbol</tt>)</span>
|
|
1649
|
+
|
|
1650
|
+
|
|
1651
|
+
|
|
1652
|
+
</li>
|
|
1653
|
+
|
|
1654
|
+
<li>
|
|
1655
|
+
|
|
1656
|
+
<span class='name'>model</span>
|
|
1657
|
+
|
|
1658
|
+
|
|
1659
|
+
<span class='type'>(<tt>Class</tt>)</span>
|
|
1660
|
+
|
|
1661
|
+
|
|
1662
|
+
|
|
1663
|
+
</li>
|
|
1664
|
+
|
|
1665
|
+
</ul>
|
|
1666
|
+
|
|
1667
|
+
|
|
1668
|
+
</div><table class="source_code">
|
|
1669
|
+
<tr>
|
|
1670
|
+
<td>
|
|
1671
|
+
<pre class="lines">
|
|
1672
|
+
|
|
1673
|
+
|
|
1674
|
+
237
|
|
1675
|
+
238
|
|
1676
|
+
239
|
|
1677
|
+
240
|
|
1678
|
+
241
|
|
1679
|
+
242</pre>
|
|
1680
|
+
</td>
|
|
1681
|
+
<td>
|
|
1682
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 237</span>
|
|
1683
|
+
|
|
1684
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id register_model'>register_model</span><span class='lparen'>(</span><span class='id name'>name</span><span class='comma'>,</span> <span class='id model'>model</span><span class='rparen'>)</span>
|
|
1685
|
+
<span class='id name'>name</span> <span class='op'>=</span> <span class='id name'>name</span><span class='period'>.</span><span class='id to_s'>to_s</span><span class='period'>.</span><span class='id snakecase'>snakecase</span>
|
|
1686
|
+
<span class='comment'># skip if name already registered with the same object
|
|
1687
|
+
</span> <span class='kw'>return</span> <span class='kw'>if</span> <span class='id model_map'>model_map</span><span class='period'>.</span><span class='id object_for'>object_for</span><span class='lparen'>(</span><span class='id name'>name</span><span class='rparen'>)</span> <span class='op'>==</span> <span class='id model'>model</span>
|
|
1688
|
+
<span class='id model_map'>model_map</span><span class='period'>.</span><span class='id map_id_object'>map_id_object</span><span class='lparen'>(</span><span class='id name'>name</span><span class='comma'>,</span> <span class='id model'>model</span><span class='rparen'>)</span>
|
|
1689
|
+
<span class='kw'>end</span></pre>
|
|
1690
|
+
</td>
|
|
1691
|
+
</tr>
|
|
1692
|
+
</table>
|
|
1693
|
+
</div>
|
|
1694
|
+
|
|
1695
|
+
<div class="method_details ">
|
|
1696
|
+
<p class="signature " id="unpack_uuid-class_method">
|
|
1697
|
+
|
|
1698
|
+
+ (<tt>String</tt>) <strong>unpack_uuid</strong>(puuid)
|
|
1699
|
+
|
|
1700
|
+
|
|
1701
|
+
|
|
1702
|
+
</p><div class="docstring">
|
|
1703
|
+
<div class="discussion">
|
|
1704
|
+
|
|
1705
|
+
<p>Unpac if needed an uuid from its store representation</p>
|
|
1706
|
+
|
|
1707
|
+
|
|
1708
|
+
</div>
|
|
1709
|
+
</div>
|
|
1710
|
+
<div class="tags">
|
|
1711
|
+
<h3>Parameters:</h3>
|
|
1712
|
+
<ul class="param">
|
|
1713
|
+
|
|
1714
|
+
<li>
|
|
1715
|
+
|
|
1716
|
+
<span class='name'>puuid</span>
|
|
1717
|
+
|
|
1718
|
+
|
|
1719
|
+
<span class='type'>(<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>)</span>
|
|
1720
|
+
|
|
1721
|
+
|
|
1722
|
+
|
|
1723
|
+
</li>
|
|
1724
|
+
|
|
1725
|
+
</ul>
|
|
1726
|
+
|
|
1727
|
+
<h3>Returns:</h3>
|
|
1728
|
+
<ul class="return">
|
|
1729
|
+
|
|
1730
|
+
<li>
|
|
1731
|
+
|
|
1732
|
+
|
|
1733
|
+
<span class='type'>(<tt>String</tt>)</span>
|
|
1734
|
+
|
|
1735
|
+
|
|
1736
|
+
|
|
1737
|
+
</li>
|
|
1738
|
+
|
|
1739
|
+
</ul>
|
|
1740
|
+
|
|
1741
|
+
</div><table class="source_code">
|
|
1742
|
+
<tr>
|
|
1743
|
+
<td>
|
|
1744
|
+
<pre class="lines">
|
|
1745
|
+
|
|
1746
|
+
|
|
1747
|
+
164
|
|
1748
|
+
165
|
|
1749
|
+
166</pre>
|
|
1750
|
+
</td>
|
|
1751
|
+
<td>
|
|
1752
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 164</span>
|
|
1753
|
+
|
|
1754
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id unpack_uuid'>unpack_uuid</span><span class='lparen'>(</span><span class='id puuid'>puuid</span><span class='rparen'>)</span>
|
|
1755
|
+
<span class='id puuid'>puuid</span>
|
|
1756
|
+
<span class='kw'>end</span></pre>
|
|
1757
|
+
</td>
|
|
1758
|
+
</tr>
|
|
1759
|
+
</table>
|
|
1760
|
+
</div>
|
|
1761
|
+
|
|
1762
|
+
</div>
|
|
1763
|
+
|
|
1764
|
+
<div id="instance_method_details" class="method_details_list">
|
|
1765
|
+
<h2>Instance Method Details</h2>
|
|
1766
|
+
|
|
1767
|
+
|
|
1768
|
+
<div class="method_details first">
|
|
1769
|
+
<p class="signature first" id="<<-instance_method">
|
|
1770
|
+
|
|
1771
|
+
- (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong><<</strong>(object)
|
|
1772
|
+
|
|
1773
|
+
|
|
1774
|
+
|
|
1775
|
+
</p><div class="docstring">
|
|
1776
|
+
<div class="discussion">
|
|
1777
|
+
|
|
1778
|
+
<p>Tell the session to be responsible of an object. The object will be saved
|
|
1779
|
+
at the end of the session.</p>
|
|
1780
|
+
|
|
1781
|
+
|
|
1782
|
+
</div>
|
|
1783
|
+
</div>
|
|
1784
|
+
<div class="tags">
|
|
1785
|
+
|
|
1786
|
+
<div class="examples">
|
|
1787
|
+
<h3>Examples:</h3>
|
|
1788
|
+
|
|
1789
|
+
<h4><div class='inline'></div></h4>
|
|
1790
|
+
<pre class="example code"><span class='id store'>store</span><span class='period'>.</span><span class='id with_session'>with_session</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id session'>session</span><span class='op'>|</span>
|
|
1791
|
+
<span class='id session'>session</span> <span class='op'><<</span> <span class='const'>Plate</span><span class='period'>.</span><span class='id new'>new</span>
|
|
1792
|
+
<span class='kw'>end</span></pre>
|
|
1793
|
+
|
|
1794
|
+
</div>
|
|
1795
|
+
<h3>Parameters:</h3>
|
|
1796
|
+
<ul class="param">
|
|
1797
|
+
|
|
1798
|
+
<li>
|
|
1799
|
+
|
|
1800
|
+
<span class='name'>object</span>
|
|
1801
|
+
|
|
1802
|
+
|
|
1803
|
+
<span class='type'>(<tt>Persistable</tt>)</span>
|
|
1804
|
+
|
|
1805
|
+
|
|
1806
|
+
|
|
1807
|
+
—
|
|
1808
|
+
<div class='inline'>
|
|
1809
|
+
<p>the object to persist.</p>
|
|
1810
|
+
</div>
|
|
1811
|
+
|
|
1812
|
+
</li>
|
|
1813
|
+
|
|
1814
|
+
</ul>
|
|
1815
|
+
|
|
1816
|
+
<h3>Returns:</h3>
|
|
1817
|
+
<ul class="return">
|
|
1818
|
+
|
|
1819
|
+
<li>
|
|
1820
|
+
|
|
1821
|
+
|
|
1822
|
+
<span class='type'></span>
|
|
1823
|
+
|
|
1824
|
+
|
|
1825
|
+
|
|
1826
|
+
|
|
1827
|
+
<div class='inline'>
|
|
1828
|
+
<p>the session, to allow for chaining</p>
|
|
1829
|
+
</div>
|
|
1830
|
+
|
|
1831
|
+
</li>
|
|
1832
|
+
|
|
1833
|
+
</ul>
|
|
1834
|
+
|
|
1835
|
+
</div><table class="source_code">
|
|
1836
|
+
<tr>
|
|
1837
|
+
<td>
|
|
1838
|
+
<pre class="lines">
|
|
1839
|
+
|
|
1840
|
+
|
|
1841
|
+
80
|
|
1842
|
+
81
|
|
1843
|
+
82
|
|
1844
|
+
83</pre>
|
|
1845
|
+
</td>
|
|
1846
|
+
<td>
|
|
1847
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 80</span>
|
|
1848
|
+
|
|
1849
|
+
<span class='kw'>def</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
1850
|
+
<span class='id manage_state'>manage_state</span><span class='lparen'>(</span><span class='id state_for'>state_for</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span><span class='rparen'>)</span>
|
|
1851
|
+
<span class='kw'>self</span>
|
|
1852
|
+
<span class='kw'>end</span></pre>
|
|
1853
|
+
</td>
|
|
1854
|
+
</tr>
|
|
1855
|
+
</table>
|
|
1856
|
+
</div>
|
|
1857
|
+
|
|
1858
|
+
<div class="method_details ">
|
|
1859
|
+
<p class="signature " id="delete-instance_method">
|
|
1860
|
+
|
|
1861
|
+
- (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>delete</strong>(object)
|
|
1862
|
+
|
|
1863
|
+
|
|
1864
|
+
|
|
1865
|
+
</p><div class="docstring">
|
|
1866
|
+
<div class="discussion">
|
|
1867
|
+
|
|
1868
|
+
<p>Mark an object as to be deleted. The corresponding object will be deleted
|
|
1869
|
+
at the end of the session. For most object you don't need to load it to
|
|
1870
|
+
delete it but some needs (to delete the appropriate children). The real
|
|
1871
|
+
delete is made by calling the #delete_in_real method.</p>
|
|
1872
|
+
|
|
1873
|
+
|
|
1874
|
+
</div>
|
|
1875
|
+
</div>
|
|
1876
|
+
<div class="tags">
|
|
1877
|
+
|
|
1878
|
+
<h3>Raises:</h3>
|
|
1879
|
+
<ul class="raise">
|
|
1880
|
+
|
|
1881
|
+
<li>
|
|
1882
|
+
|
|
1883
|
+
|
|
1884
|
+
<span class='type'>(<tt><span class='object_link'><a href="Session/UnmanagedObjectError.html" title="Lims::Core::Persistence::Session::UnmanagedObjectError (class)">UnmanagedObjectError</a></span></tt>)</span>
|
|
1885
|
+
|
|
1886
|
+
|
|
1887
|
+
|
|
1888
|
+
</li>
|
|
1889
|
+
|
|
1890
|
+
</ul>
|
|
1891
|
+
|
|
1892
|
+
</div><table class="source_code">
|
|
1893
|
+
<tr>
|
|
1894
|
+
<td>
|
|
1895
|
+
<pre class="lines">
|
|
1896
|
+
|
|
1897
|
+
|
|
1898
|
+
143
|
|
1899
|
+
144
|
|
1900
|
+
145
|
|
1901
|
+
146
|
|
1902
|
+
147</pre>
|
|
1903
|
+
</td>
|
|
1904
|
+
<td>
|
|
1905
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 143</span>
|
|
1906
|
+
|
|
1907
|
+
<span class='kw'>def</span> <span class='id delete'>delete</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
1908
|
+
<span class='id raise'>raise</span> <span class='const'>UnmanagedObjectError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>can't delete </span><span class='embexpr_beg'>#{</span><span class='id object'>object</span><span class='period'>.</span><span class='id inspect'>inspect</span><span class='rbrace'>}</span><span class='tstring_end'>"</span></span> <span class='kw'>unless</span> <span class='id managed?'>managed?</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
1909
|
+
<span class='id state'>state</span> <span class='op'>=</span> <span class='id state_for'>state_for</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
1910
|
+
<span class='id state'>state</span><span class='period'>.</span><span class='id mark_for_deletion'>mark_for_deletion</span>
|
|
1911
|
+
<span class='kw'>end</span></pre>
|
|
1912
|
+
</td>
|
|
1913
|
+
</tr>
|
|
1914
|
+
</table>
|
|
1915
|
+
</div>
|
|
1916
|
+
|
|
1917
|
+
<div class="method_details ">
|
|
1918
|
+
<p class="signature " id="dirty_key_for-instance_method">
|
|
1919
|
+
|
|
1920
|
+
- (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>dirty_key_for</strong>(object)
|
|
1921
|
+
|
|
1922
|
+
|
|
1923
|
+
|
|
1924
|
+
</p><table class="source_code">
|
|
1925
|
+
<tr>
|
|
1926
|
+
<td>
|
|
1927
|
+
<pre class="lines">
|
|
1928
|
+
|
|
1929
|
+
|
|
1930
|
+
181
|
|
1931
|
+
182
|
|
1932
|
+
183
|
|
1933
|
+
184
|
|
1934
|
+
185
|
|
1935
|
+
186
|
|
1936
|
+
187
|
|
1937
|
+
188</pre>
|
|
1938
|
+
</td>
|
|
1939
|
+
<td>
|
|
1940
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 181</span>
|
|
1941
|
+
|
|
1942
|
+
<span class='kw'>def</span> <span class='id dirty_key_for'>dirty_key_for</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
1943
|
+
<span class='kw'>case</span> <span class='ivar'>@dirty_attribute_strategy</span>
|
|
1944
|
+
<span class='kw'>when</span> <span class='const'>Store</span><span class='op'>::</span><span class='const'>DIRTY_ATTRIBUTE_STRATEGY_DEEP_COPY</span> <span class='kw'>then</span> <span class='id object'>object</span>
|
|
1945
|
+
<span class='kw'>when</span> <span class='const'>Store</span><span class='op'>::</span><span class='const'>DIRTY_ATTRIBUTE_STRATEGY_SHA1</span> <span class='kw'>then</span> <span class='const'>Digest</span><span class='op'>::</span><span class='const'>SHA1</span><span class='period'>.</span><span class='id hexdigest'>hexdigest</span><span class='lparen'>(</span><span class='const'>Oj</span><span class='period'>.</span><span class='id dump'>dump</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span><span class='rparen'>)</span>
|
|
1946
|
+
<span class='kw'>when</span> <span class='const'>Store</span><span class='op'>::</span><span class='const'>DIRTY_ATTRIBUTE_STRATEGY_MD5</span> <span class='kw'>then</span> <span class='const'>Digest</span><span class='op'>::</span><span class='const'>MD5</span><span class='period'>.</span><span class='id hexdigest'>hexdigest</span><span class='lparen'>(</span><span class='const'>Oj</span><span class='period'>.</span><span class='id dump'>dump</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span><span class='rparen'>)</span>
|
|
1947
|
+
<span class='kw'>when</span> <span class='const'>Store</span><span class='op'>::</span><span class='const'>DIRTY_ATTRIBUTE_STRATEGY_QUICK_HASH</span> <span class='kw'>then</span> <span class='id object'>object</span><span class='period'>.</span><span class='id hash'>hash</span>
|
|
1948
|
+
<span class='kw'>end</span>
|
|
1949
|
+
<span class='kw'>end</span></pre>
|
|
1950
|
+
</td>
|
|
1951
|
+
</tr>
|
|
1952
|
+
</table>
|
|
1953
|
+
</div>
|
|
1954
|
+
|
|
1955
|
+
<div class="method_details ">
|
|
1956
|
+
<p class="signature " id="filter-instance_method">
|
|
1957
|
+
|
|
1958
|
+
- (<tt><span class='object_link'><a href="Persistor.html" title="Lims::Core::Persistence::Persistor (class)">Persistor</a></span></tt>) <strong>filter</strong>(persistor) <span class="extras">(private)</span>
|
|
1959
|
+
|
|
1960
|
+
|
|
1961
|
+
|
|
1962
|
+
</p><div class="docstring">
|
|
1963
|
+
<div class="discussion">
|
|
1964
|
+
|
|
1965
|
+
<p>Create a new persistor sharing the same internal parameters but with the
|
|
1966
|
+
"context" (datasest) of the new one. This can be used to "reset" a filtered
|
|
1967
|
+
persistor to the current session.</p>
|
|
1968
|
+
|
|
1969
|
+
|
|
1970
|
+
</div>
|
|
1971
|
+
</div>
|
|
1972
|
+
<div class="tags">
|
|
1973
|
+
<h3>Parameters:</h3>
|
|
1974
|
+
<ul class="param">
|
|
1975
|
+
|
|
1976
|
+
<li>
|
|
1977
|
+
|
|
1978
|
+
<span class='name'>persistor</span>
|
|
1979
|
+
|
|
1980
|
+
|
|
1981
|
+
<span class='type'>(<tt><span class='object_link'><a href="Persistor.html" title="Lims::Core::Persistence::Persistor (class)">Persistor</a></span></tt>)</span>
|
|
1982
|
+
|
|
1983
|
+
|
|
1984
|
+
|
|
1985
|
+
</li>
|
|
1986
|
+
|
|
1987
|
+
</ul>
|
|
1988
|
+
|
|
1989
|
+
<h3>Returns:</h3>
|
|
1990
|
+
<ul class="return">
|
|
1991
|
+
|
|
1992
|
+
<li>
|
|
1993
|
+
|
|
1994
|
+
|
|
1995
|
+
<span class='type'>(<tt><span class='object_link'><a href="Persistor.html" title="Lims::Core::Persistence::Persistor (class)">Persistor</a></span></tt>)</span>
|
|
1996
|
+
|
|
1997
|
+
|
|
1998
|
+
|
|
1999
|
+
</li>
|
|
2000
|
+
|
|
2001
|
+
</ul>
|
|
2002
|
+
|
|
2003
|
+
</div><table class="source_code">
|
|
2004
|
+
<tr>
|
|
2005
|
+
<td>
|
|
2006
|
+
<pre class="lines">
|
|
2007
|
+
|
|
2008
|
+
|
|
2009
|
+
206
|
|
2010
|
+
207
|
|
2011
|
+
208
|
|
2012
|
+
209
|
|
2013
|
+
210
|
|
2014
|
+
211
|
|
2015
|
+
212
|
|
2016
|
+
213
|
|
2017
|
+
214
|
|
2018
|
+
215</pre>
|
|
2019
|
+
</td>
|
|
2020
|
+
<td>
|
|
2021
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 206</span>
|
|
2022
|
+
|
|
2023
|
+
<span class='kw'>def</span> <span class='id filter'>filter</span><span class='lparen'>(</span><span class='id persistor'>persistor</span><span class='rparen'>)</span>
|
|
2024
|
+
<span class='comment'># If the persistor session is the current session, there is nothing to do
|
|
2025
|
+
</span> <span class='comment'># just return the object as it is.
|
|
2026
|
+
</span> <span class='kw'>return</span> <span class='id persistor'>persistor</span> <span class='kw'>if</span> <span class='id persistor'>persistor</span><span class='period'>.</span><span class='id instance_eval'>instance_eval</span> <span class='lbrace'>{</span><span class='ivar'>@session</span><span class='rbrace'>}</span> <span class='op'>==</span> <span class='kw'>self</span>
|
|
2027
|
+
|
|
2028
|
+
<span class='comment'># we need first to find the original persistor, ie the one that the user can call via
|
|
2029
|
+
</span> <span class='comment'># session.model
|
|
2030
|
+
</span> <span class='id original'>original</span> <span class='op'>=</span> <span class='id persistor_for'>persistor_for</span><span class='lparen'>(</span><span class='id persistor'>persistor</span><span class='period'>.</span><span class='id class'>class</span><span class='rparen'>)</span>
|
|
2031
|
+
<span class='id persistor'>persistor</span><span class='period'>.</span><span class='id class'>class</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='id original'>original</span><span class='comma'>,</span> <span class='id persistor'>persistor</span><span class='period'>.</span><span class='id dataset'>dataset</span><span class='rparen'>)</span>
|
|
2032
|
+
<span class='kw'>end</span></pre>
|
|
2033
|
+
</td>
|
|
2034
|
+
</tr>
|
|
2035
|
+
</table>
|
|
2036
|
+
</div>
|
|
2037
|
+
|
|
2038
|
+
<div class="method_details ">
|
|
2039
|
+
<p class="signature " id="id_for-instance_method">
|
|
2040
|
+
|
|
2041
|
+
- (<tt>Id</tt><sup>?</sup>) <strong>id_for</strong>(object)
|
|
2042
|
+
|
|
2043
|
+
|
|
2044
|
+
|
|
2045
|
+
</p><div class="docstring">
|
|
2046
|
+
<div class="discussion">
|
|
2047
|
+
|
|
2048
|
+
<p>Returns the id of an object if exists.</p>
|
|
2049
|
+
|
|
2050
|
+
|
|
2051
|
+
</div>
|
|
2052
|
+
</div>
|
|
2053
|
+
<div class="tags">
|
|
2054
|
+
<h3>Parameters:</h3>
|
|
2055
|
+
<ul class="param">
|
|
2056
|
+
|
|
2057
|
+
<li>
|
|
2058
|
+
|
|
2059
|
+
<span class='name'>object</span>
|
|
2060
|
+
|
|
2061
|
+
|
|
2062
|
+
<span class='type'>(<tt><span class='object_link'><a href="../Resource.html" title="Lims::Core::Resource (module)">Resource</a></span></tt>, <tt>Id</tt>)</span>
|
|
2063
|
+
|
|
2064
|
+
|
|
2065
|
+
|
|
2066
|
+
—
|
|
2067
|
+
<div class='inline'>
|
|
2068
|
+
<p>or id.</p>
|
|
2069
|
+
</div>
|
|
2070
|
+
|
|
2071
|
+
</li>
|
|
2072
|
+
|
|
2073
|
+
</ul>
|
|
2074
|
+
|
|
2075
|
+
<h3>Returns:</h3>
|
|
2076
|
+
<ul class="return">
|
|
2077
|
+
|
|
2078
|
+
<li>
|
|
2079
|
+
|
|
2080
|
+
|
|
2081
|
+
<span class='type'>(<tt>Id</tt>, <tt>nil</tt>)</span>
|
|
2082
|
+
|
|
2083
|
+
|
|
2084
|
+
|
|
2085
|
+
</li>
|
|
2086
|
+
|
|
2087
|
+
</ul>
|
|
2088
|
+
|
|
2089
|
+
</div><table class="source_code">
|
|
2090
|
+
<tr>
|
|
2091
|
+
<td>
|
|
2092
|
+
<pre class="lines">
|
|
2093
|
+
|
|
2094
|
+
|
|
2095
|
+
103
|
|
2096
|
+
104
|
|
2097
|
+
105
|
|
2098
|
+
106
|
|
2099
|
+
107
|
|
2100
|
+
108</pre>
|
|
2101
|
+
</td>
|
|
2102
|
+
<td>
|
|
2103
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 103</span>
|
|
2104
|
+
|
|
2105
|
+
<span class='kw'>def</span> <span class='id id_for'>id_for</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
2106
|
+
<span class='kw'>case</span> <span class='id object'>object</span>
|
|
2107
|
+
<span class='kw'>when</span> <span class='const'>Resource</span> <span class='kw'>then</span> <span class='id persistor_for'>persistor_for</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span><span class='period'>.</span><span class='id id_for'>id_for</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
2108
|
+
<span class='kw'>else</span> <span class='id object'>object</span> <span class='comment'># the object should be already an id
|
|
2109
|
+
</span> <span class='kw'>end</span>
|
|
2110
|
+
<span class='kw'>end</span></pre>
|
|
2111
|
+
</td>
|
|
2112
|
+
</tr>
|
|
2113
|
+
</table>
|
|
2114
|
+
</div>
|
|
2115
|
+
|
|
2116
|
+
<div class="method_details ">
|
|
2117
|
+
<p class="signature " id="id_for!-instance_method">
|
|
2118
|
+
|
|
2119
|
+
- (<tt>Id</tt>) <strong>id_for!</strong>(object)
|
|
2120
|
+
|
|
2121
|
+
|
|
2122
|
+
|
|
2123
|
+
</p><div class="docstring">
|
|
2124
|
+
<div class="discussion">
|
|
2125
|
+
|
|
2126
|
+
<p>Returns the id of an object and save it if necessary</p>
|
|
2127
|
+
|
|
2128
|
+
|
|
2129
|
+
</div>
|
|
2130
|
+
</div>
|
|
2131
|
+
<div class="tags">
|
|
2132
|
+
<h3>Parameters:</h3>
|
|
2133
|
+
<ul class="param">
|
|
2134
|
+
|
|
2135
|
+
<li>
|
|
2136
|
+
|
|
2137
|
+
<span class='name'>object</span>
|
|
2138
|
+
|
|
2139
|
+
|
|
2140
|
+
<span class='type'>(<tt><span class='object_link'><a href="../Resource.html" title="Lims::Core::Resource (module)">Resource</a></span></tt>, <tt>Id</tt>)</span>
|
|
2141
|
+
|
|
2142
|
+
|
|
2143
|
+
|
|
2144
|
+
—
|
|
2145
|
+
<div class='inline'>
|
|
2146
|
+
<p>or id.</p>
|
|
2147
|
+
</div>
|
|
2148
|
+
|
|
2149
|
+
</li>
|
|
2150
|
+
|
|
2151
|
+
</ul>
|
|
2152
|
+
|
|
2153
|
+
<h3>Returns:</h3>
|
|
2154
|
+
<ul class="return">
|
|
2155
|
+
|
|
2156
|
+
<li>
|
|
2157
|
+
|
|
2158
|
+
|
|
2159
|
+
<span class='type'>(<tt>Id</tt>)</span>
|
|
2160
|
+
|
|
2161
|
+
|
|
2162
|
+
|
|
2163
|
+
</li>
|
|
2164
|
+
|
|
2165
|
+
</ul>
|
|
2166
|
+
|
|
2167
|
+
</div><table class="source_code">
|
|
2168
|
+
<tr>
|
|
2169
|
+
<td>
|
|
2170
|
+
<pre class="lines">
|
|
2171
|
+
|
|
2172
|
+
|
|
2173
|
+
124
|
|
2174
|
+
125
|
|
2175
|
+
126
|
|
2176
|
+
127</pre>
|
|
2177
|
+
</td>
|
|
2178
|
+
<td>
|
|
2179
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 124</span>
|
|
2180
|
+
|
|
2181
|
+
<span class='kw'>def</span> <span class='id id_for!'>id_for!</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
2182
|
+
<span class='kw'>return</span> <span class='kw'>nil</span> <span class='kw'>unless</span> <span class='id object'>object</span>
|
|
2183
|
+
<span class='id id_for'>id_for</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='id save'>save</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
2184
|
+
<span class='kw'>end</span></pre>
|
|
2185
|
+
</td>
|
|
2186
|
+
</tr>
|
|
2187
|
+
</table>
|
|
2188
|
+
</div>
|
|
2189
|
+
|
|
2190
|
+
<div class="method_details ">
|
|
2191
|
+
<p class="signature " id="manage_state-instance_method">
|
|
2192
|
+
|
|
2193
|
+
- (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>manage_state</strong>(state)
|
|
2194
|
+
|
|
2195
|
+
|
|
2196
|
+
|
|
2197
|
+
</p><table class="source_code">
|
|
2198
|
+
<tr>
|
|
2199
|
+
<td>
|
|
2200
|
+
<pre class="lines">
|
|
2201
|
+
|
|
2202
|
+
|
|
2203
|
+
85
|
|
2204
|
+
86
|
|
2205
|
+
87</pre>
|
|
2206
|
+
</td>
|
|
2207
|
+
<td>
|
|
2208
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 85</span>
|
|
2209
|
+
|
|
2210
|
+
<span class='kw'>def</span> <span class='id manage_state'>manage_state</span><span class='lparen'>(</span><span class='id state'>state</span><span class='rparen'>)</span>
|
|
2211
|
+
<span class='ivar'>@object_states</span> <span class='op'><<</span> <span class='id state'>state</span>
|
|
2212
|
+
<span class='kw'>end</span></pre>
|
|
2213
|
+
</td>
|
|
2214
|
+
</tr>
|
|
2215
|
+
</table>
|
|
2216
|
+
</div>
|
|
2217
|
+
|
|
2218
|
+
<div class="method_details ">
|
|
2219
|
+
<p class="signature " id="managed?-instance_method">
|
|
2220
|
+
|
|
2221
|
+
- (<tt>Boolean</tt>) <strong>managed?</strong>(object)
|
|
2222
|
+
|
|
2223
|
+
|
|
2224
|
+
|
|
2225
|
+
</p><div class="docstring">
|
|
2226
|
+
<div class="discussion">
|
|
2227
|
+
|
|
2228
|
+
<p>Check if the session 'mananage' already this object. .i.e if it's been
|
|
2229
|
+
loaded or meant to be saved</p>
|
|
2230
|
+
|
|
2231
|
+
|
|
2232
|
+
</div>
|
|
2233
|
+
</div>
|
|
2234
|
+
<div class="tags">
|
|
2235
|
+
<h3>Parameters:</h3>
|
|
2236
|
+
<ul class="param">
|
|
2237
|
+
|
|
2238
|
+
<li>
|
|
2239
|
+
|
|
2240
|
+
<span class='name'>object</span>
|
|
2241
|
+
|
|
2242
|
+
|
|
2243
|
+
<span class='type'>(<tt><span class='object_link'><a href="../Resource.html" title="Lims::Core::Resource (module)">Resource</a></span></tt>)</span>
|
|
2244
|
+
|
|
2245
|
+
|
|
2246
|
+
|
|
2247
|
+
</li>
|
|
2248
|
+
|
|
2249
|
+
</ul>
|
|
2250
|
+
|
|
2251
|
+
<h3>Returns:</h3>
|
|
2252
|
+
<ul class="return">
|
|
2253
|
+
|
|
2254
|
+
<li>
|
|
2255
|
+
|
|
2256
|
+
|
|
2257
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
|
2258
|
+
|
|
2259
|
+
|
|
2260
|
+
|
|
2261
|
+
</li>
|
|
2262
|
+
|
|
2263
|
+
</ul>
|
|
2264
|
+
|
|
2265
|
+
</div><table class="source_code">
|
|
2266
|
+
<tr>
|
|
2267
|
+
<td>
|
|
2268
|
+
<pre class="lines">
|
|
2269
|
+
|
|
2270
|
+
|
|
2271
|
+
133
|
|
2272
|
+
134
|
|
2273
|
+
135
|
|
2274
|
+
136</pre>
|
|
2275
|
+
</td>
|
|
2276
|
+
<td>
|
|
2277
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 133</span>
|
|
2278
|
+
|
|
2279
|
+
<span class='kw'>def</span> <span class='id managed?'>managed?</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
2280
|
+
<span class='id state'>state</span> <span class='op'>=</span> <span class='id state_for'>state_for</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
2281
|
+
<span class='ivar'>@object_states</span><span class='period'>.</span><span class='id include?'>include?</span><span class='lparen'>(</span><span class='id state'>state</span><span class='rparen'>)</span>
|
|
2282
|
+
<span class='kw'>end</span></pre>
|
|
2283
|
+
</td>
|
|
2284
|
+
</tr>
|
|
2285
|
+
</table>
|
|
2286
|
+
</div>
|
|
2287
|
+
|
|
2288
|
+
<div class="method_details ">
|
|
2289
|
+
<p class="signature " id="pack_uuid-instance_method">
|
|
2290
|
+
|
|
2291
|
+
- (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>pack_uuid</strong>(uuid)
|
|
2292
|
+
|
|
2293
|
+
|
|
2294
|
+
|
|
2295
|
+
</p><table class="source_code">
|
|
2296
|
+
<tr>
|
|
2297
|
+
<td>
|
|
2298
|
+
<pre class="lines">
|
|
2299
|
+
|
|
2300
|
+
|
|
2301
|
+
157
|
|
2302
|
+
158
|
|
2303
|
+
159</pre>
|
|
2304
|
+
</td>
|
|
2305
|
+
<td>
|
|
2306
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 157</span>
|
|
2307
|
+
|
|
2308
|
+
<span class='kw'>def</span> <span class='id pack_uuid'>pack_uuid</span><span class='lparen'>(</span><span class='id uuid'>uuid</span><span class='rparen'>)</span>
|
|
2309
|
+
<span class='kw'>self</span><span class='period'>.</span><span class='id class'>class</span><span class='period'>.</span><span class='id pack_uuid'>pack_uuid</span><span class='lparen'>(</span><span class='id uuid'>uuid</span><span class='rparen'>)</span>
|
|
2310
|
+
<span class='kw'>end</span></pre>
|
|
2311
|
+
</td>
|
|
2312
|
+
</tr>
|
|
2313
|
+
</table>
|
|
2314
|
+
</div>
|
|
2315
|
+
|
|
2316
|
+
<div class="method_details ">
|
|
2317
|
+
<p class="signature " id="persistor_for-instance_method">
|
|
2318
|
+
|
|
2319
|
+
- (<tt><span class='object_link'><a href="Persistor.html" title="Lims::Core::Persistence::Persistor (class)">Persistor</a></span></tt><sup>?</sup>) <strong>persistor_for</strong>(object)
|
|
2320
|
+
|
|
2321
|
+
|
|
2322
|
+
|
|
2323
|
+
</p><div class="docstring">
|
|
2324
|
+
<div class="discussion">
|
|
2325
|
+
|
|
2326
|
+
<p>Get the persistor corresponding to the object class</p>
|
|
2327
|
+
|
|
2328
|
+
|
|
2329
|
+
</div>
|
|
2330
|
+
</div>
|
|
2331
|
+
<div class="tags">
|
|
2332
|
+
<h3>Parameters:</h3>
|
|
2333
|
+
<ul class="param">
|
|
2334
|
+
|
|
2335
|
+
<li>
|
|
2336
|
+
|
|
2337
|
+
<span class='name'>object</span>
|
|
2338
|
+
|
|
2339
|
+
|
|
2340
|
+
<span class='type'>(<tt><span class='object_link'><a href="../Resource.html" title="Lims::Core::Resource (module)">Resource</a></span></tt>, <tt>String</tt>, <tt>Symbol</tt>, <tt><span class='object_link'><a href="Persistor.html" title="Lims::Core::Persistence::Persistor (class)">Persistor</a></span></tt>)</span>
|
|
2341
|
+
|
|
2342
|
+
|
|
2343
|
+
|
|
2344
|
+
</li>
|
|
2345
|
+
|
|
2346
|
+
</ul>
|
|
2347
|
+
|
|
2348
|
+
<h3>Returns:</h3>
|
|
2349
|
+
<ul class="return">
|
|
2350
|
+
|
|
2351
|
+
<li>
|
|
2352
|
+
|
|
2353
|
+
|
|
2354
|
+
<span class='type'>(<tt><span class='object_link'><a href="Persistor.html" title="Lims::Core::Persistence::Persistor (class)">Persistor</a></span></tt>, <tt>nil</tt>)</span>
|
|
2355
|
+
|
|
2356
|
+
|
|
2357
|
+
|
|
2358
|
+
</li>
|
|
2359
|
+
|
|
2360
|
+
</ul>
|
|
2361
|
+
|
|
2362
|
+
</div><table class="source_code">
|
|
2363
|
+
<tr>
|
|
2364
|
+
<td>
|
|
2365
|
+
<pre class="lines">
|
|
2366
|
+
|
|
2367
|
+
|
|
2368
|
+
351
|
|
2369
|
+
352
|
|
2370
|
+
353
|
|
2371
|
+
354
|
|
2372
|
+
355
|
|
2373
|
+
356
|
|
2374
|
+
357
|
|
2375
|
+
358
|
|
2376
|
+
359
|
|
2377
|
+
360
|
|
2378
|
+
361
|
|
2379
|
+
362</pre>
|
|
2380
|
+
</td>
|
|
2381
|
+
<td>
|
|
2382
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 351</span>
|
|
2383
|
+
|
|
2384
|
+
<span class='kw'>def</span> <span class='id persistor_for'>persistor_for</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
2385
|
+
<span class='kw'>if</span> <span class='id object'>object</span><span class='period'>.</span><span class='id is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Persistor</span><span class='rparen'>)</span>
|
|
2386
|
+
<span class='kw'>return</span> <span class='id filter'>filter</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
2387
|
+
<span class='kw'>end</span>
|
|
2388
|
+
|
|
2389
|
+
<span class='id model'>model</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id class'>class</span><span class='period'>.</span><span class='id model_for'>model_for</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
2390
|
+
<span class='ivar'>@persistor_map</span><span class='lbracket'>[</span><span class='id model'>model</span><span class='rbracket'>]</span> <span class='op'>||=</span> <span class='kw'>begin</span>
|
|
2391
|
+
<span class='id persistor_class'>persistor_class</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id class'>class</span><span class='period'>.</span><span class='id persistor_class_for'>persistor_class_for</span><span class='lparen'>(</span><span class='id model'>model</span><span class='rparen'>)</span>
|
|
2392
|
+
<span class='id raise'>raise</span> <span class='const'>NameError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>no persistor defined for </span><span class='embexpr_beg'>#{</span><span class='id object'>object</span><span class='period'>.</span><span class='id class'>class</span><span class='period'>.</span><span class='id name'>name</span><span class='rbrace'>}</span><span class='tstring_end'>"</span></span> <span class='kw'>unless</span> <span class='id persistor_class'>persistor_class</span> <span class='op'>&&</span> <span class='id persistor_class'>persistor_class</span><span class='period'>.</span><span class='id ancestors'>ancestors</span><span class='period'>.</span><span class='id include?'>include?</span><span class='lparen'>(</span><span class='const'>Persistor</span><span class='rparen'>)</span>
|
|
2393
|
+
<span class='id persistor_class'>persistor_class</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='kw'>self</span><span class='rparen'>)</span>
|
|
2394
|
+
<span class='kw'>end</span>
|
|
2395
|
+
<span class='kw'>end</span></pre>
|
|
2396
|
+
</td>
|
|
2397
|
+
</tr>
|
|
2398
|
+
</table>
|
|
2399
|
+
</div>
|
|
2400
|
+
|
|
2401
|
+
<div class="method_details ">
|
|
2402
|
+
<p class="signature " id="persistor_name_for-instance_method">
|
|
2403
|
+
|
|
2404
|
+
- (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>persistor_name_for</strong>(object) <span class="extras">(private)</span>
|
|
2405
|
+
|
|
2406
|
+
|
|
2407
|
+
|
|
2408
|
+
</p><table class="source_code">
|
|
2409
|
+
<tr>
|
|
2410
|
+
<td>
|
|
2411
|
+
<pre class="lines">
|
|
2412
|
+
|
|
2413
|
+
|
|
2414
|
+
288
|
|
2415
|
+
289
|
|
2416
|
+
290</pre>
|
|
2417
|
+
</td>
|
|
2418
|
+
<td>
|
|
2419
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 288</span>
|
|
2420
|
+
|
|
2421
|
+
<span class='kw'>def</span> <span class='id persistor_name_for'>persistor_name_for</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
2422
|
+
<span class='kw'>self</span><span class='period'>.</span><span class='id class'>class</span><span class='period'>.</span><span class='id persistor_name_for'>persistor_name_for</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
2423
|
+
<span class='kw'>end</span></pre>
|
|
2424
|
+
</td>
|
|
2425
|
+
</tr>
|
|
2426
|
+
</table>
|
|
2427
|
+
</div>
|
|
2428
|
+
|
|
2429
|
+
<div class="method_details ">
|
|
2430
|
+
<p class="signature " id="save_all-instance_method">
|
|
2431
|
+
|
|
2432
|
+
- (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>save_all</strong> <span class="extras">(private)</span>
|
|
2433
|
+
|
|
2434
|
+
|
|
2435
|
+
|
|
2436
|
+
</p><div class="docstring">
|
|
2437
|
+
<div class="discussion">
|
|
2438
|
+
|
|
2439
|
+
<p>save all objects which needs to be</p>
|
|
2440
|
+
|
|
2441
|
+
|
|
2442
|
+
</div>
|
|
2443
|
+
</div>
|
|
2444
|
+
<div class="tags">
|
|
2445
|
+
|
|
2446
|
+
|
|
2447
|
+
</div><table class="source_code">
|
|
2448
|
+
<tr>
|
|
2449
|
+
<td>
|
|
2450
|
+
<pre class="lines">
|
|
2451
|
+
|
|
2452
|
+
|
|
2453
|
+
192
|
|
2454
|
+
193
|
|
2455
|
+
194
|
|
2456
|
+
195
|
|
2457
|
+
196
|
|
2458
|
+
197
|
|
2459
|
+
198
|
|
2460
|
+
199</pre>
|
|
2461
|
+
</td>
|
|
2462
|
+
<td>
|
|
2463
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 192</span>
|
|
2464
|
+
|
|
2465
|
+
<span class='kw'>def</span> <span class='id save_all'>save_all</span><span class='lparen'>(</span><span class='rparen'>)</span>
|
|
2466
|
+
<span class='ivar'>@store</span><span class='period'>.</span><span class='id transaction'>transaction</span> <span class='kw'>do</span>
|
|
2467
|
+
<span class='ivar'>@save_in_progress</span> <span class='op'>=</span> <span class='kw'>true</span> <span class='comment'># allows saving
|
|
2468
|
+
</span> <span class='ivar'>@object_states</span><span class='period'>.</span><span class='id reset_status'>reset_status</span>
|
|
2469
|
+
<span class='ivar'>@object_states</span><span class='period'>.</span><span class='id save'>save</span>
|
|
2470
|
+
<span class='kw'>end</span>
|
|
2471
|
+
<span class='ivar'>@save_in_progress</span> <span class='op'>=</span> <span class='kw'>false</span>
|
|
2472
|
+
<span class='kw'>end</span></pre>
|
|
2473
|
+
</td>
|
|
2474
|
+
</tr>
|
|
2475
|
+
</table>
|
|
2476
|
+
</div>
|
|
2477
|
+
|
|
2478
|
+
<div class="method_details ">
|
|
2479
|
+
<p class="signature " id="serialize-instance_method">
|
|
2480
|
+
|
|
2481
|
+
- (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>serialize</strong>(object)
|
|
2482
|
+
|
|
2483
|
+
|
|
2484
|
+
|
|
2485
|
+
</p><div class="docstring">
|
|
2486
|
+
<div class="discussion">
|
|
2487
|
+
|
|
2488
|
+
<div class="note todo">
|
|
2489
|
+
<strong>TODO:</strong>
|
|
2490
|
+
<div class='inline'>
|
|
2491
|
+
<p>doc</p>
|
|
2492
|
+
</div>
|
|
2493
|
+
</div>
|
|
2494
|
+
|
|
2495
|
+
|
|
2496
|
+
|
|
2497
|
+
</div>
|
|
2498
|
+
</div>
|
|
2499
|
+
<div class="tags">
|
|
2500
|
+
|
|
2501
|
+
|
|
2502
|
+
</div><table class="source_code">
|
|
2503
|
+
<tr>
|
|
2504
|
+
<td>
|
|
2505
|
+
<pre class="lines">
|
|
2506
|
+
|
|
2507
|
+
|
|
2508
|
+
173
|
|
2509
|
+
174
|
|
2510
|
+
175</pre>
|
|
2511
|
+
</td>
|
|
2512
|
+
<td>
|
|
2513
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 173</span>
|
|
2514
|
+
|
|
2515
|
+
<span class='kw'>def</span> <span class='id serialize'>serialize</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
2516
|
+
<span class='id object'>object</span>
|
|
2517
|
+
<span class='kw'>end</span></pre>
|
|
2518
|
+
</td>
|
|
2519
|
+
</tr>
|
|
2520
|
+
</table>
|
|
2521
|
+
</div>
|
|
2522
|
+
|
|
2523
|
+
<div class="method_details ">
|
|
2524
|
+
<p class="signature " id="state_for-instance_method">
|
|
2525
|
+
|
|
2526
|
+
- (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>state_for</strong>(object)
|
|
2527
|
+
|
|
2528
|
+
|
|
2529
|
+
|
|
2530
|
+
</p><div class="docstring">
|
|
2531
|
+
<div class="discussion">
|
|
2532
|
+
|
|
2533
|
+
<div class="note todo">
|
|
2534
|
+
<strong>TODO:</strong>
|
|
2535
|
+
<div class='inline'></div>
|
|
2536
|
+
</div>
|
|
2537
|
+
|
|
2538
|
+
|
|
2539
|
+
|
|
2540
|
+
</div>
|
|
2541
|
+
</div>
|
|
2542
|
+
<div class="tags">
|
|
2543
|
+
|
|
2544
|
+
|
|
2545
|
+
</div><table class="source_code">
|
|
2546
|
+
<tr>
|
|
2547
|
+
<td>
|
|
2548
|
+
<pre class="lines">
|
|
2549
|
+
|
|
2550
|
+
|
|
2551
|
+
111
|
|
2552
|
+
112
|
|
2553
|
+
113</pre>
|
|
2554
|
+
</td>
|
|
2555
|
+
<td>
|
|
2556
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 111</span>
|
|
2557
|
+
|
|
2558
|
+
<span class='kw'>def</span> <span class='id state_for'>state_for</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
2559
|
+
<span class='kw'>return</span> <span class='id persistor_for'>persistor_for</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span><span class='period'>.</span><span class='id state_for'>state_for</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
2560
|
+
<span class='kw'>end</span></pre>
|
|
2561
|
+
</td>
|
|
2562
|
+
</tr>
|
|
2563
|
+
</table>
|
|
2564
|
+
</div>
|
|
2565
|
+
|
|
2566
|
+
<div class="method_details ">
|
|
2567
|
+
<p class="signature " id="states_for-instance_method">
|
|
2568
|
+
|
|
2569
|
+
- (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>states_for</strong>(objects)
|
|
2570
|
+
|
|
2571
|
+
|
|
2572
|
+
|
|
2573
|
+
</p><table class="source_code">
|
|
2574
|
+
<tr>
|
|
2575
|
+
<td>
|
|
2576
|
+
<pre class="lines">
|
|
2577
|
+
|
|
2578
|
+
|
|
2579
|
+
115
|
|
2580
|
+
116
|
|
2581
|
+
117</pre>
|
|
2582
|
+
</td>
|
|
2583
|
+
<td>
|
|
2584
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 115</span>
|
|
2585
|
+
|
|
2586
|
+
<span class='kw'>def</span> <span class='id states_for'>states_for</span><span class='lparen'>(</span><span class='id objects'>objects</span><span class='rparen'>)</span>
|
|
2587
|
+
<span class='id objects'>objects</span> <span class='op'>&&</span> <span class='id objects'>objects</span><span class='period'>.</span><span class='id map'>map</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id o'>o</span><span class='op'>|</span> <span class='id state_for'>state_for</span><span class='lparen'>(</span><span class='id o'>o</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
|
2588
|
+
<span class='kw'>end</span></pre>
|
|
2589
|
+
</td>
|
|
2590
|
+
</tr>
|
|
2591
|
+
</table>
|
|
2592
|
+
</div>
|
|
2593
|
+
|
|
2594
|
+
<div class="method_details ">
|
|
2595
|
+
<p class="signature " id="unpack_uuid-instance_method">
|
|
2596
|
+
|
|
2597
|
+
- (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>unpack_uuid</strong>(uuid)
|
|
2598
|
+
|
|
2599
|
+
|
|
2600
|
+
|
|
2601
|
+
</p><table class="source_code">
|
|
2602
|
+
<tr>
|
|
2603
|
+
<td>
|
|
2604
|
+
<pre class="lines">
|
|
2605
|
+
|
|
2606
|
+
|
|
2607
|
+
168
|
|
2608
|
+
169
|
|
2609
|
+
170</pre>
|
|
2610
|
+
</td>
|
|
2611
|
+
<td>
|
|
2612
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 168</span>
|
|
2613
|
+
|
|
2614
|
+
<span class='kw'>def</span> <span class='id unpack_uuid'>unpack_uuid</span><span class='lparen'>(</span><span class='id uuid'>uuid</span><span class='rparen'>)</span>
|
|
2615
|
+
<span class='kw'>self</span><span class='period'>.</span><span class='id class'>class</span><span class='period'>.</span><span class='id unpack_uuid'>unpack_uuid</span><span class='lparen'>(</span><span class='id uuid'>uuid</span><span class='rparen'>)</span>
|
|
2616
|
+
<span class='kw'>end</span></pre>
|
|
2617
|
+
</td>
|
|
2618
|
+
</tr>
|
|
2619
|
+
</table>
|
|
2620
|
+
</div>
|
|
2621
|
+
|
|
2622
|
+
<div class="method_details ">
|
|
2623
|
+
<p class="signature " id="unserialize-instance_method">
|
|
2624
|
+
|
|
2625
|
+
- (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>unserialize</strong>(object)
|
|
2626
|
+
|
|
2627
|
+
|
|
2628
|
+
|
|
2629
|
+
</p><table class="source_code">
|
|
2630
|
+
<tr>
|
|
2631
|
+
<td>
|
|
2632
|
+
<pre class="lines">
|
|
2633
|
+
|
|
2634
|
+
|
|
2635
|
+
177
|
|
2636
|
+
178
|
|
2637
|
+
179</pre>
|
|
2638
|
+
</td>
|
|
2639
|
+
<td>
|
|
2640
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 177</span>
|
|
2641
|
+
|
|
2642
|
+
<span class='kw'>def</span> <span class='id unserialize'>unserialize</span><span class='lparen'>(</span><span class='id object'>object</span><span class='rparen'>)</span>
|
|
2643
|
+
<span class='id object'>object</span>
|
|
2644
|
+
<span class='kw'>end</span></pre>
|
|
2645
|
+
</td>
|
|
2646
|
+
</tr>
|
|
2647
|
+
</table>
|
|
2648
|
+
</div>
|
|
2649
|
+
|
|
2650
|
+
<div class="method_details ">
|
|
2651
|
+
<p class="signature " id="with_session-instance_method">
|
|
2652
|
+
|
|
2653
|
+
- (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>with_session</strong>(*params) {|session| ... }
|
|
2654
|
+
|
|
2655
|
+
|
|
2656
|
+
|
|
2657
|
+
</p><div class="docstring">
|
|
2658
|
+
<div class="discussion">
|
|
2659
|
+
|
|
2660
|
+
<p>Execute a block and save every 'marked' object in a transaction at the End.</p>
|
|
2661
|
+
|
|
2662
|
+
|
|
2663
|
+
</div>
|
|
2664
|
+
</div>
|
|
2665
|
+
<div class="tags">
|
|
2666
|
+
|
|
2667
|
+
<h3>Yield Parameters:</h3>
|
|
2668
|
+
<ul class="yieldparam">
|
|
2669
|
+
|
|
2670
|
+
<li>
|
|
2671
|
+
|
|
2672
|
+
<span class='name'>session</span>
|
|
2673
|
+
|
|
2674
|
+
|
|
2675
|
+
<span class='type'>(<tt><span class='object_link'><a href="" title="Lims::Core::Persistence::Session (class)">Session</a></span></tt>)</span>
|
|
2676
|
+
|
|
2677
|
+
|
|
2678
|
+
|
|
2679
|
+
—
|
|
2680
|
+
<div class='inline'>
|
|
2681
|
+
<p>the created session.</p>
|
|
2682
|
+
</div>
|
|
2683
|
+
|
|
2684
|
+
</li>
|
|
2685
|
+
|
|
2686
|
+
</ul>
|
|
2687
|
+
<h3>Returns:</h3>
|
|
2688
|
+
<ul class="return">
|
|
2689
|
+
|
|
2690
|
+
<li>
|
|
2691
|
+
|
|
2692
|
+
|
|
2693
|
+
<span class='type'></span>
|
|
2694
|
+
|
|
2695
|
+
|
|
2696
|
+
|
|
2697
|
+
|
|
2698
|
+
<div class='inline'>
|
|
2699
|
+
<p>the value of the block</p>
|
|
2700
|
+
</div>
|
|
2701
|
+
|
|
2702
|
+
</li>
|
|
2703
|
+
|
|
2704
|
+
</ul>
|
|
2705
|
+
|
|
2706
|
+
</div><table class="source_code">
|
|
2707
|
+
<tr>
|
|
2708
|
+
<td>
|
|
2709
|
+
<pre class="lines">
|
|
2710
|
+
|
|
2711
|
+
|
|
2712
|
+
58
|
|
2713
|
+
59
|
|
2714
|
+
60
|
|
2715
|
+
61
|
|
2716
|
+
62
|
|
2717
|
+
63
|
|
2718
|
+
64
|
|
2719
|
+
65
|
|
2720
|
+
66
|
|
2721
|
+
67
|
|
2722
|
+
68
|
|
2723
|
+
69</pre>
|
|
2724
|
+
</td>
|
|
2725
|
+
<td>
|
|
2726
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/persistence/session.rb', line 58</span>
|
|
2727
|
+
|
|
2728
|
+
<span class='kw'>def</span> <span class='id with_session'>with_session</span><span class='lparen'>(</span><span class='op'>*</span><span class='id params'>params</span><span class='comma'>,</span> <span class='op'>&</span><span class='id block'>block</span><span class='rparen'>)</span>
|
|
2729
|
+
<span class='kw'>return</span> <span class='id block'>block</span><span class='lbracket'>[</span><span class='kw'>self</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='ivar'>@in_session</span>
|
|
2730
|
+
<span class='kw'>begin</span>
|
|
2731
|
+
<span class='ivar'>@in_session</span> <span class='op'>=</span> <span class='kw'>true</span>
|
|
2732
|
+
<span class='id to_return'>to_return</span> <span class='op'>=</span> <span class='id block'>block</span><span class='lbracket'>[</span><span class='kw'>self</span><span class='rbracket'>]</span>
|
|
2733
|
+
<span class='ivar'>@in_session</span> <span class='op'>=</span> <span class='kw'>false</span>
|
|
2734
|
+
<span class='id save_all'>save_all</span>
|
|
2735
|
+
<span class='kw'>return</span> <span class='id to_return'>to_return</span>
|
|
2736
|
+
<span class='kw'>ensure</span>
|
|
2737
|
+
<span class='ivar'>@in_session</span> <span class='op'>=</span> <span class='kw'>false</span>
|
|
2738
|
+
<span class='kw'>end</span>
|
|
2739
|
+
<span class='kw'>end</span></pre>
|
|
2740
|
+
</td>
|
|
2741
|
+
</tr>
|
|
2742
|
+
</table>
|
|
2743
|
+
</div>
|
|
2744
|
+
|
|
2745
|
+
</div>
|
|
2746
|
+
|
|
2747
|
+
</div>
|
|
2748
|
+
|
|
2749
|
+
|
|
2750
|
+
</body>
|
|
2751
|
+
</html>
|