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,91 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
4
|
+
<head>
|
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
6
|
+
<title>
|
|
7
|
+
Module: Lims::Core::Action
|
|
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 (A)</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>
|
|
38
|
+
»
|
|
39
|
+
<span class="title">Action</span>
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
<div id="search">
|
|
46
|
+
|
|
47
|
+
<a id="class_list_link" href="#">Class List</a>
|
|
48
|
+
|
|
49
|
+
<a id="method_list_link" href="#">Method List</a>
|
|
50
|
+
|
|
51
|
+
<a id="file_list_link" href="#">File List</a>
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<div class="clear"></div>
|
|
55
|
+
</div>
|
|
56
|
+
|
|
57
|
+
<iframe id="search_frame"></iframe>
|
|
58
|
+
|
|
59
|
+
<div id="content"><h1>Module: Lims::Core::Action
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
</h1>
|
|
64
|
+
|
|
65
|
+
<dl class="box">
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
<dt class="r1 last">Defined in:</dt>
|
|
75
|
+
<dd class="r1 last">spec/actions/labware_action_spec.rb</dd>
|
|
76
|
+
|
|
77
|
+
</dl>
|
|
78
|
+
<div class="clear"></div>
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
</div>
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
</body>
|
|
91
|
+
</html>
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
4
|
+
<head>
|
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
6
|
+
<title>
|
|
7
|
+
Module: Lims::Core::Actions
|
|
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 (A)</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>
|
|
38
|
+
»
|
|
39
|
+
<span class="title">Actions</span>
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
<div id="search">
|
|
46
|
+
|
|
47
|
+
<a id="class_list_link" href="#">Class List</a>
|
|
48
|
+
|
|
49
|
+
<a id="method_list_link" href="#">Method List</a>
|
|
50
|
+
|
|
51
|
+
<a id="file_list_link" href="#">File List</a>
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<div class="clear"></div>
|
|
55
|
+
</div>
|
|
56
|
+
|
|
57
|
+
<iframe id="search_frame"></iframe>
|
|
58
|
+
|
|
59
|
+
<div id="content"><h1>Module: Lims::Core::Actions
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
</h1>
|
|
64
|
+
|
|
65
|
+
<dl class="box">
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
<dt class="r1 last">Defined in:</dt>
|
|
75
|
+
<dd class="r1 last">lib/lims-core/actions.rb<span class="defines">,<br />
|
|
76
|
+
lib/lims-core/actions/action.rb,<br /> spec/actions/action_group_spec.rb,<br /> lib/lims-core/actions/bulk_action.rb,<br /> lib/lims-core/actions/action_group.rb</span>
|
|
77
|
+
</dd>
|
|
78
|
+
|
|
79
|
+
</dl>
|
|
80
|
+
<div class="clear"></div>
|
|
81
|
+
|
|
82
|
+
<h2>Overview</h2><div class="docstring">
|
|
83
|
+
<div class="discussion">
|
|
84
|
+
|
|
85
|
+
<p>Actions are high level end user groups of elementary steps that a user can
|
|
86
|
+
perform on things . They can be seen as use-case, scenario and will
|
|
87
|
+
probably each correspond to one call in the API.</p>
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
92
|
+
<div class="tags">
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
</div><h2>Defined Under Namespace</h2>
|
|
96
|
+
<p class="children">
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
<strong class="modules">Modules:</strong> <span class='object_link'><a href="Actions/Action.html" title="Lims::Core::Actions::Action (module)">Action</a></span>, <span class='object_link'><a href="Actions/ActionGroup.html" title="Lims::Core::Actions::ActionGroup (module)">ActionGroup</a></span>, <span class='object_link'><a href="Actions/BulkAction.html" title="Lims::Core::Actions::BulkAction (module)">BulkAction</a></span>, <span class='object_link'><a href="Actions/TestActionGroup.html" title="Lims::Core::Actions::TestActionGroup (module)">TestActionGroup</a></span>
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
</p>
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
</div>
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
</body>
|
|
116
|
+
</html>
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
4
|
+
<head>
|
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
6
|
+
<title>
|
|
7
|
+
Module: Lims::Core::Actions::Action
|
|
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 (A)</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="../Actions.html" title="Lims::Core::Actions (module)">Actions</a></span></span>
|
|
38
|
+
»
|
|
39
|
+
<span class="title">Action</span>
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
<div id="search">
|
|
46
|
+
|
|
47
|
+
<a id="class_list_link" href="#">Class List</a>
|
|
48
|
+
|
|
49
|
+
<a id="method_list_link" href="#">Method List</a>
|
|
50
|
+
|
|
51
|
+
<a id="file_list_link" href="#">File List</a>
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<div class="clear"></div>
|
|
55
|
+
</div>
|
|
56
|
+
|
|
57
|
+
<iframe id="search_frame"></iframe>
|
|
58
|
+
|
|
59
|
+
<div id="content"><h1>Module: Lims::Core::Actions::Action
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
</h1>
|
|
64
|
+
|
|
65
|
+
<dl class="box">
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
<dt class="r1">Included in:</dt>
|
|
74
|
+
<dd class="r1"><span class='object_link'><a href="TestActionGroup/Action.html" title="Lims::Core::Actions::TestActionGroup::Action (class)">TestActionGroup::Action</a></span>, <span class='object_link'><a href="../Persistence/Search/CreateSearch.html" title="Lims::Core::Persistence::Search::CreateSearch (class)">Persistence::Search::CreateSearch</a></span></dd>
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
<dt class="r2 last">Defined in:</dt>
|
|
79
|
+
<dd class="r2 last">lib/lims-core/actions/action.rb</dd>
|
|
80
|
+
|
|
81
|
+
</dl>
|
|
82
|
+
<div class="clear"></div>
|
|
83
|
+
|
|
84
|
+
<h2>Overview</h2><div class="docstring">
|
|
85
|
+
<div class="discussion">
|
|
86
|
+
|
|
87
|
+
<p>This mixin add the Action behavior to a Class. An action can be called and
|
|
88
|
+
reverted (if possible) within a <span class='object_link'><a href="../Persistence/Session.html" title="Lims::Core::Persistence::Session (class)">session</a></span>. For this,
|
|
89
|
+
the action must implements the <span class='object_link'><a href="Action/AfterEval.html#_call_in_session-instance_method" title="Lims::Core::Actions::Action::AfterEval#_call_in_session (method)">_call_in_session</a></span> and <span class='object_link'><a href="Action/AfterEval.html#_revert_in_session-instance_method" title="Lims::Core::Actions::Action::AfterEval#_revert_in_session (method)">_revert_in_session</a></span>. Those methods are private and take a session as a
|
|
90
|
+
parameter. The public equivalent (call/revert) will create a session (using
|
|
91
|
+
the store) and call the corresponding methods.</p>
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
<div class="tags">
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
</div><h2>Defined Under Namespace</h2>
|
|
100
|
+
<p class="children">
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
<strong class="modules">Modules:</strong> <span class='object_link'><a href="Action/AfterEval.html" title="Lims::Core::Actions::Action::AfterEval (module)">AfterEval</a></span>
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
<strong class="classes">Classes:</strong> <span class='object_link'><a href="Action/InvalidParameters.html" title="Lims::Core::Actions::Action::InvalidParameters (class)">InvalidParameters</a></span>
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
</p>
|
|
111
|
+
|
|
112
|
+
<h2>Constant Summary</h2>
|
|
113
|
+
|
|
114
|
+
<dl class="constants">
|
|
115
|
+
|
|
116
|
+
<dt id="UnrevertableAction-constant" class="">UnrevertableAction =
|
|
117
|
+
|
|
118
|
+
</dt>
|
|
119
|
+
<dd><pre class="code"><span class='const'>Class</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='const'>StandardError</span><span class='rparen'>)</span></pre></dd>
|
|
120
|
+
|
|
121
|
+
</dl>
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
<h2>
|
|
130
|
+
Class Method Summary
|
|
131
|
+
<small>(<a href="#" class="summary_toggle">collapse</a>)</small>
|
|
132
|
+
</h2>
|
|
133
|
+
|
|
134
|
+
<ul class="summary">
|
|
135
|
+
|
|
136
|
+
<li class="public ">
|
|
137
|
+
<span class="summary_signature">
|
|
138
|
+
|
|
139
|
+
<a href="#included-class_method" title="included (class method)">+ (Object) <strong>included</strong>(klass) </a>
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
</span>
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
|
153
|
+
|
|
154
|
+
</li>
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
</ul>
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
<div id="class_method_details" class="method_details_list">
|
|
163
|
+
<h2>Class Method Details</h2>
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
<div class="method_details first">
|
|
167
|
+
<p class="signature first" id="included-class_method">
|
|
168
|
+
|
|
169
|
+
+ (<tt><span class='object_link'><a href="../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>included</strong>(klass)
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
</p><table class="source_code">
|
|
174
|
+
<tr>
|
|
175
|
+
<td>
|
|
176
|
+
<pre class="lines">
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
18
|
|
180
|
+
19
|
|
181
|
+
20
|
|
182
|
+
21
|
|
183
|
+
22
|
|
184
|
+
23
|
|
185
|
+
24
|
|
186
|
+
25
|
|
187
|
+
26
|
|
188
|
+
27
|
|
189
|
+
28</pre>
|
|
190
|
+
</td>
|
|
191
|
+
<td>
|
|
192
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/actions/action.rb', line 18</span>
|
|
193
|
+
|
|
194
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id included'>included</span><span class='lparen'>(</span><span class='id klass'>klass</span><span class='rparen'>)</span>
|
|
195
|
+
<span class='id klass'>klass</span><span class='period'>.</span><span class='id class_eval'>class_eval</span> <span class='kw'>do</span>
|
|
196
|
+
<span class='id include'>include</span> <span class='const'>Virtus</span>
|
|
197
|
+
<span class='id include'>include</span> <span class='const'>Aequitas</span>
|
|
198
|
+
<span class='id attribute'>attribute</span> <span class='symbol'>:store</span><span class='comma'>,</span> <span class='const'>Persistence</span><span class='op'>::</span><span class='const'>Store</span><span class='comma'>,</span> <span class='symbol'>:required</span> <span class='op'>=></span> <span class='kw'>true</span>
|
|
199
|
+
<span class='id attribute'>attribute</span> <span class='symbol'>:user</span><span class='comma'>,</span> <span class='const'>String</span><span class='comma'>,</span> <span class='symbol'>:required</span> <span class='op'>=></span> <span class='kw'>true</span>
|
|
200
|
+
<span class='id attribute'>attribute</span> <span class='symbol'>:application</span><span class='comma'>,</span> <span class='const'>String</span><span class='comma'>,</span> <span class='symbol'>:required</span> <span class='op'>=></span> <span class='kw'>true</span>
|
|
201
|
+
<span class='id attribute'>attribute</span> <span class='symbol'>:result</span><span class='comma'>,</span> <span class='const'>Object</span>
|
|
202
|
+
<span class='id include'>include</span> <span class='const'>AfterEval</span> <span class='comment'># hack so initialize would be called properly
|
|
203
|
+
</span> <span class='kw'>end</span>
|
|
204
|
+
<span class='kw'>end</span></pre>
|
|
205
|
+
</td>
|
|
206
|
+
</tr>
|
|
207
|
+
</table>
|
|
208
|
+
</div>
|
|
209
|
+
|
|
210
|
+
</div>
|
|
211
|
+
|
|
212
|
+
</div>
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
</body>
|
|
216
|
+
</html>
|
|
@@ -0,0 +1,853 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
4
|
+
<head>
|
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
6
|
+
<title>
|
|
7
|
+
Module: Lims::Core::Actions::Action::AfterEval
|
|
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 (A)</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="../../Actions.html" title="Lims::Core::Actions (module)">Actions</a></span></span> » <span class='title'><span class='object_link'><a href="../Action.html" title="Lims::Core::Actions::Action (module)">Action</a></span></span>
|
|
38
|
+
»
|
|
39
|
+
<span class="title">AfterEval</span>
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
<div id="search">
|
|
46
|
+
|
|
47
|
+
<a id="class_list_link" href="#">Class List</a>
|
|
48
|
+
|
|
49
|
+
<a id="method_list_link" href="#">Method List</a>
|
|
50
|
+
|
|
51
|
+
<a id="file_list_link" href="#">File List</a>
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<div class="clear"></div>
|
|
55
|
+
</div>
|
|
56
|
+
|
|
57
|
+
<iframe id="search_frame"></iframe>
|
|
58
|
+
|
|
59
|
+
<div id="content"><h1>Module: Lims::Core::Actions::Action::AfterEval
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
</h1>
|
|
64
|
+
|
|
65
|
+
<dl class="box">
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
<dt class="r1 last">Defined in:</dt>
|
|
75
|
+
<dd class="r1 last">lib/lims-core/actions/action.rb</dd>
|
|
76
|
+
|
|
77
|
+
</dl>
|
|
78
|
+
<div class="clear"></div>
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
<h2>
|
|
87
|
+
Instance Method Summary
|
|
88
|
+
<small>(<a href="#" class="summary_toggle">collapse</a>)</small>
|
|
89
|
+
</h2>
|
|
90
|
+
|
|
91
|
+
<ul class="summary">
|
|
92
|
+
|
|
93
|
+
<li class="private ">
|
|
94
|
+
<span class="summary_signature">
|
|
95
|
+
|
|
96
|
+
<a href="#_call_in_session-instance_method" title="#_call_in_session (instance method)">- (Object) <strong>_call_in_session</strong>(session) </a>
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
</span>
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
<span class="note title private">private</span>
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
<span class="summary_desc"><div class='inline'>
|
|
110
|
+
<p>This is the main method of an action, called to effectively perform an
|
|
111
|
+
action.</p>
|
|
112
|
+
</div></span>
|
|
113
|
+
|
|
114
|
+
</li>
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
<li class="private ">
|
|
118
|
+
<span class="summary_signature">
|
|
119
|
+
|
|
120
|
+
<a href="#_objects_to_save-instance_method" title="#_objects_to_save (instance method)">- (Object) <strong>_objects_to_save</strong> </a>
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
</span>
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
<span class="note title private">private</span>
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
<span class="summary_desc"><div class='inline'>
|
|
134
|
+
<p>List of objects to save (add to the session).</p>
|
|
135
|
+
</div></span>
|
|
136
|
+
|
|
137
|
+
</li>
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
<li class="private ">
|
|
141
|
+
<span class="summary_signature">
|
|
142
|
+
|
|
143
|
+
<a href="#_revert_in_session-instance_method" title="#_revert_in_session (instance method)">- (Object) <strong>_revert_in_session</strong>(session) </a>
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
</span>
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
<span class="note title private">private</span>
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
<span class="summary_desc"><div class='inline'>
|
|
157
|
+
<p>how to revert the action, if possible.</p>
|
|
158
|
+
</div></span>
|
|
159
|
+
|
|
160
|
+
</li>
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
<li class="public ">
|
|
164
|
+
<span class="summary_signature">
|
|
165
|
+
|
|
166
|
+
<a href="#call-instance_method" title="#call (instance method)">- (Object) <strong>call</strong> {|a, session| ... }</a>
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
</span>
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
<span class="summary_desc"><div class='inline'>
|
|
180
|
+
<p>Executes the action.</p>
|
|
181
|
+
</div></span>
|
|
182
|
+
|
|
183
|
+
</li>
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
<li class="public ">
|
|
187
|
+
<span class="summary_signature">
|
|
188
|
+
|
|
189
|
+
<a href="#errors_to_hash-instance_method" title="#errors_to_hash (instance method)">- (Object) <strong>errors_to_hash</strong> </a>
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
</span>
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
|
203
|
+
|
|
204
|
+
</li>
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
<li class="public ">
|
|
208
|
+
<span class="summary_signature">
|
|
209
|
+
|
|
210
|
+
<a href="#initialize-instance_method" title="#initialize (instance method)">- (AfterEval) <strong>initialize</strong>(*args, &initializer) </a>
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
</span>
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
<span class="summary_desc"><div class='inline'>
|
|
224
|
+
<p>Initialize a new actions 'Common' parameters are set as argument whereas
|
|
225
|
+
specific ones are set on a dummy object via the block.</p>
|
|
226
|
+
</div></span>
|
|
227
|
+
|
|
228
|
+
</li>
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
<li class="public ">
|
|
232
|
+
<span class="summary_signature">
|
|
233
|
+
|
|
234
|
+
<a href="#revert-instance_method" title="#revert (instance method)">- (Object) <strong>revert</strong> </a>
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
</span>
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
<span class="summary_desc"><div class='inline'>
|
|
248
|
+
<p>Execute the opposite of the action if possible.</p>
|
|
249
|
+
</div></span>
|
|
250
|
+
|
|
251
|
+
</li>
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
<li class="public ">
|
|
255
|
+
<span class="summary_signature">
|
|
256
|
+
|
|
257
|
+
<a href="#with_session-instance_method" title="#with_session (instance method)">- (Object, False) <strong>with_session</strong>(*args, &block) </a>
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
</span>
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
<span class="summary_desc"><div class='inline'>
|
|
271
|
+
<p>Execute the given block within a new session.</p>
|
|
272
|
+
</div></span>
|
|
273
|
+
|
|
274
|
+
</li>
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
</ul>
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
<div id="instance_method_details" class="method_details_list">
|
|
283
|
+
<h2>Instance Method Details</h2>
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
<div class="method_details first">
|
|
287
|
+
<p class="signature first" id="_call_in_session-instance_method">
|
|
288
|
+
|
|
289
|
+
- (<tt><span class='object_link'><a href="../../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>_call_in_session</strong>(session) <span class="extras">(private)</span>
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
</p><div class="docstring">
|
|
294
|
+
<div class="discussion">
|
|
295
|
+
|
|
296
|
+
<p>This is the main method of an action, called to effectively perform an
|
|
297
|
+
action.</p>
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
</div>
|
|
301
|
+
</div>
|
|
302
|
+
<div class="tags">
|
|
303
|
+
|
|
304
|
+
<h3>Raises:</h3>
|
|
305
|
+
<ul class="raise">
|
|
306
|
+
|
|
307
|
+
<li>
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
<span class='type'>(<tt>NotImplementedError</tt>)</span>
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
</li>
|
|
315
|
+
|
|
316
|
+
</ul>
|
|
317
|
+
|
|
318
|
+
</div><table class="source_code">
|
|
319
|
+
<tr>
|
|
320
|
+
<td>
|
|
321
|
+
<pre class="lines">
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
159
|
|
325
|
+
160
|
|
326
|
+
161</pre>
|
|
327
|
+
</td>
|
|
328
|
+
<td>
|
|
329
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/actions/action.rb', line 159</span>
|
|
330
|
+
|
|
331
|
+
<span class='kw'>def</span> <span class='id _call_in_session'>_call_in_session</span><span class='lparen'>(</span><span class='id session'>session</span><span class='rparen'>)</span>
|
|
332
|
+
<span class='id raise'>raise</span> <span class='const'>NotImplementedError</span>
|
|
333
|
+
<span class='kw'>end</span></pre>
|
|
334
|
+
</td>
|
|
335
|
+
</tr>
|
|
336
|
+
</table>
|
|
337
|
+
</div>
|
|
338
|
+
|
|
339
|
+
<div class="method_details ">
|
|
340
|
+
<p class="signature " id="_objects_to_save-instance_method">
|
|
341
|
+
|
|
342
|
+
- (<tt><span class='object_link'><a href="../../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>_objects_to_save</strong> <span class="extras">(private)</span>
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
|
|
346
|
+
</p><div class="docstring">
|
|
347
|
+
<div class="discussion">
|
|
348
|
+
|
|
349
|
+
<p>List of objects to save (add to the session). By default get all attributes
|
|
350
|
+
and the resulth. Override if need (to add a created resource for example).</p>
|
|
351
|
+
|
|
352
|
+
|
|
353
|
+
</div>
|
|
354
|
+
</div>
|
|
355
|
+
<div class="tags">
|
|
356
|
+
|
|
357
|
+
<h3>Returns:</h3>
|
|
358
|
+
<ul class="return">
|
|
359
|
+
|
|
360
|
+
<li>
|
|
361
|
+
|
|
362
|
+
|
|
363
|
+
<span class='type'></span>
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
|
|
367
|
+
|
|
368
|
+
<div class='inline'>
|
|
369
|
+
<p>a list of object to save</p>
|
|
370
|
+
</div>
|
|
371
|
+
|
|
372
|
+
</li>
|
|
373
|
+
|
|
374
|
+
</ul>
|
|
375
|
+
|
|
376
|
+
</div><table class="source_code">
|
|
377
|
+
<tr>
|
|
378
|
+
<td>
|
|
379
|
+
<pre class="lines">
|
|
380
|
+
|
|
381
|
+
|
|
382
|
+
173
|
|
383
|
+
174
|
|
384
|
+
175</pre>
|
|
385
|
+
</td>
|
|
386
|
+
<td>
|
|
387
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/actions/action.rb', line 173</span>
|
|
388
|
+
|
|
389
|
+
<span class='kw'>def</span> <span class='id _objects_to_save'>_objects_to_save</span>
|
|
390
|
+
<span class='lbracket'>[</span><span class='id result'>result</span><span class='comma'>,</span> <span class='op'>*</span><span class='id attributes'>attributes</span><span class='period'>.</span><span class='id map'>map</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id a'>a</span><span class='op'>|</span> <span class='id a'>a</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span> <span class='rbrace'>}</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id select'>select</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id o'>o</span><span class='op'>|</span> <span class='id o'>o</span><span class='period'>.</span><span class='id is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Resource</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
|
391
|
+
<span class='kw'>end</span></pre>
|
|
392
|
+
</td>
|
|
393
|
+
</tr>
|
|
394
|
+
</table>
|
|
395
|
+
</div>
|
|
396
|
+
|
|
397
|
+
<div class="method_details ">
|
|
398
|
+
<p class="signature " id="_revert_in_session-instance_method">
|
|
399
|
+
|
|
400
|
+
- (<tt><span class='object_link'><a href="../../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>_revert_in_session</strong>(session) <span class="extras">(private)</span>
|
|
401
|
+
|
|
402
|
+
|
|
403
|
+
|
|
404
|
+
</p><div class="docstring">
|
|
405
|
+
<div class="discussion">
|
|
406
|
+
|
|
407
|
+
<p>how to revert the action, if possible.</p>
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
</div>
|
|
411
|
+
</div>
|
|
412
|
+
<div class="tags">
|
|
413
|
+
|
|
414
|
+
|
|
415
|
+
</div><table class="source_code">
|
|
416
|
+
<tr>
|
|
417
|
+
<td>
|
|
418
|
+
<pre class="lines">
|
|
419
|
+
|
|
420
|
+
|
|
421
|
+
165
|
|
422
|
+
166
|
|
423
|
+
167</pre>
|
|
424
|
+
</td>
|
|
425
|
+
<td>
|
|
426
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/actions/action.rb', line 165</span>
|
|
427
|
+
|
|
428
|
+
<span class='kw'>def</span> <span class='id _revert_in_session'>_revert_in_session</span><span class='lparen'>(</span><span class='id session'>session</span><span class='rparen'>)</span>
|
|
429
|
+
<span class='id raise'>raise</span> <span class='const'>UnrevertableAction</span><span class='lparen'>(</span><span class='kw'>self</span><span class='rparen'>)</span>
|
|
430
|
+
<span class='kw'>end</span></pre>
|
|
431
|
+
</td>
|
|
432
|
+
</tr>
|
|
433
|
+
</table>
|
|
434
|
+
</div>
|
|
435
|
+
|
|
436
|
+
<div class="method_details ">
|
|
437
|
+
<p class="signature " id="call-instance_method">
|
|
438
|
+
|
|
439
|
+
- (<tt><span class='object_link'><a href="../../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>call</strong> {|a, session| ... }
|
|
440
|
+
|
|
441
|
+
|
|
442
|
+
|
|
443
|
+
</p><div class="docstring">
|
|
444
|
+
<div class="discussion">
|
|
445
|
+
|
|
446
|
+
<p>Executes the action. This is a wrapper around _call_in_session, and it
|
|
447
|
+
shouldn't be overriden. A block can be passed to be evaluated with the
|
|
448
|
+
session after the save session been saved. This is usefull to get ids of
|
|
449
|
+
saved object. False will be returned if the action failed (or parameters
|
|
450
|
+
are invalid)</p>
|
|
451
|
+
|
|
452
|
+
|
|
453
|
+
</div>
|
|
454
|
+
</div>
|
|
455
|
+
<div class="tags">
|
|
456
|
+
|
|
457
|
+
<h3>Yield Parameters:</h3>
|
|
458
|
+
<ul class="yieldparam">
|
|
459
|
+
|
|
460
|
+
<li>
|
|
461
|
+
|
|
462
|
+
<span class='name'>a</span>
|
|
463
|
+
|
|
464
|
+
|
|
465
|
+
<span class='type'>(<tt><span class='object_link'><a href="../Action.html" title="Lims::Core::Actions::Action (module)">Action</a></span></tt>)</span>
|
|
466
|
+
|
|
467
|
+
|
|
468
|
+
|
|
469
|
+
—
|
|
470
|
+
<div class='inline'>
|
|
471
|
+
<p>self</p>
|
|
472
|
+
</div>
|
|
473
|
+
|
|
474
|
+
</li>
|
|
475
|
+
|
|
476
|
+
<li>
|
|
477
|
+
|
|
478
|
+
<span class='name'>session</span>
|
|
479
|
+
|
|
480
|
+
|
|
481
|
+
<span class='type'>(<tt>Session</tt>)</span>
|
|
482
|
+
|
|
483
|
+
|
|
484
|
+
|
|
485
|
+
—
|
|
486
|
+
<div class='inline'>
|
|
487
|
+
<p>the current session.</p>
|
|
488
|
+
</div>
|
|
489
|
+
|
|
490
|
+
</li>
|
|
491
|
+
|
|
492
|
+
</ul>
|
|
493
|
+
<h3>Returns:</h3>
|
|
494
|
+
<ul class="return">
|
|
495
|
+
|
|
496
|
+
<li>
|
|
497
|
+
|
|
498
|
+
|
|
499
|
+
<span class='type'></span>
|
|
500
|
+
|
|
501
|
+
|
|
502
|
+
|
|
503
|
+
|
|
504
|
+
<div class='inline'>
|
|
505
|
+
<p>the value return by the block</p>
|
|
506
|
+
</div>
|
|
507
|
+
|
|
508
|
+
</li>
|
|
509
|
+
|
|
510
|
+
</ul>
|
|
511
|
+
|
|
512
|
+
</div><table class="source_code">
|
|
513
|
+
<tr>
|
|
514
|
+
<td>
|
|
515
|
+
<pre class="lines">
|
|
516
|
+
|
|
517
|
+
|
|
518
|
+
57
|
|
519
|
+
58
|
|
520
|
+
59
|
|
521
|
+
60
|
|
522
|
+
61</pre>
|
|
523
|
+
</td>
|
|
524
|
+
<td>
|
|
525
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/actions/action.rb', line 57</span>
|
|
526
|
+
|
|
527
|
+
<span class='kw'>def</span> <span class='id call'>call</span><span class='lparen'>(</span><span class='op'>&</span><span class='id after_save'>after_save</span><span class='rparen'>)</span>
|
|
528
|
+
<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>
|
|
529
|
+
<span class='id execute_and_store_result'>execute_and_store_result</span><span class='lparen'>(</span><span class='id session'>session</span><span class='comma'>,</span> <span class='op'>&</span><span class='id after_save'>after_save</span><span class='rparen'>)</span>
|
|
530
|
+
<span class='kw'>end</span><span class='period'>.</span><span class='id andtap'>andtap</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id block'>block</span><span class='op'>|</span> <span class='id block'>block</span><span class='period'>.</span><span class='id call'>call</span> <span class='rbrace'>}</span>
|
|
531
|
+
<span class='kw'>end</span></pre>
|
|
532
|
+
</td>
|
|
533
|
+
</tr>
|
|
534
|
+
</table>
|
|
535
|
+
</div>
|
|
536
|
+
|
|
537
|
+
<div class="method_details ">
|
|
538
|
+
<p class="signature " id="errors_to_hash-instance_method">
|
|
539
|
+
|
|
540
|
+
- (<tt><span class='object_link'><a href="../../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>errors_to_hash</strong>
|
|
541
|
+
|
|
542
|
+
|
|
543
|
+
|
|
544
|
+
</p><table class="source_code">
|
|
545
|
+
<tr>
|
|
546
|
+
<td>
|
|
547
|
+
<pre class="lines">
|
|
548
|
+
|
|
549
|
+
|
|
550
|
+
144
|
|
551
|
+
145
|
|
552
|
+
146
|
|
553
|
+
147
|
|
554
|
+
148
|
|
555
|
+
149
|
|
556
|
+
150
|
|
557
|
+
151
|
|
558
|
+
152
|
|
559
|
+
153
|
|
560
|
+
154
|
|
561
|
+
155</pre>
|
|
562
|
+
</td>
|
|
563
|
+
<td>
|
|
564
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/actions/action.rb', line 144</span>
|
|
565
|
+
|
|
566
|
+
<span class='kw'>def</span> <span class='id errors_to_hash'>errors_to_hash</span><span class='lparen'>(</span><span class='rparen'>)</span>
|
|
567
|
+
<span class='lbrace'>{</span><span class='rbrace'>}</span><span class='period'>.</span><span class='id tap'>tap</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id hash'>hash</span><span class='op'>|</span>
|
|
568
|
+
<span class='id errors'>errors</span><span class='period'>.</span><span class='id keys'>keys</span><span class='period'>.</span><span class='id each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id key'>key</span><span class='op'>|</span>
|
|
569
|
+
<span class='id hash'>hash</span><span class='lbracket'>[</span><span class='id key'>key</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id tap'>tap</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id array'>array</span><span class='op'>|</span>
|
|
570
|
+
<span class='comment'># errors[key] returns an array of Aequitas::Violation
|
|
571
|
+
</span> <span class='id errors'>errors</span><span class='lbracket'>[</span><span class='id key'>key</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id error'>error</span><span class='op'>|</span>
|
|
572
|
+
<span class='id array'>array</span> <span class='op'><<</span> <span class='id error'>error</span><span class='period'>.</span><span class='id message'>message</span>
|
|
573
|
+
<span class='kw'>end</span>
|
|
574
|
+
<span class='kw'>end</span>
|
|
575
|
+
<span class='kw'>end</span>
|
|
576
|
+
<span class='kw'>end</span>
|
|
577
|
+
<span class='kw'>end</span></pre>
|
|
578
|
+
</td>
|
|
579
|
+
</tr>
|
|
580
|
+
</table>
|
|
581
|
+
</div>
|
|
582
|
+
|
|
583
|
+
<div class="method_details ">
|
|
584
|
+
<p class="signature " id="initialize-instance_method">
|
|
585
|
+
|
|
586
|
+
- (<tt><span class='object_link'><a href="" title="Lims::Core::Actions::Action::AfterEval (module)">AfterEval</a></span></tt>) <strong>initialize</strong>(*args, &initializer)
|
|
587
|
+
|
|
588
|
+
|
|
589
|
+
|
|
590
|
+
</p><div class="docstring">
|
|
591
|
+
<div class="discussion">
|
|
592
|
+
|
|
593
|
+
<p>Initialize a new actions 'Common' parameters are set as argument whereas
|
|
594
|
+
specific ones are set on a dummy object via the block. The block is
|
|
595
|
+
executed within a session allowing to find object form id, etc.</p>
|
|
596
|
+
|
|
597
|
+
|
|
598
|
+
</div>
|
|
599
|
+
</div>
|
|
600
|
+
<div class="tags">
|
|
601
|
+
|
|
602
|
+
|
|
603
|
+
</div><table class="source_code">
|
|
604
|
+
<tr>
|
|
605
|
+
<td>
|
|
606
|
+
<pre class="lines">
|
|
607
|
+
|
|
608
|
+
|
|
609
|
+
43
|
|
610
|
+
44
|
|
611
|
+
45
|
|
612
|
+
46</pre>
|
|
613
|
+
</td>
|
|
614
|
+
<td>
|
|
615
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/actions/action.rb', line 43</span>
|
|
616
|
+
|
|
617
|
+
<span class='kw'>def</span> <span class='id initialize'>initialize</span><span class='lparen'>(</span><span class='op'>*</span><span class='id args'>args</span><span class='comma'>,</span> <span class='op'>&</span><span class='id initializer'>initializer</span><span class='rparen'>)</span>
|
|
618
|
+
<span class='ivar'>@initializer</span> <span class='op'>=</span> <span class='id initializer'>initializer</span>
|
|
619
|
+
<span class='kw'>super</span><span class='lparen'>(</span><span class='op'>*</span><span class='id args'>args</span><span class='rparen'>)</span>
|
|
620
|
+
<span class='kw'>end</span></pre>
|
|
621
|
+
</td>
|
|
622
|
+
</tr>
|
|
623
|
+
</table>
|
|
624
|
+
</div>
|
|
625
|
+
|
|
626
|
+
<div class="method_details ">
|
|
627
|
+
<p class="signature " id="revert-instance_method">
|
|
628
|
+
|
|
629
|
+
- (<tt><span class='object_link'><a href="../../../../Object.html" title="Object (class)">Object</a></span></tt>) <strong>revert</strong>
|
|
630
|
+
|
|
631
|
+
|
|
632
|
+
|
|
633
|
+
</p><div class="docstring">
|
|
634
|
+
<div class="discussion">
|
|
635
|
+
|
|
636
|
+
<p>Execute the opposite of the action if possible. This a wrapper around
|
|
637
|
+
_revert_in_session, and shouldn't be overriden.</p>
|
|
638
|
+
|
|
639
|
+
|
|
640
|
+
</div>
|
|
641
|
+
</div>
|
|
642
|
+
<div class="tags">
|
|
643
|
+
|
|
644
|
+
<h3>Raises:</h3>
|
|
645
|
+
<ul class="raise">
|
|
646
|
+
|
|
647
|
+
<li>
|
|
648
|
+
|
|
649
|
+
|
|
650
|
+
<span class='type'></span>
|
|
651
|
+
|
|
652
|
+
|
|
653
|
+
|
|
654
|
+
|
|
655
|
+
<div class='inline'>
|
|
656
|
+
<p>UnrevertableAction</p>
|
|
657
|
+
</div>
|
|
658
|
+
|
|
659
|
+
</li>
|
|
660
|
+
|
|
661
|
+
</ul>
|
|
662
|
+
|
|
663
|
+
</div><table class="source_code">
|
|
664
|
+
<tr>
|
|
665
|
+
<td>
|
|
666
|
+
<pre class="lines">
|
|
667
|
+
|
|
668
|
+
|
|
669
|
+
78
|
|
670
|
+
79
|
|
671
|
+
80</pre>
|
|
672
|
+
</td>
|
|
673
|
+
<td>
|
|
674
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/actions/action.rb', line 78</span>
|
|
675
|
+
|
|
676
|
+
<span class='kw'>def</span> <span class='id revert'>revert</span><span class='lparen'>(</span><span class='rparen'>)</span>
|
|
677
|
+
<span class='id with_session'>with_session</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id s'>s</span><span class='op'>|</span> <span class='id _revert_in_session'>_revert_in_session</span><span class='lparen'>(</span><span class='id s'>s</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
|
678
|
+
<span class='kw'>end</span></pre>
|
|
679
|
+
</td>
|
|
680
|
+
</tr>
|
|
681
|
+
</table>
|
|
682
|
+
</div>
|
|
683
|
+
|
|
684
|
+
<div class="method_details ">
|
|
685
|
+
<p class="signature " id="with_session-instance_method">
|
|
686
|
+
|
|
687
|
+
- (<tt><span class='object_link'><a href="../../../../Object.html" title="Object (class)">Object</a></span></tt>, <tt>False</tt>) <strong>with_session</strong>(*args, &block)
|
|
688
|
+
|
|
689
|
+
|
|
690
|
+
|
|
691
|
+
</p><div class="docstring">
|
|
692
|
+
<div class="discussion">
|
|
693
|
+
|
|
694
|
+
<p>Execute the given block within a new session. Validates the action and fill
|
|
695
|
+
#errors if needed</p>
|
|
696
|
+
|
|
697
|
+
|
|
698
|
+
</div>
|
|
699
|
+
</div>
|
|
700
|
+
<div class="tags">
|
|
701
|
+
|
|
702
|
+
<h3>Returns:</h3>
|
|
703
|
+
<ul class="return">
|
|
704
|
+
|
|
705
|
+
<li>
|
|
706
|
+
|
|
707
|
+
|
|
708
|
+
<span class='type'>(<tt><span class='object_link'><a href="../../../../Object.html" title="Object (class)">Object</a></span></tt>, <tt>False</tt>)</span>
|
|
709
|
+
|
|
710
|
+
|
|
711
|
+
|
|
712
|
+
</li>
|
|
713
|
+
|
|
714
|
+
</ul>
|
|
715
|
+
|
|
716
|
+
</div><table class="source_code">
|
|
717
|
+
<tr>
|
|
718
|
+
<td>
|
|
719
|
+
<pre class="lines">
|
|
720
|
+
|
|
721
|
+
|
|
722
|
+
85
|
|
723
|
+
86
|
|
724
|
+
87
|
|
725
|
+
88
|
|
726
|
+
89
|
|
727
|
+
90
|
|
728
|
+
91
|
|
729
|
+
92
|
|
730
|
+
93
|
|
731
|
+
94
|
|
732
|
+
95
|
|
733
|
+
96
|
|
734
|
+
97
|
|
735
|
+
98
|
|
736
|
+
99
|
|
737
|
+
100
|
|
738
|
+
101
|
|
739
|
+
102
|
|
740
|
+
103
|
|
741
|
+
104
|
|
742
|
+
105
|
|
743
|
+
106
|
|
744
|
+
107
|
|
745
|
+
108
|
|
746
|
+
109
|
|
747
|
+
110
|
|
748
|
+
111
|
|
749
|
+
112
|
|
750
|
+
113
|
|
751
|
+
114
|
|
752
|
+
115
|
|
753
|
+
116
|
|
754
|
+
117
|
|
755
|
+
118
|
|
756
|
+
119
|
|
757
|
+
120
|
|
758
|
+
121
|
|
759
|
+
122
|
|
760
|
+
123
|
|
761
|
+
124
|
|
762
|
+
125
|
|
763
|
+
126
|
|
764
|
+
127
|
|
765
|
+
128
|
|
766
|
+
129
|
|
767
|
+
130
|
|
768
|
+
131
|
|
769
|
+
132
|
|
770
|
+
133
|
|
771
|
+
134
|
|
772
|
+
135
|
|
773
|
+
136
|
|
774
|
+
137
|
|
775
|
+
138
|
|
776
|
+
139
|
|
777
|
+
140
|
|
778
|
+
141
|
|
779
|
+
142</pre>
|
|
780
|
+
</td>
|
|
781
|
+
<td>
|
|
782
|
+
<pre class="code"><span class="info file"># File 'lib/lims-core/actions/action.rb', line 85</span>
|
|
783
|
+
|
|
784
|
+
<span class='kw'>def</span> <span class='id with_session'>with_session</span><span class='lparen'>(</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>
|
|
785
|
+
<span class='ivar'>@store</span><span class='period'>.</span><span class='id with_session'>with_session</span><span class='lparen'>(</span><span class='op'>*</span><span class='id args'>args</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id session'>session</span><span class='op'>|</span>
|
|
786
|
+
<span class='comment'># initialize action
|
|
787
|
+
</span> <span class='kw'>if</span> <span class='ivar'>@initializer</span>
|
|
788
|
+
<span class='id params'>params</span> <span class='op'>=</span> <span class='const'>OpenStruct</span><span class='period'>.</span><span class='id new'>new</span>
|
|
789
|
+
|
|
790
|
+
<span class='ivar'>@initializer</span><span class='lbracket'>[</span><span class='id params'>params</span><span class='comma'>,</span> <span class='id session'>session</span><span class='rbracket'>]</span>
|
|
791
|
+
|
|
792
|
+
<span class='comment'># We want to catch ALL attributes errors
|
|
793
|
+
</span> <span class='comment'># therefore We need to iterate on each attributes
|
|
794
|
+
</span> <span class='comment'># and catch the potentiel exception raised by each
|
|
795
|
+
</span> <span class='comment'># assignment.
|
|
796
|
+
</span>
|
|
797
|
+
|
|
798
|
+
<span class='id attribute_errors'>attribute_errors</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
|
799
|
+
<span class='id params'>params</span><span class='period'>.</span><span class='id each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id key'>key</span><span class='comma'>,</span> <span class='id value'>value</span><span class='op'>|</span>
|
|
800
|
+
<span class='kw'>begin</span>
|
|
801
|
+
<span class='id send'>send</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='id key'>key</span><span class='rbrace'>}</span><span class='tstring_content'>=</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='id value'>value</span><span class='rparen'>)</span>
|
|
802
|
+
<span class='kw'>rescue</span> <span class='const'>NoMethodError</span> <span class='op'>=></span> <span class='id e'>e</span>
|
|
803
|
+
<span class='id attribute_errors'>attribute_errors</span> <span class='op'><<</span> <span class='lbracket'>[</span><span class='id key'>key</span><span class='comma'>,</span> <span class='id value'>value</span><span class='rbracket'>]</span>
|
|
804
|
+
<span class='kw'>end</span>
|
|
805
|
+
<span class='kw'>end</span>
|
|
806
|
+
|
|
807
|
+
<span class='kw'>unless</span> <span class='id attribute_errors'>attribute_errors</span><span class='period'>.</span><span class='id empty?'>empty?</span>
|
|
808
|
+
<span class='comment'># An error occured.
|
|
809
|
+
</span> <span class='comment'># We need to check if set attributes are valid
|
|
810
|
+
</span> <span class='comment'># and add the attributes errors to the general error message.
|
|
811
|
+
</span> <span class='id valid?'>valid?</span>
|
|
812
|
+
<span class='id invalid_parameters'>invalid_parameters</span> <span class='op'>=</span> <span class='id errors_to_hash'>errors_to_hash</span>
|
|
813
|
+
|
|
814
|
+
<span class='id attribute_errors'>attribute_errors</span><span class='period'>.</span><span class='id each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id key'>key</span><span class='comma'>,</span> <span class='id value'>value</span><span class='op'>|</span>
|
|
815
|
+
<span class='id invalid_parameters'>invalid_parameters</span><span class='lbracket'>[</span><span class='id key'>key</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>field :</span><span class='embexpr_beg'>#{</span><span class='id key'>key</span><span class='rbrace'>}</span><span class='tstring_content'> doesn't exist or value '</span><span class='embexpr_beg'>#{</span><span class='id value'>value</span><span class='rbrace'>}</span><span class='tstring_content'>' is invalid</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span>
|
|
816
|
+
<span class='kw'>end</span>
|
|
817
|
+
<span class='id raise'>raise</span> <span class='const'>InvalidParameters</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='id invalid_parameters'>invalid_parameters</span><span class='rparen'>)</span>
|
|
818
|
+
<span class='kw'>end</span>
|
|
819
|
+
<span class='ivar'>@initializer</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
|
820
|
+
<span class='kw'>end</span>
|
|
821
|
+
|
|
822
|
+
<span class='comment'># Note: there is a bug in Aequitas gem on the valid?
|
|
823
|
+
</span> <span class='comment'># method call. For an attribute which needs to be required
|
|
824
|
+
</span> <span class='comment'># and greater than 0, the greater than 0 is tested first
|
|
825
|
+
</span> <span class='comment'># and the required after. So if the parameter is not set,
|
|
826
|
+
</span> <span class='comment'># nil >= 0 is evaluated by Aequitas and an exception is
|
|
827
|
+
</span> <span class='comment'># raised. We catch it here and raise an InvalidParameters error.
|
|
828
|
+
</span> <span class='id is_valid'>is_valid</span> <span class='op'>=</span> <span class='kw'>begin</span>
|
|
829
|
+
<span class='id valid?'>valid?</span>
|
|
830
|
+
<span class='kw'>rescue</span>
|
|
831
|
+
<span class='id raise'>raise</span> <span class='const'>InvalidParameters</span><span class='period'>.</span><span class='id new'>new</span>
|
|
832
|
+
<span class='kw'>end</span>
|
|
833
|
+
|
|
834
|
+
<span class='kw'>if</span> <span class='id is_valid'>is_valid</span>
|
|
835
|
+
<span class='id block'>block</span><span class='period'>.</span><span class='id call'>call</span><span class='lparen'>(</span><span class='id session'>session</span><span class='rparen'>)</span>
|
|
836
|
+
<span class='kw'>else</span>
|
|
837
|
+
<span class='id invalid_parameters'>invalid_parameters</span> <span class='op'>=</span> <span class='id errors_to_hash'>errors_to_hash</span>
|
|
838
|
+
<span class='id raise'>raise</span> <span class='const'>InvalidParameters</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='id invalid_parameters'>invalid_parameters</span><span class='rparen'>)</span>
|
|
839
|
+
<span class='kw'>end</span>
|
|
840
|
+
<span class='kw'>end</span>
|
|
841
|
+
<span class='kw'>end</span></pre>
|
|
842
|
+
</td>
|
|
843
|
+
</tr>
|
|
844
|
+
</table>
|
|
845
|
+
</div>
|
|
846
|
+
|
|
847
|
+
</div>
|
|
848
|
+
|
|
849
|
+
</div>
|
|
850
|
+
|
|
851
|
+
|
|
852
|
+
</body>
|
|
853
|
+
</html>
|