mystique 0.9.1 → 0.10.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: a2ab3b70d916e56b8cce430379cf148e049ad2681931f5ed0f81eaa089f2fc86
4
- data.tar.gz: 9785cc05e6ef78b7228ff97da5b11d303f6ff2053ac7a124ee69f6b15e021516
3
+ metadata.gz: 3002fb22f03736997a6c51b1a106646ac95d60eb24a8c5317a87d3ed60c1eb8e
4
+ data.tar.gz: 8a9a8a51104e4a058562d9b317ffbd4e4d397d4e0cec8169209213428816ead9
5
5
  SHA512:
6
- metadata.gz: c85c86ccea8b6a7178a3dc18a17e0cdad8663be3d0861e3ae6043cd1e8ec1e5479a327ca672bb60785f42dbab313b8fe475daaa776dda06186a63e3015aebd26
7
- data.tar.gz: 6e30f16fb9fcf8867a8a285c5c54bbdc4f865ea4ef0eea014a3927cff130f4cbde4d016b92f6e424291db02ddf64df88365d4ac4eda7f79ef16cd3bbb7b361fe
6
+ metadata.gz: ae3668d7b1c1a5f2929dc4b05a0a5149bd400bce74a9644718c4d047033762f885c1e89f9f938e64db82970fb9c49bdd395cd6bf6e4a1b0f5bb686a4a573cb54
7
+ data.tar.gz: d4a4dddb0f7121a5bf392faa5cffc6697c50a709396b11abf009f40eea4613633db31e9a23537c001e14b4bb79cd7ffaa1a1f2fe6416422e5193597ddb80e8f1
@@ -18,15 +18,15 @@ module Mystique
18
18
  end
19
19
  end
20
20
 
21
- def present_collection(collection, context: nil, &block)
22
- return to_enum(:present_collection, collection, context: context, &block) unless block_given?
21
+ def present_collection(collection, context: nil, with: nil, &block)
22
+ return to_enum(:present_collection, collection, context: context, with: with, &block) unless block_given?
23
23
 
24
24
  collection.each do |element|
25
25
  case block.arity
26
26
  when 2
27
- block.call( present(element, context: context), element )
27
+ block.call( present(element, context: context, with: with), element )
28
28
  else
29
- block.call(present(element, context: context))
29
+ block.call(present(element, context: context, with: with))
30
30
  end
31
31
  end
32
32
  end
@@ -41,6 +41,8 @@ module Mystique
41
41
  format( value )
42
42
  when presented_method?(method)
43
43
  Mystique.present(value, context: context)
44
+ when presented_collection?(method)
45
+ Mystique.present_collection(value, context: context, &block)
44
46
  else
45
47
  value
46
48
  end
@@ -54,6 +56,10 @@ module Mystique
54
56
  __presented_methods__.include?(method)
55
57
  end
56
58
 
59
+ def presented_collection?(method)
60
+ __presented_collections__.include?(method)
61
+ end
62
+
57
63
  def format(value)
58
64
  result = if __formats__.keys.include?(value)
59
65
  __formats__[value]
@@ -88,6 +94,13 @@ module Mystique
88
94
  end
89
95
  end
90
96
 
97
+ # TODO: Define this
98
+ def self.present_collection(matcher)
99
+ if matcher.is_a?(Symbol)
100
+ __presented_collections__ << matcher
101
+ end
102
+ end
103
+
91
104
  def self.format_and_present(matcher)
92
105
  format_method(method)
93
106
  present_method(method)
@@ -97,6 +110,10 @@ module Mystique
97
110
  @__presented_methods__ ||= []
98
111
  end
99
112
 
113
+ def self.__presented_collections__
114
+ @__presented_collections__ ||= []
115
+ end
116
+
100
117
  def self.__formatted_methods__
101
118
  @__formatted_methods__ ||= []
102
119
  end
@@ -105,6 +122,10 @@ module Mystique
105
122
  self.class.__presented_methods__
106
123
  end
107
124
 
125
+ def __presented_collections__
126
+ self.class.__presented_collections__
127
+ end
128
+
108
129
  def __formatted_methods__
109
130
  self.class.__formatted_methods__
110
131
  end
@@ -1,3 +1,3 @@
1
1
  module Mystique
2
- VERSION = "0.9.1"
2
+ VERSION = "0.10.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.9.1
4
+ version: 0.10.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: 2019-05-10 00:00:00.000000000 Z
11
+ date: 2019-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler