mystique 0.5.2 → 0.5.3

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
  SHA1:
3
- metadata.gz: 962f1c55063f1f6290c886c5745b27fe1e050dd0
4
- data.tar.gz: 4ad5b6fb40671f1e6dd48c98e303be69c98a6235
3
+ metadata.gz: a9ca67e6011ca818f15bc34f295119deb7529ae8
4
+ data.tar.gz: f9c0bc8e5fda09066ca3989d731e9454d0a68fb3
5
5
  SHA512:
6
- metadata.gz: 9031edaf2db5862fd0aed63f2e2ab66a85e6a29f0306365f79f1a272a767e7c0cb3d03d9601c93fe01b21d3387c2d866833e5e0008ff22d9e8c3931145c7ce52
7
- data.tar.gz: fe92484bfa886c6ac6b5707aed1c2908d5f1315579c2bf5cd70e91d88efb3bbc0a6b602a2d91a8e9f33ed7508ace61ca623a208cfbab4902ad9774ea9a0a3a8d
6
+ metadata.gz: 8f15d83eb42a7151fbbbb052e1780b5867c14a1f69848725b9a10e03df4bf004e04b4c75a0eadbab75777e1ad0827fe98b9d382b44449e76ed4bead92dd8cb1d
7
+ data.tar.gz: 07f69248e20d11ee4b88676b023822df6a65c5cf4538f73d362f9679301493fe0884beac8e1520f79ce701bef42e54167adc25743526e31dfb63550744cd38c5
@@ -38,6 +38,13 @@ module Mystique
38
38
  def method_missing(method, *args, &block)
39
39
  return target.send(method, *args, &block) if method.to_s.start_with?("to_")
40
40
  format( target.send(method, *args, &block) )
41
+ rescue NoMethodError => ex
42
+ if use_magic_brackets?
43
+ format(target.send(:[], *[method].concat(args), &block))
44
+ else
45
+ raise ex
46
+ end
47
+
41
48
  end
42
49
 
43
50
  def format(value)
@@ -50,9 +57,9 @@ module Mystique
50
57
  else
51
58
  value
52
59
  end
53
- Mystique.present(Callable(result).call(value, context))
60
+ Mystique.present(Callable(result).call(value, context))
54
61
  end
55
-
62
+
56
63
  def self.context(ctx=Undefined)
57
64
  @__context__ = ctx unless ctx == Undefined
58
65
  @__context__
@@ -68,10 +75,6 @@ module Mystique
68
75
  end
69
76
  end
70
77
 
71
- def __formats__
72
- self.class.__formats__
73
- end
74
-
75
78
  def self.default_formats
76
79
  if block_given?
77
80
  @__default_formats__ = yield
@@ -83,7 +86,23 @@ module Mystique
83
86
  def default_formats
84
87
  Mystique::Presenter.default_formats
85
88
  end
89
+
90
+ def self.use_magic_brackets
91
+ @__use_magic_brackets__ = true
92
+ end
93
+
94
+ def self.use_magic_brackets?
95
+ @__use_magic_brackets__
96
+ end
97
+
98
+ def use_magic_brackets?
99
+ self.class.use_magic_brackets?
100
+ end
86
101
 
102
+ def __formats__
103
+ self.class.__formats__
104
+ end
105
+
87
106
  def self.__formats__
88
107
  @__formats__ ||= Mystique::Presenter.default_formats
89
108
  end
@@ -1,3 +1,3 @@
1
1
  module Mystique
2
- VERSION = "0.5.2"
2
+ VERSION = "0.5.3"
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.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Federico Iachetti
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-08-10 00:00:00.000000000 Z
11
+ date: 2015-08-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler