anchormodel 0.2.1 → 0.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 +4 -4
- data/.ruby-version +1 -1
- data/CHANGELOG.md +10 -0
- data/Gemfile.lock +6 -6
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/anchormodel.gemspec +5 -5
- 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 +164 -3
- data/doc/Anchormodel/SimpleFormInputs/Helpers/AnchormodelInputsCommon.html +21 -9
- 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 +3 -3
- 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 +6 -3
- data/doc/css/full_list.css +3 -3
- data/doc/css/style.css +6 -0
- data/doc/file.README.html +3 -3
- data/doc/file_list.html +5 -2
- data/doc/frames.html +10 -5
- data/doc/index.html +3 -3
- data/doc/js/app.js +294 -264
- data/doc/js/full_list.js +30 -4
- data/doc/method_list.html +21 -2
- data/doc/top-level-namespace.html +3 -3
- data/lib/anchormodel/simple_form_inputs/helpers/anchormodel_inputs_common.rb +11 -5
- metadata +5 -5
data/doc/js/full_list.js
CHANGED
@@ -62,8 +62,25 @@ function enableToggles() {
|
|
62
62
|
evt.stopPropagation();
|
63
63
|
evt.preventDefault();
|
64
64
|
$(this).parent().parent().toggleClass('collapsed');
|
65
|
+
$(this).attr('aria-expanded', function (i, attr) {
|
66
|
+
return attr == 'true' ? 'false' : 'true'
|
67
|
+
});
|
65
68
|
highlight();
|
66
69
|
});
|
70
|
+
|
71
|
+
// navigation of nested classes using keyboard
|
72
|
+
$('#full_list a.toggle').on('keypress',function(evt) {
|
73
|
+
// enter key is pressed
|
74
|
+
if (evt.which == 13) {
|
75
|
+
evt.stopPropagation();
|
76
|
+
evt.preventDefault();
|
77
|
+
$(this).parent().parent().toggleClass('collapsed');
|
78
|
+
$(this).attr('aria-expanded', function (i, attr) {
|
79
|
+
return attr == 'true' ? 'false' : 'true'
|
80
|
+
});
|
81
|
+
highlight();
|
82
|
+
}
|
83
|
+
});
|
67
84
|
}
|
68
85
|
|
69
86
|
function populateSearchCache() {
|
@@ -91,7 +108,7 @@ function enableSearch() {
|
|
91
108
|
}
|
92
109
|
});
|
93
110
|
|
94
|
-
$('#full_list').after("<div id='noresults' style='display:none'></div>");
|
111
|
+
$('#full_list').after("<div id='noresults' role='status' style='display: none'></div>");
|
95
112
|
}
|
96
113
|
|
97
114
|
function ignoredKeyPress(event) {
|
@@ -154,11 +171,14 @@ function partialSearch(searchString, offset) {
|
|
154
171
|
function searchDone() {
|
155
172
|
searchTimeout = null;
|
156
173
|
highlight();
|
157
|
-
|
158
|
-
|
174
|
+
var found = $('#full_list li:visible').size();
|
175
|
+
if (found === 0) {
|
176
|
+
$('#noresults').text('No results were found.');
|
159
177
|
} else {
|
160
|
-
|
178
|
+
// This is read out to screen readers
|
179
|
+
$('#noresults').text('There are ' + found + ' results.');
|
161
180
|
}
|
181
|
+
$('#noresults').show();
|
162
182
|
$('#content').removeClass('insearch');
|
163
183
|
}
|
164
184
|
|
@@ -188,6 +208,12 @@ function expandTo(path) {
|
|
188
208
|
$target.addClass('clicked');
|
189
209
|
$target.removeClass('collapsed');
|
190
210
|
$target.parentsUntil('#full_list', 'li').removeClass('collapsed');
|
211
|
+
|
212
|
+
$target.find('a.toggle').attr('aria-expanded', 'true')
|
213
|
+
$target.parentsUntil('#full_list', 'li').each(function(i, el) {
|
214
|
+
$(el).find('> div > a.toggle').attr('aria-expanded', 'true');
|
215
|
+
});
|
216
|
+
|
191
217
|
if($target[0]) {
|
192
218
|
window.scrollTo(window.scrollX, $target.offset().top - 250);
|
193
219
|
highlight();
|
data/doc/method_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,7 +38,10 @@
|
|
38
38
|
|
39
39
|
</div>
|
40
40
|
|
41
|
-
<div id="search">
|
41
|
+
<div id="search">
|
42
|
+
<label for="search-class">Search:</label>
|
43
|
+
<input id="search-class" type="text" />
|
44
|
+
</div>
|
42
45
|
</div>
|
43
46
|
|
44
47
|
<ul id="full_list" class="method">
|
@@ -92,6 +95,22 @@
|
|
92
95
|
</li>
|
93
96
|
|
94
97
|
|
98
|
+
<li class="odd ">
|
99
|
+
<div class="item">
|
100
|
+
<span class='object_link'><a href="Anchormodel/ModelMixin.html#belongs_to_anchormodel-class_method" title="Anchormodel::ModelMixin.belongs_to_anchormodel (method)">belongs_to_anchormodel</a></span>
|
101
|
+
<small>Anchormodel::ModelMixin</small>
|
102
|
+
</div>
|
103
|
+
</li>
|
104
|
+
|
105
|
+
|
106
|
+
<li class="even ">
|
107
|
+
<div class="item">
|
108
|
+
<span class='object_link'><a href="Anchormodel/ModelMixin.html#belongs_to_anchormodels-class_method" title="Anchormodel::ModelMixin.belongs_to_anchormodels (method)">belongs_to_anchormodels</a></span>
|
109
|
+
<small>Anchormodel::ModelMixin</small>
|
110
|
+
</div>
|
111
|
+
</li>
|
112
|
+
|
113
|
+
|
95
114
|
<li class="odd ">
|
96
115
|
<div class="item">
|
97
116
|
<span class='object_link'><a href="Anchormodel/ActiveModelTypeValueMulti.html#cast-instance_method" title="Anchormodel::ActiveModelTypeValueMulti#cast (method)">#cast</a></span>
|
@@ -6,7 +6,7 @@
|
|
6
6
|
<title>
|
7
7
|
Top Level Namespace
|
8
8
|
|
9
|
-
— Documentation by YARD 0.9.
|
9
|
+
— Documentation by YARD 0.9.37
|
10
10
|
|
11
11
|
</title>
|
12
12
|
|
@@ -100,9 +100,9 @@
|
|
100
100
|
</div>
|
101
101
|
|
102
102
|
<div id="footer">
|
103
|
-
Generated on
|
103
|
+
Generated on Fri Nov 1 12:02:06 2024 by
|
104
104
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
105
|
-
0.9.
|
105
|
+
0.9.37 (ruby-3.3.5).
|
106
106
|
</div>
|
107
107
|
|
108
108
|
</div>
|
@@ -3,12 +3,18 @@ class Anchormodel
|
|
3
3
|
module Helpers
|
4
4
|
module AnchormodelInputsCommon
|
5
5
|
def input(wrapper_options = nil)
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
if object.present?
|
7
|
+
unless object.respond_to?(:anchormodel_attributes)
|
8
|
+
fail("The form field object does not appear to respond to `anchormodel_attributes`, \
|
9
|
+
did you `include Anchormodel::ModelMixin` in your `application_record.rb`? Affected object: #{object.inspect}")
|
10
|
+
end
|
11
|
+
am_attr = object.anchormodel_attributes[@attribute_name]
|
12
|
+
elsif options.key?(:anchormodel_attribute)
|
13
|
+
am_attr = options.delete(:anchormodel_attribute)
|
14
|
+
else
|
15
|
+
fail(':anchormodel input requires either an object or the input option :anchormodel_attribute, but neither is set.')
|
9
16
|
end
|
10
17
|
|
11
|
-
am_attr = object.anchormodel_attributes[@attribute_name]
|
12
18
|
unless am_attr
|
13
19
|
fail("#{@attribute_name.inspect} does not look like an Anchormodel attribute, is `belongs_to_anchormodel` called in your model? \
|
14
20
|
Affected object: #{object.inspect}")
|
@@ -17,7 +23,7 @@ Affected object: #{object.inspect}")
|
|
17
23
|
options[:multiple] = true if am_attr.multiple? && options[:multiple] != false # allow overriding
|
18
24
|
|
19
25
|
# Attempt to read selected key from html input options "value", as the caller might not know that this is a select.
|
20
|
-
selected_key = input_options[:value]
|
26
|
+
selected_key = input_options[:value].presence || options.dig(:input_html, :value)
|
21
27
|
if selected_key.blank? && object
|
22
28
|
# No selected key override present and a model is present, use the model to find out what to select.
|
23
29
|
selected_am = object.send(@attribute_name)
|
metadata
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: anchormodel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sandro Kalbermatter
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-11-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '7.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '7.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
@@ -267,7 +267,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
267
267
|
- !ruby/object:Gem::Version
|
268
268
|
version: '0'
|
269
269
|
requirements: []
|
270
|
-
rubygems_version: 3.
|
270
|
+
rubygems_version: 3.4.10
|
271
271
|
signing_key:
|
272
272
|
specification_version: 4
|
273
273
|
summary: Bringing object-oriented programming to Rails enums
|