anchormodel 0.2.6 → 0.3.0
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 +4 -4
- data/CHANGELOG.md +6 -0
- data/Gemfile.lock +27 -21
- data/README.md +3 -3
- data/VERSION +1 -1
- data/anchormodel.gemspec +3 -3
- data/doc/Anchormodel/ActiveModelTypeValueMulti.html +3 -3
- data/doc/Anchormodel/ActiveModelTypeValueSingle.html +3 -3
- data/doc/Anchormodel/Attribute.html +3 -3
- data/doc/Anchormodel/ModelMixin.html +3 -3
- data/doc/Anchormodel/SimpleFormInputs/Helpers/AnchormodelInputsCommon.html +3 -3
- data/doc/Anchormodel/SimpleFormInputs/Helpers.html +3 -3
- data/doc/Anchormodel/SimpleFormInputs.html +3 -3
- data/doc/Anchormodel/Util.html +3 -3
- data/doc/Anchormodel/Version.html +3 -3
- data/doc/Anchormodel.html +22 -20
- data/doc/AnchormodelCheckBoxesInput.html +3 -3
- data/doc/AnchormodelGenerator.html +3 -3
- data/doc/AnchormodelInput.html +3 -3
- data/doc/AnchormodelRadioButtonsInput.html +3 -3
- data/doc/_index.html +4 -4
- data/doc/class_list.html +3 -6
- data/doc/css/full_list.css +3 -3
- data/doc/css/style.css +0 -6
- data/doc/file.README.html +5 -5
- data/doc/file_list.html +2 -5
- data/doc/frames.html +5 -10
- data/doc/index.html +5 -5
- data/doc/js/app.js +264 -294
- data/doc/js/full_list.js +4 -30
- data/doc/method_list.html +2 -5
- data/doc/top-level-namespace.html +3 -3
- data/lib/anchormodel.rb +1 -0
- metadata +2 -2
data/doc/class_list.html
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
|
-
<html
|
|
2
|
+
<html>
|
|
3
3
|
<head>
|
|
4
4
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
5
5
|
<meta charset="utf-8" />
|
|
@@ -38,15 +38,12 @@
|
|
|
38
38
|
|
|
39
39
|
</div>
|
|
40
40
|
|
|
41
|
-
<div id="search">
|
|
42
|
-
<label for="search-class">Search:</label>
|
|
43
|
-
<input id="search-class" type="text" />
|
|
44
|
-
</div>
|
|
41
|
+
<div id="search">Search: <input type="text" /></div>
|
|
45
42
|
</div>
|
|
46
43
|
|
|
47
44
|
<ul id="full_list" class="class">
|
|
48
45
|
<li id="object_" class="odd"><div class="item" style="padding-left:30px"><span class='object_link'><a href="top-level-namespace.html" title="Top Level Namespace (root)">Top Level Namespace</a></span></div></li>
|
|
49
|
-
<li id='object_Anchormodel' class='even'><div class='item' style='padding-left:30px'><a
|
|
46
|
+
<li id='object_Anchormodel' class='even'><div class='item' style='padding-left:30px'><a class='toggle'></a> <span class='object_link'><a href="Anchormodel.html" title="Anchormodel (class)">Anchormodel</a></span> < Object<small class='search_info'>Top Level Namespace</small></div><ul><li id='object_Anchormodel::ActiveModelTypeValueMulti' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="Anchormodel/ActiveModelTypeValueMulti.html" title="Anchormodel::ActiveModelTypeValueMulti (class)">ActiveModelTypeValueMulti</a></span> < ActiveModelTypeValueSingle<small class='search_info'>Anchormodel</small></div></li><li id='object_Anchormodel::ActiveModelTypeValueSingle' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="Anchormodel/ActiveModelTypeValueSingle.html" title="Anchormodel::ActiveModelTypeValueSingle (class)">ActiveModelTypeValueSingle</a></span> < Value<small class='search_info'>Anchormodel</small></div></li><li id='object_Anchormodel::Attribute' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="Anchormodel/Attribute.html" title="Anchormodel::Attribute (class)">Attribute</a></span> < Object<small class='search_info'>Anchormodel</small></div></li><li id='object_Anchormodel::ModelMixin' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="Anchormodel/ModelMixin.html" title="Anchormodel::ModelMixin (module)">ModelMixin</a></span><small class='search_info'>Anchormodel</small></div></li><li id='object_Anchormodel::SimpleFormInputs' class='collapsed odd'><div class='item' style='padding-left:45px'><a class='toggle'></a> <span class='object_link'><a href="Anchormodel/SimpleFormInputs.html" title="Anchormodel::SimpleFormInputs (module)">SimpleFormInputs</a></span><small class='search_info'>Anchormodel</small></div><ul><li id='object_Anchormodel::SimpleFormInputs::Helpers' class='collapsed'><div class='item' style='padding-left:60px'><a class='toggle'></a> <span class='object_link'><a href="Anchormodel/SimpleFormInputs/Helpers.html" title="Anchormodel::SimpleFormInputs::Helpers (module)">Helpers</a></span><small class='search_info'>Anchormodel::SimpleFormInputs</small></div><ul><li id='object_Anchormodel::SimpleFormInputs::Helpers::AnchormodelInputsCommon' class='collapsed'><div class='item' style='padding-left:75px'><span class='object_link'><a href="Anchormodel/SimpleFormInputs/Helpers/AnchormodelInputsCommon.html" title="Anchormodel::SimpleFormInputs::Helpers::AnchormodelInputsCommon (module)">AnchormodelInputsCommon</a></span><small class='search_info'>Anchormodel::SimpleFormInputs::Helpers</small></div></li></ul></li></ul></li><li id='object_Anchormodel::Util' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="Anchormodel/Util.html" title="Anchormodel::Util (module)">Util</a></span><small class='search_info'>Anchormodel</small></div></li><li id='object_Anchormodel::Version' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="Anchormodel/Version.html" title="Anchormodel::Version (module)">Version</a></span><small class='search_info'>Anchormodel</small></div></li></ul></li><li id='object_AnchormodelCheckBoxesInput' class='even'><div class='item' style='padding-left:30px'><span class='object_link'><a href="AnchormodelCheckBoxesInput.html" title="AnchormodelCheckBoxesInput (class)">AnchormodelCheckBoxesInput</a></span> < CollectionCheckBoxesInput<small class='search_info'>Top Level Namespace</small></div></li><li id='object_AnchormodelGenerator' class='odd'><div class='item' style='padding-left:30px'><span class='object_link'><a href="AnchormodelGenerator.html" title="AnchormodelGenerator (class)">AnchormodelGenerator</a></span> < NamedBase<small class='search_info'>Top Level Namespace</small></div></li><li id='object_AnchormodelInput' class='even'><div class='item' style='padding-left:30px'><span class='object_link'><a href="AnchormodelInput.html" title="AnchormodelInput (class)">AnchormodelInput</a></span> < CollectionSelectInput<small class='search_info'>Top Level Namespace</small></div></li><li id='object_AnchormodelRadioButtonsInput' class='odd'><div class='item' style='padding-left:30px'><span class='object_link'><a href="AnchormodelRadioButtonsInput.html" title="AnchormodelRadioButtonsInput (class)">AnchormodelRadioButtonsInput</a></span> < CollectionRadioButtonsInput<small class='search_info'>Top Level Namespace</small></div></li>
|
|
50
47
|
|
|
51
48
|
</ul>
|
|
52
49
|
</div>
|
data/doc/css/full_list.css
CHANGED
|
@@ -20,8 +20,8 @@ h1 { padding: 12px 10px; padding-bottom: 0; margin: 0; font-size: 1.4em; }
|
|
|
20
20
|
#content.insearch #noresults { margin-left: 7px; }
|
|
21
21
|
li.collapsed ul { display: none; }
|
|
22
22
|
li a.toggle { cursor: default; position: relative; left: -5px; top: 4px; text-indent: -999px; width: 10px; height: 9px; margin-left: -10px; display: block; float: left; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTM5jWRgMAAAAVdEVYdENyZWF0aW9uIFRpbWUAMy8xNC8wOeNZPpQAAAE2SURBVDiNrZTBccIwEEXfelIAHUA6CZ24BGaWO+FuzZAK4k6gg5QAdGAq+Bxs2Yqx7BzyL7Llp/VfzZeQhCTc/ezuGzKKnKSzpCxXJM8fwNXda3df5RZETlIt6YUzSQDs93sl8w3wBZxCCE10GM1OcWbWjB2mWgEH4Mfdyxm3PSepBHibgQE2wLe7r4HjEidpnXMYdQPKEMJcsZ4zs2POYQOcaPfwMVOo58zsAdMt18BuoVDPxUJRacELbXv3hUIX2vYmOUvi8C8ydz/ThjXrqKqqLbDIAdsCKBd+Wo7GWa7o9qzOQHVVVXeAbs+yHHCH4aTsaCOQqunmUy1yBUAXkdMIfMlgF5EXLo2OpV/c/Up7jG4hhHcYLgWzAZXUc2b2ixsfvc/RmNNfOXD3Q/oeL9axJE1yT9IOoUu6MGUkAAAAAElFTkSuQmCC) no-repeat bottom left; }
|
|
23
|
-
li.collapsed a.toggle { cursor: default; background-position: top left; }
|
|
24
|
-
li { color: #
|
|
23
|
+
li.collapsed a.toggle { opacity: 0.5; cursor: default; background-position: top left; }
|
|
24
|
+
li { color: #888; cursor: pointer; }
|
|
25
25
|
li.deprecated { text-decoration: line-through; font-style: italic; }
|
|
26
26
|
li.odd { background: #f0f0f0; }
|
|
27
27
|
li.even { background: #fafafa; }
|
|
@@ -47,7 +47,7 @@ li small { display: block; font-size: 0.8em; }
|
|
|
47
47
|
li small:before { content: ""; }
|
|
48
48
|
li small:after { content: ""; }
|
|
49
49
|
li small.search_info { display: none; }
|
|
50
|
-
#search { width: 170px; position: static; margin: 3px; margin-left: 10px; font-size: 0.9em; color: #
|
|
50
|
+
#search { width: 170px; position: static; margin: 3px; margin-left: 10px; font-size: 0.9em; color: #888; padding-left: 0; padding-right: 24px; }
|
|
51
51
|
#content.insearch #search { background-position: center right; }
|
|
52
52
|
#search input { width: 110px; }
|
|
53
53
|
|
data/doc/css/style.css
CHANGED
|
@@ -82,11 +82,6 @@ body {
|
|
|
82
82
|
#search { display: none; }
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
@media (max-width: 320px) {
|
|
86
|
-
body { height: 100%; overflow: hidden; overflow-wrap: break-word; }
|
|
87
|
-
#main { height: 100%; overflow: auto; }
|
|
88
|
-
}
|
|
89
|
-
|
|
90
85
|
#main img { max-width: 100%; }
|
|
91
86
|
h1 { font-size: 25px; margin: 1em 0 0.5em; padding-top: 4px; border-top: 1px dotted #d5d5d5; }
|
|
92
87
|
h1.noborder { border-top: 0px; margin-top: 0; padding-top: 4px; }
|
|
@@ -111,7 +106,6 @@ h2 small a {
|
|
|
111
106
|
position: relative;
|
|
112
107
|
padding: 2px 7px;
|
|
113
108
|
}
|
|
114
|
-
a { font-weight: 550; }
|
|
115
109
|
.clear { clear: both; }
|
|
116
110
|
.inline { display: inline; }
|
|
117
111
|
.inline p:first-child { display: inline; }
|
data/doc/file.README.html
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<title>
|
|
7
7
|
File: README
|
|
8
8
|
|
|
9
|
-
— Documentation by YARD 0.9.
|
|
9
|
+
— Documentation by YARD 0.9.28
|
|
10
10
|
|
|
11
11
|
</title>
|
|
12
12
|
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
<p>A mix of the two, where code needs to be specifically tailored for some kind of data. A prominent example of such a mix would for instance be user roles: roles must be hardcoded in the code because security logic is tied to them. However, as users are assigned to roles in the database, roles also need to be persisted in the database. This is where Anchormodel comes into play.</p>
|
|
76
76
|
</li></ul>
|
|
77
77
|
|
|
78
|
-
<h2 id="label-Alternatives+
|
|
78
|
+
<h2 id="label-Alternatives+covering+the+same+use+case">Alternatives covering the same use case</h2>
|
|
79
79
|
|
|
80
80
|
<h3 id="label-Enum">Enum</h3>
|
|
81
81
|
|
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
<p><code>app/anchormodels/role.rb</code>:</p>
|
|
110
110
|
|
|
111
111
|
<pre class="code ruby"><code class="ruby"><span class='kw'>class</span> <span class='const'>Role</span> <span class='op'><</span> <span class='const'><span class='object_link'><a href="Anchormodel.html" title="Anchormodel (class)">Anchormodel</a></span></span>
|
|
112
|
-
<span class='comment'># Make <, > etc. based on <=> operator
|
|
112
|
+
<span class='comment'># Make <, > etc. based on <=> operator which we will define below
|
|
113
113
|
</span> <span class='id identifier rubyid_include'>include</span> <span class='const'>Comparable</span>
|
|
114
114
|
|
|
115
115
|
<span class='comment'># Expose the attribute privilege_level
|
|
@@ -339,9 +339,9 @@
|
|
|
339
339
|
</div></div>
|
|
340
340
|
|
|
341
341
|
<div id="footer">
|
|
342
|
-
Generated on Thu
|
|
342
|
+
Generated on Thu Jan 22 13:11:54 2026 by
|
|
343
343
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
344
|
-
0.9.
|
|
344
|
+
0.9.28 (ruby-3.3.5).
|
|
345
345
|
</div>
|
|
346
346
|
|
|
347
347
|
</div>
|
data/doc/file_list.html
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
|
-
<html
|
|
2
|
+
<html>
|
|
3
3
|
<head>
|
|
4
4
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
5
5
|
<meta charset="utf-8" />
|
|
@@ -38,10 +38,7 @@
|
|
|
38
38
|
|
|
39
39
|
</div>
|
|
40
40
|
|
|
41
|
-
<div id="search">
|
|
42
|
-
<label for="search-class">Search:</label>
|
|
43
|
-
<input id="search-class" type="text" />
|
|
44
|
-
</div>
|
|
41
|
+
<div id="search">Search: <input type="text" /></div>
|
|
45
42
|
</div>
|
|
46
43
|
|
|
47
44
|
<ul id="full_list" class="file">
|
data/doc/frames.html
CHANGED
|
@@ -2,18 +2,13 @@
|
|
|
2
2
|
<html>
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
5
|
-
<title>Documentation by YARD 0.9.
|
|
5
|
+
<title>Documentation by YARD 0.9.28</title>
|
|
6
6
|
</head>
|
|
7
7
|
<script type="text/javascript">
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var url = new URL(name, location.href);
|
|
13
|
-
window.top.location.replace(url.origin === location.origin ? name : mainUrl);
|
|
14
|
-
} catch (e) {
|
|
15
|
-
window.top.location.replace(mainUrl);
|
|
16
|
-
}
|
|
8
|
+
var match = unescape(window.location.hash).match(/^#!(.+)/);
|
|
9
|
+
var name = match ? match[1] : 'index.html';
|
|
10
|
+
name = name.replace(/^(\w+):\/\//, '').replace(/^\/\//, '');
|
|
11
|
+
window.top.location = name;
|
|
17
12
|
</script>
|
|
18
13
|
<noscript>
|
|
19
14
|
<h1>Oops!</h1>
|
data/doc/index.html
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<title>
|
|
7
7
|
File: README
|
|
8
8
|
|
|
9
|
-
— Documentation by YARD 0.9.
|
|
9
|
+
— Documentation by YARD 0.9.28
|
|
10
10
|
|
|
11
11
|
</title>
|
|
12
12
|
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
<p>A mix of the two, where code needs to be specifically tailored for some kind of data. A prominent example of such a mix would for instance be user roles: roles must be hardcoded in the code because security logic is tied to them. However, as users are assigned to roles in the database, roles also need to be persisted in the database. This is where Anchormodel comes into play.</p>
|
|
76
76
|
</li></ul>
|
|
77
77
|
|
|
78
|
-
<h2 id="label-Alternatives+
|
|
78
|
+
<h2 id="label-Alternatives+covering+the+same+use+case">Alternatives covering the same use case</h2>
|
|
79
79
|
|
|
80
80
|
<h3 id="label-Enum">Enum</h3>
|
|
81
81
|
|
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
<p><code>app/anchormodels/role.rb</code>:</p>
|
|
110
110
|
|
|
111
111
|
<pre class="code ruby"><code class="ruby"><span class='kw'>class</span> <span class='const'>Role</span> <span class='op'><</span> <span class='const'><span class='object_link'><a href="Anchormodel.html" title="Anchormodel (class)">Anchormodel</a></span></span>
|
|
112
|
-
<span class='comment'># Make <, > etc. based on <=> operator
|
|
112
|
+
<span class='comment'># Make <, > etc. based on <=> operator which we will define below
|
|
113
113
|
</span> <span class='id identifier rubyid_include'>include</span> <span class='const'>Comparable</span>
|
|
114
114
|
|
|
115
115
|
<span class='comment'># Expose the attribute privilege_level
|
|
@@ -339,9 +339,9 @@
|
|
|
339
339
|
</div></div>
|
|
340
340
|
|
|
341
341
|
<div id="footer">
|
|
342
|
-
Generated on Thu
|
|
342
|
+
Generated on Thu Jan 22 13:11:54 2026 by
|
|
343
343
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
344
|
-
0.9.
|
|
344
|
+
0.9.28 (ruby-3.3.5).
|
|
345
345
|
</div>
|
|
346
346
|
|
|
347
347
|
</div>
|