motion-kit 0.9.2 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 55c192be695d66c6b3fc090338d6c312d0a94d4b
4
- data.tar.gz: 8fb3369a2c8246361c63059633ed100c0b372b2a
3
+ metadata.gz: 462ad96599e3e4f19a827b86bdb8cf45e5dbe8d1
4
+ data.tar.gz: 7475ddcdd1b7827558b340287a06df1da1fa7208
5
5
  SHA512:
6
- metadata.gz: ce064768c19d37d367fc913f8bb197b65d78a093258c74612586ffe1ce166f111bcba113222c25e5e09e009e9c1e1eb5395e8590e11a732d3873361fb4217569
7
- data.tar.gz: b0af0cbe15e86674222944d0d663df685993cde83cc2e6bf64b1959475da895fb61d34a57e96405c9088f4e5cd50611e2450766409171f6f1738f49799b7b926
6
+ metadata.gz: fe0754471c569422d35378c26efd2b7c74e41fecf75d95f6c747af6ddc24105d8285b2b8eb11bcf554fcee76f5556bf97f387a6bafd2b66e20a75c70110894be
7
+ data.tar.gz: fa2b166f5e8b7e471000038831cda72f6f002b67b5bbdd1b7fd8bec56e39d77036557141d08191a98cf4a0417a233ea41f1acde4b29e0683bd1cd2d4bd416d5c
data/README.md CHANGED
@@ -675,32 +675,6 @@ relative_to foo, down: 5, right: 5
675
675
  from_bottom_left foo, up: 5, left: 5
676
676
  ```
677
677
 
678
- ### Constraints / AutoLayout
679
-
680
- Inside a `constraints` block you can use the same helpers as above, but you'll
681
- be using AutoLayout instead!
682
-
683
- ```ruby
684
- constraints do
685
- from_top_left x: 5, y: 5
686
- end
687
- ```
688
-
689
- But of course with constraints you can setup *relationships* between views.
690
-
691
- ```ruby
692
- foo = self.get(:foo)
693
- constraints do
694
- from_top_left x: 5, y:5
695
- from_top_left down: 5, right:5
696
- width.equals(foo).minus(10)
697
- height.equals(foo).minus(10)
698
- # that's repetitive, so just set 'size'
699
- size.equals(foo).minus(10)
700
- size.equals(foo).minus([10, 15]) # 10pt thinner, 15pt shorter
701
- end
702
- ```
703
-
704
678
 
705
679
  ### Some handy tricks
706
680
 
@@ -1,38 +1,18 @@
1
+ # These methods are defined in SugarCube's REPL helpers, but we want them to be
2
+ # delegated to either `UIViewLayout#frame` or `CALayer#setFrame`
3
+ #
1
4
  # @requires MotionKit::BaseLayout
2
5
  module MotionKit
3
6
  class BaseLayout
4
7
 
5
- def frame(*values)
6
- apply(:frame, *values)
7
- end
8
-
9
- def left(*values)
10
- apply(:left, *values)
11
- end
12
-
13
- def right(*values)
14
- apply(:right, *values)
15
- end
16
-
17
- def up(*values)
18
- apply(:up, *values)
19
- end
20
-
21
- def down(*values)
22
- apply(:down, *values)
23
- end
24
-
25
- def origin(*values)
26
- apply(:origin, *values)
27
- end
28
-
29
- def size(*values)
30
- apply(:size, *values)
31
- end
32
-
33
- def center(*values)
34
- apply(:center, *values)
35
- end
8
+ delegate_method_fix :frame
9
+ delegate_method_fix :left
10
+ delegate_method_fix :right
11
+ delegate_method_fix :up
12
+ delegate_method_fix :down
13
+ delegate_method_fix :origin
14
+ delegate_method_fix :size
15
+ delegate_method_fix :center
36
16
 
37
17
  end
38
18
  end
@@ -4,13 +4,15 @@ module MotionKit
4
4
 
5
5
  # gradient colors:
6
6
  def gradient(&block)
7
- gradient_layer = target.motion_kit_meta(:motionkit_gradient_layer) || begin
7
+ gradient_layer = target.motion_kit_meta[:motionkit_gradient_layer] || begin
8
8
  gradient_layer = CAGradientLayer.layer
9
9
  gradient_layer.frame = CGRect.new([0, 0], target.frame.size)
10
10
  target.layer.insertSublayer(gradient_layer, atIndex:0)
11
+ target.motion_kit_meta[:motionkit_gradient_layer] = gradient_layer
11
12
 
12
13
  gradient_layer
13
14
  end
15
+
14
16
  context(gradient_layer, &block)
15
17
 
16
18
  gradient_layer
@@ -276,6 +276,26 @@ module MotionKit
276
276
  @overridden_methods ||= []
277
277
  end
278
278
 
279
+ # Prevents infinite loops when methods that are defined on Object/Kernel
280
+ # are not properly delegated to the target.
281
+ def delegate_method_fix(method_name)
282
+ running_name = "motion_kit_is_calling_#{method_name}"
283
+ define_method(method_name) do |*args, &block|
284
+ if target.motion_kit_meta[running_name]
285
+ if block
286
+ apply_with_context(method_name, *args, &block)
287
+ else
288
+ apply_with_target(method_name, *args)
289
+ end
290
+ else
291
+ target.motion_kit_meta[running_name] = true
292
+ retval = apply(method_name, *args)
293
+ target.motion_kit_meta[running_name] = false
294
+ return retval
295
+ end
296
+ end
297
+ end
298
+
279
299
  # this last little "catch-all" method is helpful to warn against methods
280
300
  # that are defined already. Since magic methods are so important, this
281
301
  # warning can come in handy.
@@ -1,3 +1,3 @@
1
1
  module MotionKit
2
- VERSION = '0.9.2'
2
+ VERSION = '0.9.3'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: motion-kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
4
+ version: 0.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Colin T.A. Gray