sugarcube 2.12.3 → 3.0.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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/lib/all/sugarcube-repl/repl.rb +191 -0
  4. data/lib/all/sugarcube/log.rb +2 -2
  5. data/lib/android/sugarcube-repl/repl.rb +42 -0
  6. data/lib/android/sugarcube/log.rb +8 -0
  7. data/lib/cocoa/sugarcube-repl/repl.rb +48 -214
  8. data/lib/cocoa/sugarcube/log.rb +1 -1
  9. data/lib/ios/sugarcube-568/uiimage.rb +3 -0
  10. data/lib/ios/sugarcube-repl/repl.rb +27 -30
  11. data/lib/osx/sugarcube-repl/repl.rb +14 -25
  12. data/lib/sugarcube-568.rb +2 -9
  13. data/lib/sugarcube-animations.rb +2 -12
  14. data/lib/sugarcube-anonymous.rb +2 -9
  15. data/lib/sugarcube-appkit.rb +3 -12
  16. data/lib/sugarcube-attributedstring.rb +3 -12
  17. data/lib/sugarcube-awesome.rb +2 -9
  18. data/lib/sugarcube-color.rb +2 -9
  19. data/lib/sugarcube-constants.rb +2 -9
  20. data/lib/sugarcube-coregraphics.rb +3 -9
  21. data/lib/sugarcube-corelocation.rb +6 -9
  22. data/lib/sugarcube-events.rb +2 -9
  23. data/lib/sugarcube-factories.rb +2 -9
  24. data/lib/sugarcube-files.rb +2 -9
  25. data/lib/sugarcube-foundation.rb +3 -9
  26. data/lib/sugarcube-gestures.rb +2 -9
  27. data/lib/sugarcube-image.rb +2 -9
  28. data/lib/sugarcube-indexpath.rb +2 -9
  29. data/lib/sugarcube-legacy.rb +2 -18
  30. data/lib/sugarcube-localized.rb +2 -9
  31. data/lib/sugarcube-modal.rb +2 -9
  32. data/lib/sugarcube-notifications.rb +2 -9
  33. data/lib/sugarcube-nscoder.rb +3 -9
  34. data/lib/sugarcube-nsdata.rb +3 -12
  35. data/lib/sugarcube-nsdate.rb +3 -14
  36. data/lib/sugarcube-nsuserdefaults.rb +3 -9
  37. data/lib/sugarcube-numbers.rb +2 -15
  38. data/lib/sugarcube-pipes.rb +2 -9
  39. data/lib/sugarcube-pointer.rb +2 -9
  40. data/lib/sugarcube-repl.rb +2 -16
  41. data/lib/sugarcube-spritekit.rb +6 -12
  42. data/lib/sugarcube-timer.rb +2 -14
  43. data/lib/sugarcube-to_s.rb +2 -15
  44. data/lib/sugarcube-uikit.rb +3 -12
  45. data/lib/sugarcube-unholy.rb +2 -9
  46. data/lib/sugarcube.rb +33 -19
  47. data/lib/sugarcube_pre_setup.rb +44 -0
  48. data/lib/version.rb +1 -1
  49. data/spec/cocoa/nsindexpath_spec.rb +12 -0
  50. metadata +9 -6
  51. data/lib/ios/sugarcube/sugarcube_cleanup.rb +0 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 752d7dc0ceb544310335899b60a7a0fe6318e67e
4
- data.tar.gz: d9b262efcddb013f30fbe2df46a16c82901917e3
3
+ metadata.gz: af8ff35d025712022d4072681b4e992bbdf35933
4
+ data.tar.gz: fa3313ebe914b87fc53dba1fefbbe7850b15f1c9
5
5
  SHA512:
