magic-presenter 1.0.0 → 1.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ea088d296d049e126830600bfcc99c5265fbecb41e9d5db51c0d27c02c73e6c8
4
- data.tar.gz: e5932ed2865e3f534d181ee18c9eccf26aefb250b48e5564cd3d56cf8b55040d
3
+ metadata.gz: 85a48a4efc45256dda38fcb77db1d477118712dde86576c03978c5e653188f3a
4
+ data.tar.gz: 542fbc0836dcce1d87b845b5d84a405d45941c139e6ed41e4114dca002b29409
5
5
  SHA512:
6
- metadata.gz: 3cd7a2241b4eae01cc861951d165cff4c52a563ee517c0f05f9e90fab79ac6c53f81a0ca561fb09a1fdaf88d9d39ef435953dcc87a3642c3a632735401d0a0b1
7
- data.tar.gz: b4fb57b18de8d450e2297722ab69b09761fb9c5bb89d3b93dfb418f5f064771c5736f9423a617ddab404fb0193608c2c331f415c6a2bd44daee85321dd635bec
6
+ metadata.gz: efd78f68cd2eb528c2208e220422945fc75ec8c464d71e9b2a92c2fd65d49a01943e6b2d78962f02cadafb3edb3b664b414b7ef4d0e08937b9e30569c0449c1a
7
+ data.tar.gz: 06f5013f93b259fbcc962a8a6caf4d6a8126b96ad5ca075d388dd184db410f90df8d335b03563a8eb5ae9168f175adc84b75c8256eb0094cf8200d30b899a3b5
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'delegate'
4
-
5
3
  module Magic
6
4
  module Presenter
7
5
  # = Magic Presenter
@@ -31,7 +29,14 @@ module Magic
31
29
 
32
30
  def model_class
33
31
  Presentable.classes
34
- .select { Presenter.for(_1) == self }
32
+ .select { self.for(_1) == self }
33
+ .optional do |classes|
34
+ next unless classes.many?
35
+
36
+ classes
37
+ .select { name_for(_1) == name }
38
+ .optional { classes if _1.empty? } # lookup failed — return original
39
+ end
35
40
  .sole
36
41
  rescue Enumerable::SoleItemExpectedError => error
37
42
  raise Lookup::Error, "#{error.message
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'magic/core_ext/kernel/optional'
4
+
3
5
  module Magic
4
6
  module Presenter
5
7
  class Engine < ::Rails::Engine # :nodoc:
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Magic
4
4
  module Presenter
5
- VERSION = '1.0.0'
5
+ VERSION = '1.1.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: magic-presenter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Senko
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2024-11-23 00:00:00.000000000 Z
10
+ date: 2025-05-20 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: rails
@@ -57,6 +57,20 @@ dependencies:
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
59
  version: '0'
60
+ - !ruby/object:Gem::Dependency
61
+ name: magic-support
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ type: :runtime
68
+ prerelease: false
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: '0'
60
74
  description: Based on Magic Decorator, it’s meant to replace Draper.
61
75
  email:
62
76
  - Alexander.Senko@gmail.com
@@ -100,7 +114,7 @@ licenses:
100
114
  metadata:
101
115
  homepage_uri: https://github.com/Alexander-Senko/magic-presenter
102
116
  source_code_uri: https://github.com/Alexander-Senko/magic-presenter
103
- changelog_uri: https://github.com/Alexander-Senko/magic-presenter/blob/v1.0.0/CHANGELOG.md
117
+ changelog_uri: https://github.com/Alexander-Senko/magic-presenter/blob/v1.1.0/CHANGELOG.md
104
118
  rdoc_options: []
105
119
  require_paths:
106
120
  - lib
@@ -115,7 +129,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
115
129
  - !ruby/object:Gem::Version
116
130
  version: '0'
117
131
  requirements: []
118
- rubygems_version: 3.6.0.dev
132
+ rubygems_version: 3.6.5
119
133
  specification_version: 4
120
134
  summary: Presentation layer for Rails models
121
135
  test_files: []