magic-presenter 1.0.0 → 1.1.1

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: 3f8acf031c1cac6d6c3ad42b7fb0c42d0bb492cc951bd3e60bb6f4177dc33642
4
+ data.tar.gz: fd8d32d210deee950e649677b7a0a6117167db611dc9b632d09d2c6b929d82b6
5
5
  SHA512:
6
- metadata.gz: 3cd7a2241b4eae01cc861951d165cff4c52a563ee517c0f05f9e90fab79ac6c53f81a0ca561fb09a1fdaf88d9d39ef435953dcc87a3642c3a632735401d0a0b1
7
- data.tar.gz: b4fb57b18de8d450e2297722ab69b09761fb9c5bb89d3b93dfb418f5f064771c5736f9423a617ddab404fb0193608c2c331f415c6a2bd44daee85321dd635bec
6
+ metadata.gz: 7eda0245ebecb2ed85985b8f48c7b7e5665fa070b143cdd9dbbe3418deed79754bca1669d4abbec0be5a6c3d7c542cc1a7ad8040c68acf9a387dc120d2d4eab8
7
+ data.tar.gz: 63cc0d1a5cb0758a3de70f9708f87b842f1a1f9f842121280141f039fe4c5664ff8ec0647df6109f31048af74a334821eb7f12c049d2c3f06b9a67d671e7b614
@@ -1,27 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- Gem::Author ||= Struct.new(
4
- :name,
5
- :email,
6
- :github,
7
- ) do
8
- def github_url = github && "https://github.com/#{github}"
9
- end
3
+ require 'rubygems/author'
10
4
 
11
5
  module Magic
12
- module Presenter # :nodoc:
13
- AUTHORS = [ # rubocop:disable Style/MutableConstant
14
- Gem::Author.new(
15
- name: 'Alexander Senko',
16
- email: 'Alexander.Senko@gmail.com',
17
- github: 'Alexander-Senko',
18
- ),
19
- ]
20
-
21
- class << AUTHORS
22
- def names = filter_map &:name
23
- def emails = filter_map &:email
24
- def github_url = filter_map(&:github_url).first
6
+ module Presenter
7
+ class Author < Gem::Author # :nodoc:
8
+ new(
9
+ name: 'Alexander Senko',
10
+ email: 'Alexander.Senko@gmail.com',
11
+ github: 'Alexander-Senko',
12
+ )
25
13
  end
26
14
  end
27
15
  end
@@ -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.1'
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.1
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: 1980-01-02 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,13 +114,13 @@ 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.1/CHANGELOG.md
104
118
  rdoc_options: []
105
119
  require_paths:
106
120
  - lib
107
121
  required_ruby_version: !ruby/object:Gem::Requirement
108
122
  requirements:
109
- - - "~>"
123
+ - - ">="
110
124
  - !ruby/object:Gem::Version
111
125
  version: '3.2'
112
126
  required_rubygems_version: !ruby/object:Gem::Requirement
@@ -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.7.0.dev
119
133
  specification_version: 4
120
134
  summary: Presentation layer for Rails models
121
135
  test_files: []