anchormodel 0.2.3 → 0.2.5
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 +9 -0
- data/VERSION +1 -1
- data/anchormodel.gemspec +4 -4
- data/doc/Anchormodel/ActiveModelTypeValueMulti.html +1 -1
- data/doc/Anchormodel/ActiveModelTypeValueSingle.html +1 -1
- data/doc/Anchormodel/Attribute.html +1 -1
- data/doc/Anchormodel/ModelMixin.html +1 -1
- data/doc/Anchormodel/SimpleFormInputs/Helpers/AnchormodelInputsCommon.html +1 -1
- data/doc/Anchormodel/SimpleFormInputs/Helpers.html +1 -1
- data/doc/Anchormodel/SimpleFormInputs.html +1 -1
- data/doc/Anchormodel/Util.html +15 -3
- data/doc/Anchormodel/Version.html +1 -1
- data/doc/Anchormodel.html +158 -32
- data/doc/AnchormodelCheckBoxesInput.html +1 -1
- data/doc/AnchormodelGenerator.html +1 -1
- data/doc/AnchormodelInput.html +1 -1
- data/doc/AnchormodelRadioButtonsInput.html +1 -1
- data/doc/_index.html +1 -1
- data/doc/file.README.html +1 -1
- data/doc/index.html +1 -1
- data/doc/method_list.html +23 -7
- data/doc/top-level-namespace.html +1 -1
- data/lib/anchormodel/util.rb +7 -1
- data/lib/anchormodel.rb +9 -0
- metadata +3 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8dc8f056d1710a491d181aef71c5b576302d21baaf2f0075557f71e467e5f63a
|
|
4
|
+
data.tar.gz: 7b9d36723f5485c18de24450021e7a0822c9a479af99a556b58643fcd4375316
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0d7f310e1e5ff0a4d310408a792c5794d8f6068a8a8b01f2a650270a3e46a1a3ff7c31a4ed403eb3588f4d378b959906a881f6c03105d5a1165059bfed3a0530
|
|
7
|
+
data.tar.gz: 60f5405f9b8f24e3477e4a37396c45409321da47826f252185f9c255bbbaa18e462243dbfc650ac113a61994a683d701689f9fb81d2bed2912d88242ab6d3136
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
# 0.2.5
|
|
2
|
+
|
|
3
|
+
- Fix an issue in combination with the active_type gem, causing virtual models to always read nil on anchormodel attributes
|
|
4
|
+
- When serializing an Anchormodel to json, return the key
|
|
5
|
+
|
|
6
|
+
# 0.2.4 (06.11.2024)
|
|
7
|
+
|
|
8
|
+
- Implement `YourConstant.first` as a shorthand for `YourConstant.all.first` to avoid Rubocop problems
|
|
9
|
+
|
|
1
10
|
# 0.2.3 (01.11.2024)
|
|
2
11
|
|
|
3
12
|
- Relax Rails dependency
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.2.
|
|
1
|
+
0.2.5
|
data/anchormodel.gemspec
CHANGED
|
@@ -2,21 +2,21 @@
|
|
|
2
2
|
# This file is auto-generated via: 'rake gemspec'.
|
|
3
3
|
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
|
5
|
-
# stub: anchormodel 0.2.
|
|
5
|
+
# stub: anchormodel 0.2.5 ruby lib
|
|
6
6
|
|
|
7
7
|
Gem::Specification.new do |s|
|
|
8
8
|
s.name = "anchormodel".freeze
|
|
9
|
-
s.version = "0.2.
|
|
9
|
+
s.version = "0.2.5".freeze
|
|
10
10
|
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
|
12
12
|
s.require_paths = ["lib".freeze]
|
|
13
13
|
s.authors = ["Sandro Kalbermatter".freeze]
|
|
14
|
-
s.date = "
|
|
14
|
+
s.date = "2025-02-14"
|
|
15
15
|
s.files = [".gitignore".freeze, ".ruby-version".freeze, ".yardopts".freeze, "CHANGELOG.md".freeze, "Gemfile".freeze, "Gemfile.lock".freeze, "LICENSE".freeze, "README.md".freeze, "Rakefile".freeze, "VERSION".freeze, "anchormodel.gemspec".freeze, "bin/rails".freeze, "doc/Anchormodel.html".freeze, "doc/Anchormodel/ActiveModelTypeValue.html".freeze, "doc/Anchormodel/ActiveModelTypeValueMulti.html".freeze, "doc/Anchormodel/ActiveModelTypeValueSingle.html".freeze, "doc/Anchormodel/Attribute.html".freeze, "doc/Anchormodel/ModelMixin.html".freeze, "doc/Anchormodel/SimpleFormInputs.html".freeze, "doc/Anchormodel/SimpleFormInputs/Helpers.html".freeze, "doc/Anchormodel/SimpleFormInputs/Helpers/AnchormodelInputsCommon.html".freeze, "doc/Anchormodel/Util.html".freeze, "doc/Anchormodel/Version.html".freeze, "doc/AnchormodelCheckBoxesInput.html".freeze, "doc/AnchormodelGenerator.html".freeze, "doc/AnchormodelInput.html".freeze, "doc/AnchormodelRadioButtonsInput.html".freeze, "doc/_index.html".freeze, "doc/class_list.html".freeze, "doc/css/common.css".freeze, "doc/css/full_list.css".freeze, "doc/css/style.css".freeze, "doc/file.README.html".freeze, "doc/file_list.html".freeze, "doc/frames.html".freeze, "doc/index.html".freeze, "doc/js/app.js".freeze, "doc/js/full_list.js".freeze, "doc/js/jquery.js".freeze, "doc/method_list.html".freeze, "doc/top-level-namespace.html".freeze, "lib/anchormodel.rb".freeze, "lib/anchormodel/active_model_type_value_multi.rb".freeze, "lib/anchormodel/active_model_type_value_single.rb".freeze, "lib/anchormodel/attribute.rb".freeze, "lib/anchormodel/model_mixin.rb".freeze, "lib/anchormodel/simple_form_inputs/anchormodel_check_boxes_input.rb".freeze, "lib/anchormodel/simple_form_inputs/anchormodel_input.rb".freeze, "lib/anchormodel/simple_form_inputs/anchormodel_radio_buttons_input.rb".freeze, "lib/anchormodel/simple_form_inputs/helpers/anchormodel_inputs_common.rb".freeze, "lib/anchormodel/util.rb".freeze, "lib/anchormodel/version.rb".freeze, "lib/generators/anchormodel/USAGE".freeze, "lib/generators/anchormodel/anchormodel_generator.rb".freeze, "lib/generators/anchormodel/templates/anchormodel.rb.erb".freeze, "logo.svg".freeze, "test/active_record_model/user_test.rb".freeze, "test/dummy/.gitignore".freeze, "test/dummy/Rakefile".freeze, "test/dummy/app/anchormodels/animal.rb".freeze, "test/dummy/app/anchormodels/locale.rb".freeze, "test/dummy/app/anchormodels/role.rb".freeze, "test/dummy/app/helpers/application_helper.rb".freeze, "test/dummy/app/models/application_record.rb".freeze, "test/dummy/app/models/concerns/.keep".freeze, "test/dummy/app/models/user.rb".freeze, "test/dummy/bin/rails".freeze, "test/dummy/bin/rake".freeze, "test/dummy/bin/setup".freeze, "test/dummy/config.ru".freeze, "test/dummy/config/application.rb".freeze, "test/dummy/config/boot.rb".freeze, "test/dummy/config/credentials.yml.enc".freeze, "test/dummy/config/database.yml".freeze, "test/dummy/config/environment.rb".freeze, "test/dummy/config/environments/test.rb".freeze, "test/dummy/config/initializers/content_security_policy.rb".freeze, "test/dummy/config/initializers/filter_parameter_logging.rb".freeze, "test/dummy/config/initializers/inflections.rb".freeze, "test/dummy/config/initializers/permissions_policy.rb".freeze, "test/dummy/config/locales/en.yml".freeze, "test/dummy/config/puma.rb".freeze, "test/dummy/config/routes.rb".freeze, "test/dummy/db/migrate/20230107173151_create_users.rb".freeze, "test/dummy/db/migrate/20240425182000_add_animals_to_users.rb".freeze, "test/dummy/db/schema.rb".freeze, "test/dummy/db/seeds.rb".freeze, "test/dummy/lib/tasks/.keep".freeze, "test/dummy/log/.keep".freeze, "test/dummy/tmp/.keep".freeze, "test/dummy/tmp/pids/.keep".freeze, "test/test_helper.rb".freeze]
|
|
16
16
|
s.homepage = "https://github.com/kalsan/anchormodel".freeze
|
|
17
17
|
s.licenses = ["LGPL-3.0-or-later".freeze]
|
|
18
18
|
s.required_ruby_version = Gem::Requirement.new(">= 3.0.0".freeze)
|
|
19
|
-
s.rubygems_version = "3.
|
|
19
|
+
s.rubygems_version = "3.6.3".freeze
|
|
20
20
|
s.summary = "Bringing object-oriented programming to Rails enums".freeze
|
|
21
21
|
|
|
22
22
|
s.specification_version = 4
|
|
@@ -400,7 +400,7 @@
|
|
|
400
400
|
</div>
|
|
401
401
|
|
|
402
402
|
<div id="footer">
|
|
403
|
-
Generated on Fri
|
|
403
|
+
Generated on Fri Feb 14 13:25:30 2025 by
|
|
404
404
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
405
405
|
0.9.37 (ruby-3.3.5).
|
|
406
406
|
</div>
|
|
@@ -687,7 +687,7 @@
|
|
|
687
687
|
</div>
|
|
688
688
|
|
|
689
689
|
<div id="footer">
|
|
690
|
-
Generated on Fri
|
|
690
|
+
Generated on Fri Feb 14 13:25:30 2025 by
|
|
691
691
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
692
692
|
0.9.37 (ruby-3.3.5).
|
|
693
693
|
</div>
|
|
@@ -596,7 +596,7 @@
|
|
|
596
596
|
</div>
|
|
597
597
|
|
|
598
598
|
<div id="footer">
|
|
599
|
-
Generated on Fri
|
|
599
|
+
Generated on Fri Feb 14 13:25:30 2025 by
|
|
600
600
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
601
601
|
0.9.37 (ruby-3.3.5).
|
|
602
602
|
</div>
|
|
@@ -273,7 +273,7 @@
|
|
|
273
273
|
</div>
|
|
274
274
|
|
|
275
275
|
<div id="footer">
|
|
276
|
-
Generated on Fri
|
|
276
|
+
Generated on Fri Feb 14 13:25:30 2025 by
|
|
277
277
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
278
278
|
0.9.37 (ruby-3.3.5).
|
|
279
279
|
</div>
|
|
@@ -269,7 +269,7 @@ Affected object: </span><span class='embexpr_beg'>#{</span><span class='id ident
|
|
|
269
269
|
</div>
|
|
270
270
|
|
|
271
271
|
<div id="footer">
|
|
272
|
-
Generated on Fri
|
|
272
|
+
Generated on Fri Feb 14 13:25:30 2025 by
|
|
273
273
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
274
274
|
0.9.37 (ruby-3.3.5).
|
|
275
275
|
</div>
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
</div>
|
|
115
115
|
|
|
116
116
|
<div id="footer">
|
|
117
|
-
Generated on Fri
|
|
117
|
+
Generated on Fri Feb 14 13:25:30 2025 by
|
|
118
118
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
119
119
|
0.9.37 (ruby-3.3.5).
|
|
120
120
|
</div>
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
</div>
|
|
115
115
|
|
|
116
116
|
<div id="footer">
|
|
117
|
-
Generated on Fri
|
|
117
|
+
Generated on Fri Feb 14 13:25:30 2025 by
|
|
118
118
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
119
119
|
0.9.37 (ruby-3.3.5).
|
|
120
120
|
</div>
|
data/doc/Anchormodel/Util.html
CHANGED
|
@@ -458,7 +458,13 @@
|
|
|
458
458
|
139
|
|
459
459
|
140
|
|
460
460
|
141
|
|
461
|
-
142
|
|
461
|
+
142
|
|
462
|
+
143
|
|
463
|
+
144
|
|
464
|
+
145
|
|
465
|
+
146
|
|
466
|
+
147
|
|
467
|
+
148</pre>
|
|
462
468
|
</td>
|
|
463
469
|
<td>
|
|
464
470
|
<pre class="code"><span class="info file"># File 'lib/anchormodel/util.rb', line 14</span>
|
|
@@ -497,7 +503,13 @@
|
|
|
497
503
|
|
|
498
504
|
<span class='comment'># Overwrite reader to force building anchors at every retrieval
|
|
499
505
|
</span> <span class='id identifier rubyid_model_class'>model_class</span><span class='period'>.</span><span class='id identifier rubyid_define_method'>define_method</span><span class='lparen'>(</span><span class='id identifier rubyid_attribute_name'>attribute_name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span> <span class='kw'>do</span>
|
|
500
|
-
<span class='
|
|
506
|
+
<span class='comment'># This patch fixes an issue in combination with the active_type gem, causing virtual models to always read nil on anchormodel attributes.
|
|
507
|
+
</span> <span class='id identifier rubyid_raw_data'>raw_data</span> <span class='op'>=</span> <span class='kw'>if</span> <span class='kw'>defined?</span><span class='lparen'>(</span><span class='const'>ActiveType</span><span class='op'>::</span><span class='const'>Object</span><span class='rparen'>)</span> <span class='op'>&&</span> <span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>ActiveType</span><span class='op'>::</span><span class='const'>Object</span><span class='rparen'>)</span>
|
|
508
|
+
<span class='id identifier rubyid_virtual_attributes'>virtual_attributes</span><span class='lbracket'>[</span><span class='id identifier rubyid_attribute_name'>attribute_name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rbracket'>]</span>
|
|
509
|
+
<span class='kw'>else</span>
|
|
510
|
+
<span class='id identifier rubyid_read_attribute_before_type_cast'>read_attribute_before_type_cast</span><span class='lparen'>(</span><span class='id identifier rubyid_attribute_name'>attribute_name</span><span class='rparen'>)</span>
|
|
511
|
+
<span class='kw'>end</span>
|
|
512
|
+
<span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <span class='id identifier rubyid_active_model_type_value'>active_model_type_value</span><span class='period'>.</span><span class='id identifier rubyid_deserialize'>deserialize</span><span class='lparen'>(</span><span class='id identifier rubyid_raw_data'>raw_data</span><span class='rparen'>)</span>
|
|
501
513
|
|
|
502
514
|
<span class='comment'># If this attribute holds multiple anchormodels (`belongs_to_anchormodels`), patch the Array before returning in order to implement collection modifiers:
|
|
503
515
|
</span> <span class='kw'>if</span> <span class='id identifier rubyid_multiple'>multiple</span>
|
|
@@ -602,7 +614,7 @@
|
|
|
602
614
|
</div>
|
|
603
615
|
|
|
604
616
|
<div id="footer">
|
|
605
|
-
Generated on Fri
|
|
617
|
+
Generated on Fri Feb 14 13:25:30 2025 by
|
|
606
618
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
607
619
|
0.9.37 (ruby-3.3.5).
|
|
608
620
|
</div>
|
|
@@ -129,7 +129,7 @@
|
|
|
129
129
|
</div>
|
|
130
130
|
|
|
131
131
|
<div id="footer">
|
|
132
|
-
Generated on Fri
|
|
132
|
+
Generated on Fri Feb 14 13:25:30 2025 by
|
|
133
133
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
134
134
|
0.9.37 (ruby-3.3.5).
|
|
135
135
|
</div>
|
data/doc/Anchormodel.html
CHANGED
|
@@ -243,6 +243,30 @@
|
|
|
243
243
|
<p>Retrieves a particular value given the key.</p>
|
|
244
244
|
</div></span>
|
|
245
245
|
|
|
246
|
+
</li>
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
<li class="public ">
|
|
250
|
+
<span class="summary_signature">
|
|
251
|
+
|
|
252
|
+
<a href="#first-class_method" title="first (class method)">.<strong>first</strong> ⇒ Object </a>
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
</span>
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
<span class="summary_desc"><div class='inline'>
|
|
267
|
+
<p>Shorthand to satisfy rubocop.</p>
|
|
268
|
+
</div></span>
|
|
269
|
+
|
|
246
270
|
</li>
|
|
247
271
|
|
|
248
272
|
|
|
@@ -320,6 +344,28 @@
|
|
|
320
344
|
|
|
321
345
|
|
|
322
346
|
|
|
347
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
|
348
|
+
|
|
349
|
+
</li>
|
|
350
|
+
|
|
351
|
+
|
|
352
|
+
<li class="public ">
|
|
353
|
+
<span class="summary_signature">
|
|
354
|
+
|
|
355
|
+
<a href="#as_json-instance_method" title="#as_json (instance method)">#<strong>as_json</strong> ⇒ Object </a>
|
|
356
|
+
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
</span>
|
|
360
|
+
|
|
361
|
+
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
|
|
367
|
+
|
|
368
|
+
|
|
323
369
|
<span class="summary_desc"><div class='inline'></div></span>
|
|
324
370
|
|
|
325
371
|
</li>
|
|
@@ -487,11 +533,6 @@
|
|
|
487
533
|
<pre class="lines">
|
|
488
534
|
|
|
489
535
|
|
|
490
|
-
43
|
|
491
|
-
44
|
|
492
|
-
45
|
|
493
|
-
46
|
|
494
|
-
47
|
|
495
536
|
48
|
|
496
537
|
49
|
|
497
538
|
50
|
|
@@ -509,10 +550,15 @@
|
|
|
509
550
|
62
|
|
510
551
|
63
|
|
511
552
|
64
|
|
512
|
-
65
|
|
553
|
+
65
|
|
554
|
+
66
|
|
555
|
+
67
|
|
556
|
+
68
|
|
557
|
+
69
|
|
558
|
+
70</pre>
|
|
513
559
|
</td>
|
|
514
560
|
<td>
|
|
515
|
-
<pre class="code"><span class="info file"># File 'lib/anchormodel.rb', line
|
|
561
|
+
<pre class="code"><span class="info file"># File 'lib/anchormodel.rb', line 48</span>
|
|
516
562
|
|
|
517
563
|
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_attributes'>attributes</span><span class='rparen'>)</span>
|
|
518
564
|
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_setup!'>setup!</span> <span class='kw'>unless</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_setup_completed'>setup_completed</span>
|
|
@@ -723,13 +769,13 @@
|
|
|
723
769
|
<pre class="lines">
|
|
724
770
|
|
|
725
771
|
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
772
|
+
40
|
|
773
|
+
41
|
|
774
|
+
42
|
|
775
|
+
43</pre>
|
|
730
776
|
</td>
|
|
731
777
|
<td>
|
|
732
|
-
<pre class="code"><span class="info file"># File 'lib/anchormodel.rb', line
|
|
778
|
+
<pre class="code"><span class="info file"># File 'lib/anchormodel.rb', line 40</span>
|
|
733
779
|
|
|
734
780
|
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_find'>find</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
|
|
735
781
|
<span class='kw'>return</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
|
@@ -741,9 +787,9 @@
|
|
|
741
787
|
</div>
|
|
742
788
|
|
|
743
789
|
<div class="method_details ">
|
|
744
|
-
<h3 class="signature " id="
|
|
790
|
+
<h3 class="signature " id="first-class_method">
|
|
745
791
|
|
|
746
|
-
.<strong>
|
|
792
|
+
.<strong>first</strong> ⇒ <tt>Object</tt>
|
|
747
793
|
|
|
748
794
|
|
|
749
795
|
|
|
@@ -752,7 +798,7 @@
|
|
|
752
798
|
</h3><div class="docstring">
|
|
753
799
|
<div class="discussion">
|
|
754
800
|
|
|
755
|
-
<p>
|
|
801
|
+
<p>Shorthand to satisfy rubocop</p>
|
|
756
802
|
|
|
757
803
|
|
|
758
804
|
</div>
|
|
@@ -773,6 +819,47 @@
|
|
|
773
819
|
<td>
|
|
774
820
|
<pre class="code"><span class="info file"># File 'lib/anchormodel.rb', line 29</span>
|
|
775
821
|
|
|
822
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span>
|
|
823
|
+
<span class='id identifier rubyid_all'>all</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span>
|
|
824
|
+
<span class='kw'>end</span></pre>
|
|
825
|
+
</td>
|
|
826
|
+
</tr>
|
|
827
|
+
</table>
|
|
828
|
+
</div>
|
|
829
|
+
|
|
830
|
+
<div class="method_details ">
|
|
831
|
+
<h3 class="signature " id="form_collection-class_method">
|
|
832
|
+
|
|
833
|
+
.<strong>form_collection</strong> ⇒ <tt>Object</tt>
|
|
834
|
+
|
|
835
|
+
|
|
836
|
+
|
|
837
|
+
|
|
838
|
+
|
|
839
|
+
</h3><div class="docstring">
|
|
840
|
+
<div class="discussion">
|
|
841
|
+
|
|
842
|
+
<p>Returns an array of tuples [label, key] suitable for passing as a collection to some form input helpers</p>
|
|
843
|
+
|
|
844
|
+
|
|
845
|
+
</div>
|
|
846
|
+
</div>
|
|
847
|
+
<div class="tags">
|
|
848
|
+
|
|
849
|
+
|
|
850
|
+
</div><table class="source_code">
|
|
851
|
+
<tr>
|
|
852
|
+
<td>
|
|
853
|
+
<pre class="lines">
|
|
854
|
+
|
|
855
|
+
|
|
856
|
+
34
|
|
857
|
+
35
|
|
858
|
+
36</pre>
|
|
859
|
+
</td>
|
|
860
|
+
<td>
|
|
861
|
+
<pre class="code"><span class="info file"># File 'lib/anchormodel.rb', line 34</span>
|
|
862
|
+
|
|
776
863
|
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_form_collection'>form_collection</span>
|
|
777
864
|
<span class='id identifier rubyid_entries_list'>entries_list</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_el'>el</span><span class='op'>|</span> <span class='lbracket'>[</span><span class='id identifier rubyid_el'>el</span><span class='period'>.</span><span class='id identifier rubyid_label'>label</span><span class='comma'>,</span> <span class='id identifier rubyid_el'>el</span><span class='period'>.</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rbracket'>]</span> <span class='rbrace'>}</span>
|
|
778
865
|
<span class='kw'>end</span></pre>
|
|
@@ -860,12 +947,12 @@
|
|
|
860
947
|
<pre class="lines">
|
|
861
948
|
|
|
862
949
|
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
950
|
+
72
|
|
951
|
+
73
|
|
952
|
+
74</pre>
|
|
866
953
|
</td>
|
|
867
954
|
<td>
|
|
868
|
-
<pre class="code"><span class="info file"># File 'lib/anchormodel.rb', line
|
|
955
|
+
<pre class="code"><span class="info file"># File 'lib/anchormodel.rb', line 72</span>
|
|
869
956
|
|
|
870
957
|
<span class='kw'>def</span> <span class='op'>==</span><span class='lparen'>(</span><span class='id identifier rubyid_other'>other</span><span class='rparen'>)</span>
|
|
871
958
|
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>&&</span> <span class='id identifier rubyid_key'>key</span> <span class='op'>==</span> <span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_key'>key</span>
|
|
@@ -873,6 +960,45 @@
|
|
|
873
960
|
</td>
|
|
874
961
|
</tr>
|
|
875
962
|
</table>
|
|
963
|
+
</div>
|
|
964
|
+
|
|
965
|
+
<div class="method_details ">
|
|
966
|
+
<h3 class="signature " id="as_json-instance_method">
|
|
967
|
+
|
|
968
|
+
#<strong>as_json</strong> ⇒ <tt>Object</tt>
|
|
969
|
+
|
|
970
|
+
|
|
971
|
+
|
|
972
|
+
|
|
973
|
+
|
|
974
|
+
</h3><div class="docstring">
|
|
975
|
+
<div class="discussion">
|
|
976
|
+
|
|
977
|
+
|
|
978
|
+
</div>
|
|
979
|
+
</div>
|
|
980
|
+
<div class="tags">
|
|
981
|
+
|
|
982
|
+
|
|
983
|
+
</div><table class="source_code">
|
|
984
|
+
<tr>
|
|
985
|
+
<td>
|
|
986
|
+
<pre class="lines">
|
|
987
|
+
|
|
988
|
+
|
|
989
|
+
89
|
|
990
|
+
90
|
|
991
|
+
91</pre>
|
|
992
|
+
</td>
|
|
993
|
+
<td>
|
|
994
|
+
<pre class="code"><span class="info file"># File 'lib/anchormodel.rb', line 89</span>
|
|
995
|
+
|
|
996
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_as_json'>as_json</span>
|
|
997
|
+
<span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
|
|
998
|
+
<span class='kw'>end</span></pre>
|
|
999
|
+
</td>
|
|
1000
|
+
</tr>
|
|
1001
|
+
</table>
|
|
876
1002
|
</div>
|
|
877
1003
|
|
|
878
1004
|
<div class="method_details ">
|
|
@@ -899,12 +1025,12 @@
|
|
|
899
1025
|
<pre class="lines">
|
|
900
1026
|
|
|
901
1027
|
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
1028
|
+
81
|
|
1029
|
+
82
|
|
1030
|
+
83</pre>
|
|
905
1031
|
</td>
|
|
906
1032
|
<td>
|
|
907
|
-
<pre class="code"><span class="info file"># File 'lib/anchormodel.rb', line
|
|
1033
|
+
<pre class="code"><span class="info file"># File 'lib/anchormodel.rb', line 81</span>
|
|
908
1034
|
|
|
909
1035
|
<span class='kw'>def</span> <span class='id identifier rubyid_inspect'>inspect</span>
|
|
910
1036
|
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>#<</span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_content'><</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_key'>key</span><span class='embexpr_end'>}</span><span class='tstring_content'>>:</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_hash'>hash</span><span class='embexpr_end'>}</span><span class='tstring_content'>></span><span class='tstring_end'>"</span></span>
|
|
@@ -940,12 +1066,12 @@
|
|
|
940
1066
|
<pre class="lines">
|
|
941
1067
|
|
|
942
1068
|
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
1069
|
+
77
|
|
1070
|
+
78
|
|
1071
|
+
79</pre>
|
|
946
1072
|
</td>
|
|
947
1073
|
<td>
|
|
948
|
-
<pre class="code"><span class="info file"># File 'lib/anchormodel.rb', line
|
|
1074
|
+
<pre class="code"><span class="info file"># File 'lib/anchormodel.rb', line 77</span>
|
|
949
1075
|
|
|
950
1076
|
<span class='kw'>def</span> <span class='id identifier rubyid_label'>label</span>
|
|
951
1077
|
<span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_t'>t</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_demodulize'>demodulize</span><span class='embexpr_end'>}</span><span class='tstring_content'>|</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_humanize'>humanize</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
|
@@ -979,12 +1105,12 @@
|
|
|
979
1105
|
<pre class="lines">
|
|
980
1106
|
|
|
981
1107
|
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
1108
|
+
85
|
|
1109
|
+
86
|
|
1110
|
+
87</pre>
|
|
985
1111
|
</td>
|
|
986
1112
|
<td>
|
|
987
|
-
<pre class="code"><span class="info file"># File 'lib/anchormodel.rb', line
|
|
1113
|
+
<pre class="code"><span class="info file"># File 'lib/anchormodel.rb', line 85</span>
|
|
988
1114
|
|
|
989
1115
|
<span class='kw'>def</span> <span class='id identifier rubyid_to_s'>to_s</span>
|
|
990
1116
|
<span class='id identifier rubyid_inspect'>inspect</span>
|
|
@@ -999,7 +1125,7 @@
|
|
|
999
1125
|
</div>
|
|
1000
1126
|
|
|
1001
1127
|
<div id="footer">
|
|
1002
|
-
Generated on Fri
|
|
1128
|
+
Generated on Fri Feb 14 13:25:30 2025 by
|
|
1003
1129
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
1004
1130
|
0.9.37 (ruby-3.3.5).
|
|
1005
1131
|
</div>
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
</div>
|
|
131
131
|
|
|
132
132
|
<div id="footer">
|
|
133
|
-
Generated on Fri
|
|
133
|
+
Generated on Fri Feb 14 13:25:30 2025 by
|
|
134
134
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
135
135
|
0.9.37 (ruby-3.3.5).
|
|
136
136
|
</div>
|
|
@@ -191,7 +191,7 @@
|
|
|
191
191
|
</div>
|
|
192
192
|
|
|
193
193
|
<div id="footer">
|
|
194
|
-
Generated on Fri
|
|
194
|
+
Generated on Fri Feb 14 13:25:30 2025 by
|
|
195
195
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
196
196
|
0.9.37 (ruby-3.3.5).
|
|
197
197
|
</div>
|
data/doc/AnchormodelInput.html
CHANGED
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
</div>
|
|
131
131
|
|
|
132
132
|
<div id="footer">
|
|
133
|
-
Generated on Fri
|
|
133
|
+
Generated on Fri Feb 14 13:25:30 2025 by
|
|
134
134
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
135
135
|
0.9.37 (ruby-3.3.5).
|
|
136
136
|
</div>
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
</div>
|
|
131
131
|
|
|
132
132
|
<div id="footer">
|
|
133
|
-
Generated on Fri
|
|
133
|
+
Generated on Fri Feb 14 13:25:30 2025 by
|
|
134
134
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
135
135
|
0.9.37 (ruby-3.3.5).
|
|
136
136
|
</div>
|
data/doc/_index.html
CHANGED
|
@@ -220,7 +220,7 @@
|
|
|
220
220
|
</div>
|
|
221
221
|
|
|
222
222
|
<div id="footer">
|
|
223
|
-
Generated on Fri
|
|
223
|
+
Generated on Fri Feb 14 13:25:30 2025 by
|
|
224
224
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
225
225
|
0.9.37 (ruby-3.3.5).
|
|
226
226
|
</div>
|
data/doc/file.README.html
CHANGED
|
@@ -339,7 +339,7 @@
|
|
|
339
339
|
</div></div>
|
|
340
340
|
|
|
341
341
|
<div id="footer">
|
|
342
|
-
Generated on Fri
|
|
342
|
+
Generated on Fri Feb 14 13:25:30 2025 by
|
|
343
343
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
344
344
|
0.9.37 (ruby-3.3.5).
|
|
345
345
|
</div>
|
data/doc/index.html
CHANGED
|
@@ -339,7 +339,7 @@
|
|
|
339
339
|
</div></div>
|
|
340
340
|
|
|
341
341
|
<div id="footer">
|
|
342
|
-
Generated on Fri
|
|
342
|
+
Generated on Fri Feb 14 13:25:30 2025 by
|
|
343
343
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
344
344
|
0.9.37 (ruby-3.3.5).
|
|
345
345
|
</div>
|
data/doc/method_list.html
CHANGED
|
@@ -80,6 +80,14 @@
|
|
|
80
80
|
|
|
81
81
|
|
|
82
82
|
<li class="odd ">
|
|
83
|
+
<div class="item">
|
|
84
|
+
<span class='object_link'><a href="Anchormodel.html#as_json-instance_method" title="Anchormodel#as_json (method)">#as_json</a></span>
|
|
85
|
+
<small>Anchormodel</small>
|
|
86
|
+
</div>
|
|
87
|
+
</li>
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
<li class="even ">
|
|
83
91
|
<div class="item">
|
|
84
92
|
<span class='object_link'><a href="Anchormodel/ActiveModelTypeValueSingle.html#attribute-instance_method" title="Anchormodel::ActiveModelTypeValueSingle#attribute (method)">#attribute</a></span>
|
|
85
93
|
<small>Anchormodel::ActiveModelTypeValueSingle</small>
|
|
@@ -87,7 +95,7 @@
|
|
|
87
95
|
</li>
|
|
88
96
|
|
|
89
97
|
|
|
90
|
-
<li class="
|
|
98
|
+
<li class="odd ">
|
|
91
99
|
<div class="item">
|
|
92
100
|
<span class='object_link'><a href="Anchormodel/Attribute.html#attribute_name-instance_method" title="Anchormodel::Attribute#attribute_name (method)">#attribute_name</a></span>
|
|
93
101
|
<small>Anchormodel::Attribute</small>
|
|
@@ -95,7 +103,7 @@
|
|
|
95
103
|
</li>
|
|
96
104
|
|
|
97
105
|
|
|
98
|
-
<li class="
|
|
106
|
+
<li class="even ">
|
|
99
107
|
<div class="item">
|
|
100
108
|
<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
109
|
<small>Anchormodel::ModelMixin</small>
|
|
@@ -103,7 +111,7 @@
|
|
|
103
111
|
</li>
|
|
104
112
|
|
|
105
113
|
|
|
106
|
-
<li class="
|
|
114
|
+
<li class="odd ">
|
|
107
115
|
<div class="item">
|
|
108
116
|
<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
117
|
<small>Anchormodel::ModelMixin</small>
|
|
@@ -111,7 +119,7 @@
|
|
|
111
119
|
</li>
|
|
112
120
|
|
|
113
121
|
|
|
114
|
-
<li class="
|
|
122
|
+
<li class="even ">
|
|
115
123
|
<div class="item">
|
|
116
124
|
<span class='object_link'><a href="Anchormodel/ActiveModelTypeValueMulti.html#cast-instance_method" title="Anchormodel::ActiveModelTypeValueMulti#cast (method)">#cast</a></span>
|
|
117
125
|
<small>Anchormodel::ActiveModelTypeValueMulti</small>
|
|
@@ -119,7 +127,7 @@
|
|
|
119
127
|
</li>
|
|
120
128
|
|
|
121
129
|
|
|
122
|
-
<li class="
|
|
130
|
+
<li class="odd ">
|
|
123
131
|
<div class="item">
|
|
124
132
|
<span class='object_link'><a href="Anchormodel/ActiveModelTypeValueSingle.html#cast-instance_method" title="Anchormodel::ActiveModelTypeValueSingle#cast (method)">#cast</a></span>
|
|
125
133
|
<small>Anchormodel::ActiveModelTypeValueSingle</small>
|
|
@@ -127,7 +135,7 @@
|
|
|
127
135
|
</li>
|
|
128
136
|
|
|
129
137
|
|
|
130
|
-
<li class="
|
|
138
|
+
<li class="even ">
|
|
131
139
|
<div class="item">
|
|
132
140
|
<span class='object_link'><a href="Anchormodel/ActiveModelTypeValueSingle.html#changed_in_place%3F-instance_method" title="Anchormodel::ActiveModelTypeValueSingle#changed_in_place? (method)">#changed_in_place?</a></span>
|
|
133
141
|
<small>Anchormodel::ActiveModelTypeValueSingle</small>
|
|
@@ -135,7 +143,7 @@
|
|
|
135
143
|
</li>
|
|
136
144
|
|
|
137
145
|
|
|
138
|
-
<li class="
|
|
146
|
+
<li class="odd ">
|
|
139
147
|
<div class="item">
|
|
140
148
|
<span class='object_link'><a href="Anchormodel.html#find-class_method" title="Anchormodel.find (method)">find</a></span>
|
|
141
149
|
<small>Anchormodel</small>
|
|
@@ -143,6 +151,14 @@
|
|
|
143
151
|
</li>
|
|
144
152
|
|
|
145
153
|
|
|
154
|
+
<li class="even ">
|
|
155
|
+
<div class="item">
|
|
156
|
+
<span class='object_link'><a href="Anchormodel.html#first-class_method" title="Anchormodel.first (method)">first</a></span>
|
|
157
|
+
<small>Anchormodel</small>
|
|
158
|
+
</div>
|
|
159
|
+
</li>
|
|
160
|
+
|
|
161
|
+
|
|
146
162
|
<li class="odd ">
|
|
147
163
|
<div class="item">
|
|
148
164
|
<span class='object_link'><a href="Anchormodel.html#form_collection-class_method" title="Anchormodel.form_collection (method)">form_collection</a></span>
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
</div>
|
|
101
101
|
|
|
102
102
|
<div id="footer">
|
|
103
|
-
Generated on Fri
|
|
103
|
+
Generated on Fri Feb 14 13:25:30 2025 by
|
|
104
104
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
105
105
|
0.9.37 (ruby-3.3.5).
|
|
106
106
|
</div>
|
data/lib/anchormodel/util.rb
CHANGED
|
@@ -45,7 +45,13 @@ module Anchormodel::Util
|
|
|
45
45
|
|
|
46
46
|
# Overwrite reader to force building anchors at every retrieval
|
|
47
47
|
model_class.define_method(attribute_name.to_s) do
|
|
48
|
-
|
|
48
|
+
# This patch fixes an issue in combination with the active_type gem, causing virtual models to always read nil on anchormodel attributes.
|
|
49
|
+
raw_data = if defined?(ActiveType::Object) && is_a?(ActiveType::Object)
|
|
50
|
+
virtual_attributes[attribute_name.to_s]
|
|
51
|
+
else
|
|
52
|
+
read_attribute_before_type_cast(attribute_name)
|
|
53
|
+
end
|
|
54
|
+
result = active_model_type_value.deserialize(raw_data)
|
|
49
55
|
|
|
50
56
|
# If this attribute holds multiple anchormodels (`belongs_to_anchormodels`), patch the Array before returning in order to implement collection modifiers:
|
|
51
57
|
if multiple
|
data/lib/anchormodel.rb
CHANGED
|
@@ -25,6 +25,11 @@ class Anchormodel
|
|
|
25
25
|
entries_list
|
|
26
26
|
end
|
|
27
27
|
|
|
28
|
+
# Shorthand to satisfy rubocop
|
|
29
|
+
def self.first
|
|
30
|
+
all.first
|
|
31
|
+
end
|
|
32
|
+
|
|
28
33
|
# Returns an array of tuples [label, key] suitable for passing as a collection to some form input helpers
|
|
29
34
|
def self.form_collection
|
|
30
35
|
entries_list.map { |el| [el.label, el.key.to_s] }
|
|
@@ -80,6 +85,10 @@ class Anchormodel
|
|
|
80
85
|
def to_s
|
|
81
86
|
inspect
|
|
82
87
|
end
|
|
88
|
+
|
|
89
|
+
def as_json
|
|
90
|
+
key.to_s
|
|
91
|
+
end
|
|
83
92
|
end
|
|
84
93
|
|
|
85
94
|
require 'anchormodel/util'
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
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.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sandro Kalbermatter
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 2025-02-14 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: rails
|
|
@@ -150,8 +149,6 @@ dependencies:
|
|
|
150
149
|
- - "~>"
|
|
151
150
|
- !ruby/object:Gem::Version
|
|
152
151
|
version: 1.6.0
|
|
153
|
-
description:
|
|
154
|
-
email:
|
|
155
152
|
executables: []
|
|
156
153
|
extensions: []
|
|
157
154
|
extra_rdoc_files: []
|
|
@@ -252,7 +249,6 @@ homepage: https://github.com/kalsan/anchormodel
|
|
|
252
249
|
licenses:
|
|
253
250
|
- LGPL-3.0-or-later
|
|
254
251
|
metadata: {}
|
|
255
|
-
post_install_message:
|
|
256
252
|
rdoc_options: []
|
|
257
253
|
require_paths:
|
|
258
254
|
- lib
|
|
@@ -267,8 +263,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
267
263
|
- !ruby/object:Gem::Version
|
|
268
264
|
version: '0'
|
|
269
265
|
requirements: []
|
|
270
|
-
rubygems_version: 3.
|
|
271
|
-
signing_key:
|
|
266
|
+
rubygems_version: 3.6.3
|
|
272
267
|
specification_version: 4
|
|
273
268
|
summary: Bringing object-oriented programming to Rails enums
|
|
274
269
|
test_files: []
|