anchormodel 0.1.3 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '01259cd9abb8c08dd46ee9ebc39697fbd8eb17128bd09d8e2ffd20aca88b3c68'
4
- data.tar.gz: 93eb6c57fae4d705cee6d92e9a5e5a3c5cfd56e3cc60306e906d5654521ae586
3
+ metadata.gz: 0321a1c26ba215c332b2b496cefda3a5a1459f82599dc2655e16368e53af351e
4
+ data.tar.gz: 4361b8edc741f1509f460fc579d1f3e3ded9e59f0ae1d8ff623da6bee6502f4b
5
5
  SHA512:
6
- metadata.gz: 564faa96c2eea1cc8bcbb3c05dbe9b7c86dd0a62618cff2d3ed56611a3c4a1431e1a2e1bfdaa30e7ccbd1a2a4723648aeb269ed6ef656c44daa01d21488516a3
7
- data.tar.gz: 18d9556c138412dfa107e9958a3f4bfd8e992b9a26c85bd3516d3bc7afc3bee700c72b7d915fde69787087334be8692bf6afbb77d3dab1bc233c4be7b27ee6d2
6
+ metadata.gz: a18303288bcf7aac1a46d6de54f4adc631a8ff535c37a401a39beda41f762cf2cf94d11a266367e80026fefddb3fb0174b826be9f0f5e6fb4e036286e99d4f89
7
+ data.tar.gz: 22a389c15f1cc54f9e7fb9b20b9b54683db85cbcbbd16cfc9fb42c900221665d1969c79cbfe8a3f290efaf8a472f1e2d3fed9f050b2c27b2d818abc12c3f0a03
data/.gitignore CHANGED
@@ -1,2 +1,3 @@
1
1
  .rubocop.yml
2
- .yardoc
2
+ .yardoc
3
+ /pkg/*
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ # 0.1.5 (24.04.2024)
2
+
3
+ - Enhance documentation
4
+ - Add support for simple_form
5
+
6
+ # 0.1.4 (23.04.2024)
7
+
8
+ - Stick closer to the Rails API of Value
9
+ - Enhance testing
10
+
1
11
  # 0.1.3 (19.05.2023)
2
12
 
3
13
  - Add Rails generator
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- anchormodel (0.1.2)
4
+ anchormodel (0.1.5.edge)
5
5
  rails (~> 7.0)
6
6
 
7
7
  GEM
@@ -78,41 +78,41 @@ GEM
78
78
  coderay (1.1.3)
79
79
  concurrent-ruby (1.1.10)
80
80
  crass (1.0.6)
81
- date (3.3.3)
81
+ date (3.3.4)
82
82
  erubi (1.12.0)
83
- globalid (1.0.1)
84
- activesupport (>= 5.0)
83
+ globalid (1.2.1)
84
+ activesupport (>= 6.1)
85
85
  i18n (1.12.0)
86
86
  concurrent-ruby (~> 1.0)
87
87
  json (2.6.3)
88
- loofah (2.19.1)
88
+ loofah (2.22.0)
89
89
  crass (~> 1.0.2)
90
- nokogiri (>= 1.5.9)
91
- mail (2.8.0.1)
90
+ nokogiri (>= 1.12.0)
91
+ mail (2.8.1)
92
92
  mini_mime (>= 0.1.1)
93
93
  net-imap
94
94
  net-pop
95
95
  net-smtp
96
- marcel (1.0.2)
96
+ marcel (1.0.4)
97
97
  method_source (1.0.0)
98
- mini_mime (1.1.2)
98
+ mini_mime (1.1.5)
99
99
  minitest (5.17.0)
100
100
  minitest-reporters (1.5.0)
101
101
  ansi
102
102
  builder
103
103
  minitest (>= 5.0)
104
104
  ruby-progressbar
105
- net-imap (0.3.4)
105
+ net-imap (0.4.10)
106
106
  date
107
107
  net-protocol
108
108
  net-pop (0.1.2)
109
109
  net-protocol
110
- net-protocol (0.2.1)
110
+ net-protocol (0.2.2)
111
111
  timeout
112
- net-smtp (0.3.3)
112
+ net-smtp (0.5.0)
113
113
  net-protocol
114
- nio4r (2.5.8)
115
- nokogiri (1.14.0-x86_64-linux)
114
+ nio4r (2.7.1)
115
+ nokogiri (1.16.4-x86_64-linux)
116
116
  racc (~> 1.4)
117
117
  parallel (1.22.1)
118
118
  parser (3.2.0.0)
@@ -120,9 +120,9 @@ GEM
120
120
  pry (0.14.1)
121
121
  coderay (~> 1.1)
122
122
  method_source (~> 1.0)
123
- racc (1.6.2)
123
+ racc (1.7.3)
124
124
  rack (2.2.5)
125
- rack-test (2.0.2)
125
+ rack-test (2.1.0)
126
126
  rack (>= 1.3)
127
127
  rails (7.0.4)
128
128
  actioncable (= 7.0.4)
@@ -138,11 +138,13 @@ GEM
138
138
  activesupport (= 7.0.4)
139
139
  bundler (>= 1.15.0)
140
140
  railties (= 7.0.4)
141
- rails-dom-testing (2.0.3)
142
- activesupport (>= 4.2.0)
141
+ rails-dom-testing (2.2.0)
142
+ activesupport (>= 5.0.0)
143
+ minitest
143
144
  nokogiri (>= 1.6)
144
- rails-html-sanitizer (1.5.0)
145
- loofah (~> 2.19, >= 2.19.1)
145
+ rails-html-sanitizer (1.6.0)
146
+ loofah (~> 2.21)
147
+ nokogiri (~> 1.14)
146
148
  railties (7.0.4)
147
149
  actionpack (= 7.0.4)
148
150
  activesupport (= 7.0.4)
@@ -172,20 +174,20 @@ GEM
172
174
  rubocop (>= 1.33.0, < 2.0)
173
175
  ruby-progressbar (1.11.0)
174
176
  sqlite3 (1.6.0-x86_64-linux)
175
- thor (1.2.1)
176
- timeout (0.3.1)
177
+ thor (1.3.1)
178
+ timeout (0.4.1)
177
179
  tzinfo (2.0.5)
178
180
  concurrent-ruby (~> 1.0)
179
181
  unicode-display_width (2.4.2)
180
182
  webrick (1.7.0)
181
- websocket-driver (0.7.5)
183
+ websocket-driver (0.7.6)
182
184
  websocket-extensions (>= 0.1.0)
183
185
  websocket-extensions (0.1.5)
184
186
  yard (0.9.28)
185
187
  webrick (~> 1.7.0)
186
188
  yard-activesupport-concern (0.0.1)
187
189
  yard (>= 0.8)
188
- zeitwerk (2.6.6)
190
+ zeitwerk (2.6.13)
189
191
 
190
192
  PLATFORMS
191
193
  x86_64-linux
data/README.md CHANGED
@@ -35,7 +35,7 @@ are regular classes and can easily be extended.
35
35
 
36
36
  ### ActiveEnum
37
37
 
38
- The gem (ActiveEnum)[https://github.com/adzap/active_enum] allows to create
38
+ The gem [ActiveEnum](https://github.com/adzap/active_enum) allows to create
39
39
  Enum-like classes that can be extended. However it only supports Integer keys. I
40
40
  find this unsatisfactory, as debugging with tools like `psql` or `mysql` is made
41
41
  unnecessarily hard when you only see numbers. Keys for enums should be
@@ -116,6 +116,41 @@ puts("User #{@user.name} has role #{@user.role.label}")
116
116
  @user.role.admin? # true if and only if the role is admin (false otherwise)
117
117
  ```
118
118
 
119
+ Your form could look something like this:
120
+
121
+ ```erb
122
+ <%= form_with(model: user) do |form| %>
123
+ <%# ... %>
124
+ <%= form.collection_select :role, Role.all, :key, :label %>
125
+ <%# ... %>
126
+ <% end %>
127
+ ```
128
+
129
+ ## Using Anchormodel with Simpleform
130
+
131
+ Anchormodel has built-in support for the [simple_form](https://github.com/heartcombo/simple_form) gem by providing an input for the type `:anchormodel` which displays anchormodel attributes as a collection select.
132
+
133
+ After SimpleForm is installed, you can write your form as:
134
+
135
+ ```erb
136
+ <%= simple_form_for user do |f| %>
137
+ <%# ... %>
138
+ <%= f.input :role %>
139
+ <%# ... %>
140
+ <% end %>
141
+ ```
142
+
143
+ Or, if you prefer radio buttons instead:
144
+
145
+
146
+ ```erb
147
+ <%= simple_form_for user do |f| %>
148
+ <%# ... %>
149
+ <%= f.input :role, as: :anchormodel_radio_buttons %>
150
+ <%# ... %>
151
+ <% end %>
152
+ ```
153
+
119
154
  # Rails Enum style model methods
120
155
 
121
156
  By default, Anchormodel adds three kinds of methods for each key to the model:
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.5
data/anchormodel.gemspec CHANGED
@@ -2,33 +2,33 @@
2
2
  # This file is auto-generated via: 'rake gemspec'.
3
3
 
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: anchormodel 0.1.3 ruby lib
5
+ # stub: anchormodel 0.1.5 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "anchormodel".freeze
9
- s.version = "0.1.3"
9
+ s.version = "0.1.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 = "2023-05-19"
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, "anchormodel.gemspec".freeze, "bin/rails".freeze, "doc/Anchormodel.html".freeze, "doc/Anchormodel/ActiveModelTypeValue.html".freeze, "doc/Anchormodel/Attribute.html".freeze, "doc/Anchormodel/ModelMixin.html".freeze, "doc/Anchormodel/Version.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.rb".freeze, "lib/anchormodel/attribute.rb".freeze, "lib/anchormodel/model_mixin.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/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/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]
14
+ s.date = "2024-04-24"
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/ActiveModelTypeValueSingle.html".freeze, "doc/Anchormodel/Attribute.html".freeze, "doc/Anchormodel/ModelMixin.html".freeze, "doc/Anchormodel/Util.html".freeze, "doc/Anchormodel/Version.html".freeze, "doc/AnchormodelGenerator.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_single.rb".freeze, "lib/anchormodel/attribute.rb".freeze, "lib/anchormodel/model_mixin.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/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/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.4.13".freeze
19
+ s.rubygems_version = "3.5.9".freeze
20
20
  s.summary = "Bringing object-oriented programming to Rails enums".freeze
21
21
 
22
22
  s.specification_version = 4
23
23
 
24
- s.add_runtime_dependency(%q<rails>.freeze, ["~> 7.0"])
25
- s.add_development_dependency(%q<rake>.freeze, ["~> 13.0.6"])
26
- s.add_development_dependency(%q<pry>.freeze, ["~> 0.14.1"])
27
- s.add_development_dependency(%q<rubocop>.freeze, ["~> 1.43.0"])
28
- s.add_development_dependency(%q<rubocop-rails>.freeze, ["~> 2.17.4"])
29
- s.add_development_dependency(%q<yard>.freeze, ["~> 0.9.28"])
30
- s.add_development_dependency(%q<yard-activesupport-concern>.freeze, ["~> 0.0.1"])
31
- s.add_development_dependency(%q<minitest>.freeze, ["~> 5.17.0"])
32
- s.add_development_dependency(%q<minitest-reporters>.freeze, ["~> 1.5.0"])
33
- s.add_development_dependency(%q<sqlite3>.freeze, ["~> 1.6.0"])
24
+ s.add_runtime_dependency(%q<rails>.freeze, ["~> 7.0".freeze])
25
+ s.add_development_dependency(%q<rake>.freeze, ["~> 13.0.6".freeze])
26
+ s.add_development_dependency(%q<pry>.freeze, ["~> 0.14.1".freeze])
27
+ s.add_development_dependency(%q<rubocop>.freeze, ["~> 1.43.0".freeze])
28
+ s.add_development_dependency(%q<rubocop-rails>.freeze, ["~> 2.17.4".freeze])
29
+ s.add_development_dependency(%q<yard>.freeze, ["~> 0.9.28".freeze])
30
+ s.add_development_dependency(%q<yard-activesupport-concern>.freeze, ["~> 0.0.1".freeze])
31
+ s.add_development_dependency(%q<minitest>.freeze, ["~> 5.17.0".freeze])
32
+ s.add_development_dependency(%q<minitest-reporters>.freeze, ["~> 1.5.0".freeze])
33
+ s.add_development_dependency(%q<sqlite3>.freeze, ["~> 1.6.0".freeze])
34
34
  end