6
- metadata.gz: 987362220aa71265af8616f58eb50520f5b16438e67c6b527b829de9c334139d45f80ca4b6f9aa219841a7a16bfa057fbef6e946a2c58b2b787c3f355a18cf27
7
- data.tar.gz: 09470def3535035ddf877bff1e0977e9ce7e42a545e6c683053e741178d0986d09d86dc1dc607c284547bfef33ac9f4cb000d58d1ec8238441baed2b74b53c67
6
+ metadata.gz: 356bcc1d1b071d764f689f12a0b451e51923af1c45c58862c6a9bddff0fbec2b2c5ab9b4101dc9e2647ed35a3fcf714aab2faf45ac3b55626edca5ad498f2c2c
7
+ data.tar.gz: 3ebd09a8e365620ba204ed78ae0cc0f35c0af051b9f949cf095e407ff7b9bcec3cf72ba1dfd69eca62013b2ab369cf7382df367137f0e422e1f9f4b09f04746f
data/README.md CHANGED
@@ -1658,9 +1658,9 @@ Open up `CLLocationCoordinate2D` to provide handy-dandies
1658
1658
  ```ruby
1659
1659
  # distances
1660
1660
 
1661
- > denver_co = CLLocationCoordinate2D.new(39.739188,-104.985223)
1661
+ > denver_co = CLLocationCoordinate2D.new(39.739188, -104.985223)
1662
1662
  => #<CLLocationCoordinate2D latitude=39.7391815185547 longitude=-104.985198974609>
1663
- > loveland_oh = CLLocationCoordinate2D.new(39.268128,-84.257648)
1663
+ > loveland_oh = CLLocationCoordinate2D.new(39.268128, -84.257648)
1664
1664
  => #<CLLocationCoordinate2D latitude=39.2681274414062 longitude=-84.2576293945312>
1665
1665
  > denver_co.distance_to(loveland_oh)
1666
1666
  => 1773425.54893302 # in meters
@@ -0,0 +1,191 @@
1
+ module SugarCube
2
+ class Repl
3
+ class << self
4
+
5
+ @adjust_item = nil
6
+ @tree_items = nil
7
+ @collapsed_items = nil
8
+ @restore = nil
9
+
10
+ def adjust(item=nil)
11
+ return @adjust_item unless item
12
+
13
+ if item.is_a? Fixnum
14
+ @tree_items ||= build_default_tree
15
+ item = @tree_items[item]
16
+ end
17
+
18
+ # a/adjust will return this object
19
+ @adjust_item = item
20
+
21
+ adjust_init(item)
22
+
23
+ item
24
+ end
25
+
26
+ def collapse(item)
27
+ if item.is_a? Fixnum
28
+ @tree_items ||= build_default_tree
29
+ item = @tree_items[item]
30
+ end
31
+
32
+ @collapsed_items ||= []
33
+ if @collapsed_items.include?(item)
34
+ @collapsed_items.delete(item)
35
+ else
36
+ @collapsed_items << item
37
+ end
38
+
39
+ retval = tree
40
+
41
+ if @collapsed_items
42
+ @collapsed_items.keep_if { |v| @tree_items.include? v }
43
+ end
44
+
45
+ retval
46
+ end
47
+
48
+ def set_default(item)
49
+ @default = item
50
+ end
51
+
52
+ def clear_default
53
+ @default = nil
54
+ end
55
+
56
+ def register_tree_selector(klass, selector=nil, &sel_blk)
57
+ if selector && sel_blk
58
+ raise "You can't hand me a block AND a selector. I don't know what to do with both!"
59
+ end
60
+ tree_selectors[klass] = selector || sel_blk
61
+ end
62
+
63
+ def tree_selectors(klass=nil)
64
+ if ! @tree_selectors
65
+ @tree_selectors ||= {}
66
+ @tree_selectors[nil.class] = -> (foo) { nil }
67
+ register_default_tree_selectors
68
+ end
69
+
70
+ if klass
71
+ @tree_selectors[klass]
72
+ else
73
+ @tree_selectors
74
+ end
75
+ end
76
+
77
+ # @param item this can be a tree-like item (View, ViewController, CALayer,
78
+ # Menu) or an integer, in which case it will select that window. Defalt
79
+ # is to display the keyWindow
80
+ # @param selector If you pass an unsupported object to tree, you will need
81
+ # to pass a selector as well - this method should return an array of
82
+ # items which are passed recursively to tree
83
+ # @block sel_blk If a block is passed, it will be used to build the array of
84
+ # items that are called recursively
85
+ def tree(item=nil, selector=nil, &sel_blk)
86
+ item = get_tree_item(item)
87
+ if selector || sel_blk
88
+ register_tree_selector(item.class, selector, &sel_blk)
89
+ end
90
+
91
+ @tree_items = build_tree(item)
92
+ if @collapsed_items
93
+ @collapsed_items.keep_if { |v| @tree_items.include? v }
94
+ end
95
+
96
+ draw_tree(item)
97
+ puts ''
98
+
99
+ return item
100
+ end
101
+
102
+ def draw_tree(item, tab=nil, is_last=true, items_index=0)
103
+ space = ' '
104
+ if items_index < 10
105
+ print ' '
106
+ elsif items_index < 100
107
+ print ' '
108
+ elsif items_index > 999 # good god, man!
109
+ space = ''
110
+ end
111
+ print items_index.to_s + ":" + space
112
+
113
+ if tab
114
+ print tab
115
+ if @collapsed_items && @collapsed_items.include?(item)
116
+ print '<<< '
117
+ else
118
+ if is_last
119
+ print '`-- '
120
+ tab += ' '
121
+ else
122
+ print '+-- '
123
+ tab += '| '
124
+ end
125
+ end
126
+ else
127
+ print '. '
128
+ tab = ''
129
+ end
130
+
131
+ if self == item || @adjust_item == item
132
+ print "\033[1m"
133
+ end
134
+ print draw_tree_item(item)
135
+ if self == item || @adjust_item == item
136
+ print "\033[0m"
137
+ end
138
+ puts
139
+
140
+ items = call_item_selector(item)
141
+
142
+ unless @collapsed_items && @collapsed_items.include?(item)
143
+ items.each_with_index do |subitem, index|
144
+ items_index += 1
145
+ if self.respond_to? :draw_tree
146
+ items_index = draw_tree(subitem, tab, index == items.length - 1, items_index)
147
+ else
148
+ items_index = draw_tree(subitem, tab, index == items.length - 1, items_index)
149
+ end
150
+ end
151
+ end
152
+
153
+ return items_index
154
+ end
155
+
156
+ def build_tree(item)
157
+ items = call_item_selector(item)
158
+
159
+ ret = [item]
160
+ return ret if @collapsed_items && @collapsed_items.include?(item)
161
+
162
+ items.each_with_index do |subitem, index|
163
+ ret.concat build_tree(subitem)
164
+ end
165
+ ret
166
+ end
167
+
168
+ def call_item_selector(item)
169
+ selector = nil
170
+ klass = item.class
171
+ while klass && !selector
172
+ selector = tree_selectors(klass)
173
+ klass = klass.superclass
174
+ end
175
+
176
+ if !selector
177
+ raise "Unable to determine a SugarCube::Repl::tree selector for #{item.class.to_s}"
178
+ end
179
+
180
+ if selector.is_a? Proc
181
+ items = selector.call(item)
182
+ else
183
+ items = item.send(selector)
184
+ end
185
+
186
+ return items || []
187
+ end
188
+
189
+ end
190
+ end
191
+ end
@@ -11,7 +11,7 @@ module SugarCube
11
11
  if suppress?
