expo 0.2.6 → 0.2.7

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.
Files changed (2) hide show
  1. data/lib/expo.rb +26 -27
  2. metadata +1 -1
data/lib/expo.rb CHANGED
@@ -61,7 +61,20 @@ class Expo
61
61
  end
62
62
  end
63
63
 
64
- private
64
+ def aside(*messages)
65
+ array, hash = parse_arguments(messages)
66
+ @context.merge!(hasherize(array) {|msg| @preso.send(msg) })
67
+ hash.each do |k,v|
68
+ @context[v] = @preso.send(k)
69
+ end
70
+ nil
71
+ end
72
+
73
+ def expose(*messages)
74
+ array, hash = parse_arguments(messages)
75
+ @message_map.merge!(hasherize(array).merge(hash))
76
+ nil
77
+ end
65
78
 
66
79
  def sub_expo(key, object, sub_expo_passed)
67
80
  @inner_calls << {
@@ -81,6 +94,8 @@ class Expo
81
94
  nil
82
95
  end
83
96
 
97
+ private
98
+
84
99
  def set_id(id)
85
100
  @id = id
86
101
  self
@@ -121,37 +136,21 @@ class Expo
121
136
  nil
122
137
  end
123
138
 
124
- def aside(*messages)
125
- receiver = @preso
126
- last = messages.pop
127
- if last.is_a?(Hash)
128
- last.each do |k,v|
129
- @context[v] = receiver.send(k)
130
- end
131
- elsif last
132
- @context[last] = receiver.send(last)
133
- end
134
- if messages.any?
135
- @context.merge!(hasherize(messages) {|msg| receiver.send(msg) })
136
- end
137
- nil
139
+ def hasherize(array, &block)
140
+ block ||= ->(e) { e }
141
+ Hash[*array.map{|e| [e, block.call(e)] }.flatten]
138
142
  end
139
143
 
140
- def expose(*messages)
141
- last = messages.pop
144
+ def parse_arguments(args)
145
+ last = args.pop
146
+ array = args
147
+ hash = {}
142
148
  if last.is_a?(Hash)
143
- @message_map.merge!(last)
149
+ hash = last
144
150
  elsif last
145
- @message_map[last] = last
151
+ array << last
146
152
  end
147
- if messages.any?
148
- @message_map.merge!(hasherize(messages) {|msg| msg })
149
- end
150
- nil
151
- end
152
-
153
- def hasherize(array, &block)
154
- Hash[*array.map{|e| [e, block.call(e)] }.flatten]
153
+ [array, hash]
155
154
  end
156
155
 
157
156
  class Proxy
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: expo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: