mystique 0.5.6 → 0.6.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
- SHA1:
3
- metadata.gz: dbde41cbc026427231903de3d7c01d697018055f
4
- data.tar.gz: 2d5cb47c000ab647b004844c2f4ff4f020cdb442
2
+ SHA256:
3
+ metadata.gz: d9603014937dc82f4e81b4e1fce4997aeae3b57c7eb332a00ee6461bf79ecc32
4
+ data.tar.gz: 34ec93591341d4df02f820fe634f7fcdbc415a762fdcaf5c97f8ad90798bf049
5
5
  SHA512:
6
- metadata.gz: 184110d5602a5acfaf10cfed601cb37475f7d40cba03cb685b32017b520abe8b7b2abf94dce47bf3e33a6483030b17e4337e96bb40f655e1c841a752935220a3
7
- data.tar.gz: 90639ff21fb28cb47287b3ab65dd66fb4d8af28db40959a4f4158fb9087f0c872ef70fccf53f7bdbb9974270abd8206a1a85ca74947b0b4770f2cee5ec78abdb
6
+ metadata.gz: 3588e13a44caf7e17ae68d6c433b1e18d1e4300b167c050b88b0b1ad5aa195ce34115e57f06454e5a546949b76c02d1e2c4acc528d5ce7269518b75011741019
7
+ data.tar.gz: ed0709c2b2991110952fca79a892fba077f5acc3c14b2a3ea758902de45e48ea58dddb7a3ba31b50d6ea2ef470d3c5767087cd851f97851b477c6ed7fbdb7e8d
@@ -10,19 +10,12 @@ module Mystique
10
10
  module_function
11
11
 
12
12
  def present(object, with: nil, context: nil, &block)
13
- presenter_class = case with
14
- when nil
15
- begin
16
- StringPlus.constantize("#{object.class}Presenter")
17
- rescue NameError
18
- return object
19
- end
20
- when Symbol, String
21
- StringPlus.constantize("#{with}Presenter")
22
- else
23
- with
24
- end
25
- presenter_class.present(object, context, &block)
13
+ begin
14
+ presenter_class = presenter_class_for(object, with)
15
+ presenter_class.present(object, context, &block)
16
+ rescue NameError
17
+ return object
18
+ end
26
19
  end
27
20
 
28
21
  def present_collection(collection, context: nil, &block)
@@ -32,4 +25,13 @@ module Mystique
32
25
  block.call present(element, context: context)
33
26
  end
34
27
  end
28
+
29
+ def presenter_class_for(object, with)
30
+ if with.respond_to?(:present)
31
+ with
32
+ else
33
+ StringPlus.constantize("#{with || object.class}Presenter")
34
+ end
35
+ end
36
+ private :presenter_class_for
35
37
  end
@@ -2,14 +2,8 @@ require "mystique/null_context"
2
2
 
3
3
  module Mystique
4
4
  class Presenter
5
- self.methods.select {|m| m.to_s.start_with?("to_") }.each do |m|
6
- define_method(m) do |*args, &block|
7
- target.send(m, *args, &block)
8
- end
9
- end
10
-
11
5
  def initialize(object, context)
12
- @__object__ = object
6
+ @__object__ = object
13
7
  @__context__ = context || self.class.context || NullContext
14
8
  end
15
9
 
@@ -73,9 +67,7 @@ module Mystique
73
67
  end
74
68
 
75
69
  def self.__formats__
76
- @__formats__ ||= {
77
- nil => "-----",
78
- }
70
+ @__formats__ ||= { nil => "-----" }
79
71
  end
80
72
 
81
73
  def __regex_formats__
@@ -83,7 +75,7 @@ module Mystique
83
75
  end
84
76
 
85
77
  def self.__regex_formats__
86
- @__regex_formats__ ||= __formats__.select {|k, v| k.is_a?(Regexp)}
78
+ @__regex_formats__ ||= __formats__.select {|key, _| key.is_a?(Regexp)}
87
79
  end
88
80
 
89
81
  def __class_formats__
@@ -91,7 +83,7 @@ module Mystique
91
83
  end
92
84
 
93
85
  def self.__class_formats__
94
- @__class_formats__ ||= __formats__.select {|k, v| k.is_a?(Class)}
86
+ @__class_formats__ ||= __formats__.select {|key, _| key.is_a?(Class)}
95
87
  end
96
88
  end
97
89
  end
@@ -1,7 +1,7 @@
1
1
  class HashPresenter < Mystique::Presenter
2
2
  def each
3
- super do |k, v|
4
- yield(Mystique.present(k), Mystique.present(v))
3
+ super do |key, value|
4
+ yield(Mystique.present(key), Mystique.present(value))
5
5
  end
6
6
  end
7
7
  end
@@ -1,3 +1,3 @@
1
1
  module Mystique
2
- VERSION = "0.5.6"
2
+ VERSION = "0.6.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mystique
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.6
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Federico Iachetti
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-04-01 00:00:00.000000000 Z
11
+ date: 2018-11-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -123,7 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
123
  version: '0'
124
124
  requirements: []
125
125
  rubyforge_project:
126
- rubygems_version: 2.5.1
126
+ rubygems_version: 2.7.7
127
127
  signing_key:
128
128
  specification_version: 4
129
129
  summary: Ruby presenter gem.