motion-kit 1.0.0 → 1.0.1
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 +4 -4
- data/lib/motion-kit-ios/helpers/layout_device.rb +8 -0
- data/lib/motion-kit/helpers/base_layout.rb +2 -0
- data/lib/motion-kit/helpers/tree_layout.rb +41 -1
- data/lib/motion-kit/version.rb +1 -1
- data/spec/ios/device_helpers_spec.rb +15 -1
- data/spec/ios/remove_layout_spec.rb +28 -1
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 03fe5d5549262f60c5bdd3f134c540c484ac038d
|
4
|
+
data.tar.gz: 2f8f044bf5a3724101f66abc81d92e8d479c7785
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9712cb0d52df40684046c7d8eb96221554cf8aa75a48ff9680fb03ab34d3facabebacd1d0515cb154ed2f0257310ab332cdc60bb5a25b0bb68767e41664bfe18
|
7
|
+
data.tar.gz: ad61b27f06f9fb5cd3a1882a780caf3fbc3b8d033e5f344d731ca4a8f497ea5169f24ce2f9e8c9c8fc46b22a33b252bf6586f7276abe2a24c0550dd70b4bc946
|
@@ -6,6 +6,14 @@ module MotionKit
|
|
6
6
|
UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPhone
|
7
7
|
end
|
8
8
|
|
9
|
+
def iphone55?
|
10
|
+
iphone? && UIScreen.mainScreen.bounds.size.width == 414 && UIScreen.mainScreen.bounds.size.height == 736
|
11
|
+
end
|
12
|
+
|
13
|
+
def iphone47?
|
14
|
+
iphone? && UIScreen.mainScreen.bounds.size.width == 375 && UIScreen.mainScreen.bounds.size.height == 667
|
15
|
+
end
|
16
|
+
|
9
17
|
def iphone4?
|
10
18
|
iphone? && UIScreen.mainScreen.bounds.size.width == 320 && UIScreen.mainScreen.bounds.size.height == 568
|
11
19
|
end
|
@@ -92,6 +92,8 @@ module MotionKit
|
|
92
92
|
return new_target unless block
|
93
93
|
# this little line is incredibly important; the context is only set on
|
94
94
|
# the top-level Layout object.
|
95
|
+
|
96
|
+
# mp "MOTIONKIT CONTEXT is #{new_target} meta: #{new_target.motion_kit_meta}"
|
95
97
|
return parent_layout.context(new_target, &block) unless is_parent_layout?
|
96
98
|
|
97
99
|
if new_target.is_a?(Symbol)
|
@@ -432,6 +432,19 @@ module MotionKit
|
|
432
432
|
removed
|
433
433
|
end
|
434
434
|
|
435
|
+
def remove_view(element_id, view)
|
436
|
+
unless is_parent_layout?
|
437
|
+
return parent_layout.remove_view(element_id, view)
|
438
|
+
end
|
439
|
+
removed = forget_tree(element_id, view)
|
440
|
+
if removed
|
441
|
+
context(self.view) do
|
442
|
+
self.apply(:remove_child, removed)
|
443
|
+
end
|
444
|
+
end
|
445
|
+
removed
|
446
|
+
end
|
447
|
+
|
435
448
|
# Removes a view from the list of elements this layout is "tracking", but
|
436
449
|
# leaves it in the view hierarchy. Returns the views that were removed.
|
437
450
|
def forget(element_id)
|
@@ -446,6 +459,33 @@ module MotionKit
|
|
446
459
|
removed
|
447
460
|
end
|
448
461
|
|
462
|
+
def forget_view(element_id, view)
|
463
|
+
unless is_parent_layout?
|
464
|
+
return parent_layout.remove_view(element_id, view)
|
465
|
+
end
|
466
|
+
# mp "forgetting #{element_id}, #{view}"
|
467
|
+
removed = nil
|
468
|
+
context(self.view) do
|
469
|
+
removed = @elements[element_id].delete(view) if @elements[element_id]
|
470
|
+
end
|
471
|
+
removed
|
472
|
+
end
|
473
|
+
|
474
|
+
# returns the root view that was removed, if any
|
475
|
+
def forget_tree(element_id, view)
|
476
|
+
removed = forget_view(element_id, view)
|
477
|
+
if view.subviews
|
478
|
+
view.subviews.each do | sub |
|
479
|
+
if (sub_ids = sub.motion_kit_meta[:motion_kit_ids])
|
480
|
+
sub_ids.each do | sub_id |
|
481
|
+
forget_tree(sub_id, sub) || []
|
482
|
+
end
|
483
|
+
end
|
484
|
+
end
|
485
|
+
end
|
486
|
+
removed
|
487
|
+
end
|
488
|
+
|
449
489
|
def create_default_root_context
|
450
490
|
if @assign_root
|
451
491
|
# Originally I thought default_root should be `apply`ied like other
|
@@ -458,7 +498,7 @@ module MotionKit
|
|
458
498
|
end
|
459
499
|
end
|
460
500
|
|
461
|
-
|
501
|
+
protected
|
462
502
|
|
463
503
|
# This method builds the layout and returns the root view.
|
464
504
|
def build_view
|
data/lib/motion-kit/version.rb
CHANGED
@@ -7,7 +7,21 @@ describe 'Device helpers' do
|
|
7
7
|
it 'should have device helpers' do
|
8
8
|
@layout.context({}) do
|
9
9
|
@layout.iphone?.should == true
|
10
|
-
|
10
|
+
if UIScreen.mainScreen.bounds.size.width == 320
|
11
|
+
@layout.iphone4?.should == true
|
12
|
+
else
|
13
|
+
@layout.iphone4?.should == false
|
14
|
+
end
|
15
|
+
if UIScreen.mainScreen.bounds.size.width == 375
|
16
|
+
@layout.iphone47?.should == true
|
17
|
+
else
|
18
|
+
@layout.iphone47?.should == false
|
19
|
+
end
|
20
|
+
if UIScreen.mainScreen.bounds.size.width == 375
|
21
|
+
@layout.iphone55?.should == true
|
22
|
+
else
|
23
|
+
@layout.iphone55?.should == false
|
24
|
+
end
|
11
25
|
@layout.iphone35?.should == false
|
12
26
|
@layout.ipad?.should == false
|
13
27
|
@layout.retina?.should == true
|
@@ -9,6 +9,23 @@ describe 'Remove views' do
|
|
9
9
|
@subject.get(:label).should.be.nil
|
10
10
|
end
|
11
11
|
|
12
|
+
it 'should remove the first label view' do
|
13
|
+
labels = @subject.all(:multi_label)
|
14
|
+
labels.count.should == 2
|
15
|
+
@subject.remove_first_multi_label
|
16
|
+
@subject.all(:multi_label).count.should == 1
|
17
|
+
@subject.get(:multi_label).should == labels.last
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should remove the last label view' do
|
21
|
+
labels = @subject.all(:multi_label)
|
22
|
+
labels.count.should == 2
|
23
|
+
@subject.remove_last_multi_label
|
24
|
+
@subject.all(:multi_label).count.should == 1
|
25
|
+
@subject.get(:multi_label).should == labels.first
|
26
|
+
end
|
27
|
+
|
28
|
+
|
12
29
|
it 'should forget the #image view' do
|
13
30
|
image = @subject.get(:image)
|
14
31
|
image.should.be.kind_of(UIImageView)
|
@@ -17,10 +34,20 @@ describe 'Remove views' do
|
|
17
34
|
image.superview.should.not.be.nil
|
18
35
|
end
|
19
36
|
|
37
|
+
it 'should forget the first label view' do
|
38
|
+
labels = @subject.all(:multi_label)
|
39
|
+
labels.count.should == 2
|
40
|
+
@subject.forget_first_multi_label
|
41
|
+
@subject.all(:multi_label).count.should == 1
|
42
|
+
@subject.get(:multi_label).should == labels.last
|
43
|
+
labels.first.superview.should.not.be.nil
|
44
|
+
end
|
45
|
+
|
46
|
+
|
20
47
|
it 'should remove the #view from the hierarchy' do
|
21
48
|
view = @subject.get(:view)
|
22
49
|
view.should.be.kind_of(UIView)
|
23
|
-
@subject.
|
50
|
+
@subject.remove_main_view
|
24
51
|
@subject.get(:view).should.be.nil
|
25
52
|
view.superview.should.be.nil
|
26
53
|
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: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Colin T.A. Gray
|
@@ -9,28 +9,28 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-05-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: dbt
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - "~>"
|
19
|
-
- !ruby/object:Gem::Version
|
20
|
-
version: '1.1'
|
21
18
|
- - ">="
|
22
19
|
- !ruby/object:Gem::Version
|
23
20
|
version: 1.1.5
|
21
|
+
- - "~>"
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: '1.1'
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: !ruby/object:Gem::Requirement
|
27
27
|
requirements:
|
28
|
-
- - "~>"
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
version: '1.1'
|
31
28
|
- - ">="
|
32
29
|
- !ruby/object:Gem::Version
|
33
30
|
version: 1.1.5
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.1'
|
34
34
|
description: |
|
35
35
|
MotionKit, for RubyMotion, is a DSL for creating and styling views in iOS and OS X.
|
36
36
|
email:
|