12
12
  log << message
13
13
  elsif log?
14
- stderr(message)
14
+ SugarCube.stderr(message)
15
15
  end
16
16
 
17
17
  self
@@ -25,7 +25,7 @@ module SugarCube
25
25
  output << "\n"
26
26
  output << message
27
27
  end
28
- NSLog(output)
28
+ SugarCube.stderr(output)
29
29
  @log = nil
30
30
  end
31
31
 
@@ -0,0 +1,42 @@
1
+ module SugarCube
2
+ class << Repl
3
+
4
+ def build_default_tree
5
+ build_tree(@default)
6
+ end
7
+
8
+ def adjust_init(item)
9
+ if item.is_a?(Android::View)
10
+ @restore = {}
11
+ end
12
+ end
13
+
14
+ def register_default_tree_selectors
15
+ register_tree_selector(Android::ViewLayout) do |view|
16
+ views = []
17
+ item.getChildCount.times do |index|
18
+ views << item.getChildAt(index)
19
+ end
20
+ views
21
+ end
22
+ register_tree_selector(Android::View) { |view| [view] }
23
+ end
24
+
25
+ def draw_tree_item(item)
26
+ item.to_s
27
+ end
28
+
29
+ def get_tree_item(item)
30
+ if item.nil?
31
+ @default
32
+ else
33
+ item
34
+ end
35
+ end
36
+
37
+ def format_frame(frame)
38
+ "[[#{frame.origin.x}, #{frame.origin.y}], [#{frame.size.width}, #{frame.size.height}]]"
39
+ end
40
+
41
+ end
42
+ end
@@ -0,0 +1,8 @@
1
+ module SugarCube
2
+ module_function
3
+
4
+ def stderr(message)
5
+ puts message
6
+ end
7
+
8
+ end
@@ -1,63 +1,23 @@
1
1
  module SugarCube
2
- module Repl
3
- module_function
2
+ class << Repl
4
3
 
5
- @sugarcube_view = nil
6
- @sugarcube_items = nil
7
- @sugarcube_collapsed_items = nil
8
- @sugarcube_restore = nil
9
-
10
- def adjust(view=nil)
11
- return @sugarcube_view unless view
12
-
13
- if view.is_a? Fixnum
14
- @sugarcube_items ||= SugarCube::Repl::build_tree(window, :subviews)
15
- view = @sugarcube_items[view]
16
- end
17
-
18
- # a/adjust will return this object
19
- @sugarcube_view = view
20
-
21
- adjust_init(view)
22
-
23
- view
24
- end
25
- alias a adjust
26
-
27
- def collapse(view)
28
- if view.is_a? Fixnum
29
- @sugarcube_items ||= SugarCube::Repl::build_tree(window, :subviews)
30
- view = @sugarcube_items[view]
31
- end
32
-
33
- @sugarcube_collapsed_items ||= []
34
- if @sugarcube_collapsed_items.include?(view)
35
- @sugarcube_collapsed_items.delete(view)
36
- else
37
- @sugarcube_collapsed_items << view
38
- end
39
-
40
- retval = tree
41
-
42
- if @sugarcube_collapsed_items
43
- @sugarcube_collapsed_items.keep_if { |v| @sugarcube_items.include? v }
44
- end
45
-
46
- retval
4
+ def build_default_tree
5
+ build_tree(window)
47
6
  end
48
- alias coll collapse
49
7
 
50
8
  ##| FRAME
51
9
  def frame(f=nil)
52
10
  return unless check_sugarcube_view
53
11
 
54
- return @sugarcube_view.frame unless f
12
+ return @adjust_item.frame unless f
55
13
 
56
- f = SugarCube::CoreGraphics::Rect(f)
57
- @sugarcube_view.frame = f
14
+ if defined?(SugarCube::CoreGraphics)
15
+ f = SugarCube::CoreGraphics::Rect(f)
16
+ end
17
+ @adjust_item.frame = f
58
18
  puts format_frame(f)
59
19
 
60
- @sugarcube_view
20
+ @adjust_item
61
21
  end
62
22
  alias f frame
63
23
 
@@ -70,12 +30,12 @@ module SugarCube
70
30
  def right(val=1)
71
31
  return unless check_sugarcube_view
72
32
 
73
- f = @sugarcube_view.frame
33
+ f = @adjust_item.frame
74
34
  f.origin.x += val
75
- @sugarcube_view.frame = f
35
+ @adjust_item.frame = f
76
36
  puts format_frame(f)
77
37
 
78
- @sugarcube_view
38
+ @adjust_item
79
39
  end
80
40
  alias r right
81
41
 
@@ -87,31 +47,35 @@ module SugarCube
87
47
  def down(val=1)
88
48
  return unless check_sugarcube_view
89
49
 
90
- f = @sugarcube_view.frame
50
+ f = @adjust_item.frame
91
51
  f.origin.y += val
92
- @sugarcube_view.frame = f
52
+ @adjust_item.frame = f
93
53
  puts format_frame(f)
94
54
 
95
- @sugarcube_view
55
+ @adjust_item
96
56
  end
97
57
  alias d down
98
58
 
99
59
  def origin x=nil, y=nil
100
60
  return unless check_sugarcube_view
101
61
 
102
- f = @sugarcube_view.frame
62
+ f = @adjust_item.frame
103
63
  return f.origin unless x
104
64
 
105
65
  if y
106
66
  f.origin.x = x
107
67
  f.origin.y = y
108
68
  else
109
- f.origin = SugarCube::CoreGraphics::Point(x)
69
+ if defined?(SugarCube::CoreGraphics)
70
+ f.origin = SugarCube::CoreGraphics::Point(x)
71
+ else
72
+ f.origin = x
73
+ end
110
74
  end
111
- @sugarcube_view.frame = f
75
+ @adjust_item.frame = f
112
76
  puts format_frame(f)
113
77
 
114
- @sugarcube_view
78
+ @adjust_item
115
79
  end
116
80
  alias o origin
117
81
 
@@ -124,12 +88,12 @@ module SugarCube
124
88
  def wider(val=1)
125
89
  return unless check_sugarcube_view
126
90
 
127
- f = @sugarcube_view.frame
91
+ f = @adjust_item.frame
128
92
  f.size.width += val
129
- @sugarcube_view.frame = f
93
+ @adjust_item.frame = f
130
94
  puts format_frame(f)
131
95
 
132
- @sugarcube_view
96
+ @adjust_item
133
97
  end
134
98
  alias w wider
135
99
 
@@ -141,31 +105,35 @@ module SugarCube
141
105
  def taller(val=1)
142
106
  return unless check_sugarcube_view
143
107
 
144
- f = @sugarcube_view.frame
108
+ f = @adjust_item.frame
145
109
  f.size.height += val
146
- @sugarcube_view.frame = f
110
+ @adjust_item.frame = f
147
111
  puts format_frame(f)
148
112
 
149
- @sugarcube_view
113
+ @adjust_item
150
114
  end
151
115
  alias t taller
152
116
 
153
117
  def size(w=nil, h=nil)
154
118
  return unless check_sugarcube_view
155
119
 
156
- f = @sugarcube_view.frame
120
+ f = @adjust_item.frame
157
121
  return f.size unless w
158
122
 
159
123
  if h
160
124
  f.size.width = w
161
125
  f.size.height = h
162
126
  else
163
- f.size = SugarCube::CoreGraphics::Size(w)
127
+ if defined?(SugarCube::CoreGraphics)
128
+ f.size = SugarCube::CoreGraphics::Size(w)
129
+ else
130
+ f.size = w
131
+ end
164
132
  end
165
- @sugarcube_view.frame = f
133
+ @adjust_item.frame = f
166
134
  puts format_frame(f)
167
135
 
168
- @sugarcube_view
136
+ @adjust_item
169
137
  end
170
138
  alias z size
171
139
 
@@ -173,7 +141,7 @@ module SugarCube
173
141
  def restore
174
142
  return unless check_sugarcube_view
175
143
 
176
- @sugarcube_restore.each do |msg, value|
144
+ @restore.each do |msg, value|
177
145
  SugarCube::Repl.send(msg, value)
178
146
  end
179
147
  end
@@ -203,7 +171,7 @@ module SugarCube
203
171
  element = 1 unless element
204
172
  total = 1 unless total
205
173
 
206
- view = @sugarcube_view
174
+ view = @adjust_item
207
175
 
208
176
  left = view.origin.x
209
177
  top = view.origin.y
@@ -223,17 +191,17 @@ module SugarCube
223
191
  end
224
192
  alias c center
225
193
 
226
- def set_default(item)
227
- @sugarcube_default_item = item
228
- end
229
-
230
- def clear_default
231
- @sugarcube_default_item = nil
194
+ def register_default_tree_selectors
195
+ register_tree_selector(CALayer, :sublayers)
196
+ if defined?(SKNode)
197
+ register_tree_selector(SKNode, :children)
198
+ end
199
+ register_platform_tree_selectors
232
200
  end
233
201
 
234
202
  def get_tree_item(item)
235
- if item.nil? && @sugarcube_default_item
236
- @sugarcube_default_item
203
+ if item.nil? && @default
204
+ @default
237
205
  elsif item.nil? || item.is_a?(Fixnum)
238
206
  window(item)
239
207
  else
@@ -241,142 +209,8 @@ module SugarCube
241
209
  end
242
210
  end
243
211
 
