anchormodel 0.1.3 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
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