244
- # @param item this can be a tree-like item (View, ViewController, CALayer,
245
- # Menu) or an integer, in which case it will select that window. Defalt
246
- # is to display the keyWindow
247
- # @param selector If you pass an unsupported object to tree, you will need
248
- # to pass a selector as well - this method should return an array of
249
- # items which are passed recursively to tree
250
- # @block sel_blk If a block is passed, it will be used to build the array of
251
- # items that are called recursively
252
- def tree(item=nil, selector=nil, &sel_blk)
253
- item = get_tree_item(item)
254
-
255
- if sel_blk && selector
256
- raise "You can't hand me a block AND a selector. I don't know what to do with them!"
257
- elsif sel_blk
258
- selector = sel_blk
259
- elsif ! selector
260
- if item.is_a? CALayer
261
- selector = :sublayers
262
- elsif defined?(SKNode) && item.is_a?(SKNode)
263
- selector = :children
264
- else
265
- selector = get_tree_selector(item)
266
- end
267
-
268
- if !selector && @sugarcube_tree_selectors
269
- klass = item.class
270
- while klass && !selector
271
- selector = @sugarcube_tree_selectors[klass]
272
- klass = klass.superclass
273
- end
274
- end
275
-
276
- unless selector
277
- raise "Unable to determine a SugarCube::Repl::tree selector for #{item.class.to_s}"
278
- end
279
- end
280
-
281
- @sugarcube_items = SugarCube::Repl::build_tree(item, selector)
282
- if @sugarcube_collapsed_items
283
- @sugarcube_collapsed_items.keep_if { |v| @sugarcube_items.include? v }
284
- end
285
- if self.respond_to? :draw_tree
286
- draw_tree(item, selector)
287
- else
288
- SugarCube::Repl::draw_tree(item, selector)
289
- end
290
- puts ''
291
-
292
- return item
293
- end
294
-
295
- def register_tree_selector(klass, selector=nil, &sel_blk)
296
- @sugarcube_tree_selectors ||= {}
297
- @sugarcube_tree_selectors[klass] = selector || sel_blk
298
- end
299
-
300
- # Draws the tree items
301
- def draw_tree(item, selector, tab=nil, is_last=true, items_index=0)
302
- space = ' '
303
- if items_index < 10
304
- print ' '
305
- elsif items_index < 100
306
- print ' '
307
- elsif items_index > 999 # good god, man!
308
- space = ''
309
- end
310
- print items_index.to_s + ":" + space
311
-
312
- if tab
313
- print tab
314
- if @sugarcube_collapsed_items && @sugarcube_collapsed_items.include?(item)
315
- print '<<< '
316
- else
317
- if is_last
318
- print '`-- '
319
- tab += ' '
320
- else
321
- print '+-- '
322
- tab += '| '
323
- end
324
- end
325
- else
326
- print '. '
327
- tab = ''
328
- end
329
-
330
- if self == item || @sugarcube_view == item
331
- print "\033[1m"
332
- end
333
- print draw_tree_item(item)
334
- if self == item || @sugarcube_view == item
335
- print "\033[0m"
336
- end
337
- puts
338
-
339
- if selector.is_a? Proc
340
- items = selector.call(item)
341
- else
342
- items = item.send(selector)
343
- end
344
- items ||= []
345
-
346
- unless @sugarcube_collapsed_items && @sugarcube_collapsed_items.include?(item)
347
- items.each_with_index do |subview, index|
348
- items_index += 1
349
- if self.respond_to? :draw_tree
350
- items_index = draw_tree(subview, selector, tab, index == items.length - 1, items_index)
351
- else
352
- items_index = SugarCube::Repl::draw_tree(subview, selector, tab, index == items.length - 1, items_index)
353
- end
354
- end
355
- end
356
-
357
- return items_index
358
- end
359
-
360
- def build_tree(item, selector)
361
-
362
- if selector.is_a? Proc
363
- items = selector.call(item)
364
- else
365
- items = item.send(selector)
366
- end
367
- items ||= []
368
-
369
- ret = [item]
370
- return ret if @sugarcube_collapsed_items && @sugarcube_collapsed_items.include?(item)
371
-
372
- items.each_with_index do |subview, index|
373
- ret.concat SugarCube::Repl::build_tree(subview, selector)
374
- end
375
- ret
376
- end
377
-
378
212
  def check_sugarcube_view
379
- raise 'no view has been assigned to SugarCube::Repl::adjust' unless @sugarcube_view
213
+ raise 'no view has been assigned to SugarCube::Repl::adjust' unless @adjust_item
380
214
 
381
215
  true
382
216
  end