motion-kit 0.18.0 → 1.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.
- checksums.yaml +4 -4
- data/README.md +39 -1
- data/lib/motion-kit-tvos/deprecated.rb +31 -0
- data/lib/motion-kit-tvos/dummy.rb +93 -0
- data/lib/motion-kit-tvos/helpers/constraints_helpers.rb +24 -0
- data/lib/motion-kit-tvos/helpers/layout_device.rb +36 -0
- data/lib/motion-kit-tvos/helpers/layout_orientation.rb +54 -0
- data/lib/motion-kit-tvos/helpers/uibutton_helpers.rb +52 -0
- data/lib/motion-kit-tvos/helpers/uiview_autoresizing_helpers.rb +79 -0
- data/lib/motion-kit-tvos/helpers/uiview_constraints_helpers.rb +36 -0
- data/lib/motion-kit-tvos/helpers/uiview_frame_helpers.rb +316 -0
- data/lib/motion-kit-tvos/helpers/uiview_gradient_helpers.rb +22 -0
- data/lib/motion-kit-tvos/helpers/uiview_helpers.rb +28 -0
- data/lib/motion-kit-tvos/ios_util.rb +24 -0
- data/lib/motion-kit.rb +2 -0
- data/lib/motion-kit/version.rb +1 -1
- data/spec/tvos/apply_styles_spec.rb +37 -0
- data/spec/tvos/autoresizing_helper_spec.rb +240 -0
- data/spec/tvos/calayer_spec.rb +23 -0
- data/spec/tvos/calculate_spec.rb +322 -0
- data/spec/tvos/calculator_spec.rb +31 -0
- data/spec/tvos/child_layouts_spec.rb +65 -0
- data/spec/tvos/constraints_helpers/active_constraints_spec.rb +25 -0
- data/spec/tvos/constraints_helpers/attribute_lookup_spec.rb +27 -0
- data/spec/tvos/constraints_helpers/axis_lookup_spec.rb +13 -0
- data/spec/tvos/constraints_helpers/center_constraints_spec.rb +421 -0
- data/spec/tvos/constraints_helpers/constraint_placeholder_spec.rb +72 -0
- data/spec/tvos/constraints_helpers/priority_lookup_spec.rb +19 -0
- data/spec/tvos/constraints_helpers/relationship_lookup_spec.rb +27 -0
- data/spec/tvos/constraints_helpers/relative_corners_spec.rb +276 -0
- data/spec/tvos/constraints_helpers/relative_location_spec.rb +113 -0
- data/spec/tvos/constraints_helpers/scale_constraints_spec.rb +62 -0
- data/spec/tvos/constraints_helpers/simple_constraints_spec.rb +2755 -0
- data/spec/tvos/constraints_helpers/size_constraints_spec.rb +423 -0
- data/spec/tvos/constraints_helpers/view_lookup_constraints_spec.rb +95 -0
- data/spec/tvos/create_layout_spec.rb +40 -0
- data/spec/tvos/custom_layout_spec.rb +13 -0
- data/spec/tvos/custom_root_layout_spec.rb +57 -0
- data/spec/tvos/deferred_spec.rb +89 -0
- data/spec/tvos/device_helpers_spec.rb +58 -0
- data/spec/tvos/frame_helper_spec.rb +1160 -0
- data/spec/tvos/layer_layout_spec.rb +36 -0
- data/spec/tvos/layout_extensions_spec.rb +70 -0
- data/spec/tvos/layout_spec.rb +57 -0
- data/spec/tvos/layout_state_spec.rb +27 -0
- data/spec/tvos/memory_leak_spec.rb +74 -0
- data/spec/tvos/motion_kit_id_spec.rb +15 -0
- data/spec/tvos/motionkit_util_spec.rb +15 -0
- data/spec/tvos/nearest_spec.rb +80 -0
- data/spec/tvos/objc_selectors_spec.rb +10 -0
- data/spec/tvos/orientation_helper_specs.rb +67 -0
- data/spec/tvos/parent_layout_spec.rb +19 -0
- data/spec/tvos/parent_spec.rb +45 -0
- data/spec/tvos/prev_next_spec.rb +153 -0
- data/spec/tvos/reapply_frame.rb +64 -0
- data/spec/tvos/relative_layout.spec.rb +31 -0
- data/spec/tvos/remove_layout_spec.rb +28 -0
- data/spec/tvos/root_layout_spec.rb +53 -0
- data/spec/tvos/setters_spec.rb +63 -0
- data/spec/tvos/uibutton_layout_spec.rb +37 -0
- data/spec/tvos/uitextfield_spec.rb +14 -0
- data/spec/tvos/view_attr_spec.rb +32 -0
- metadata +118 -8
@@ -0,0 +1,36 @@
|
|
1
|
+
describe TestLayerHelpers do
|
2
|
+
before do
|
3
|
+
@subject = TestLayerHelpers.new
|
4
|
+
end
|
5
|
+
|
6
|
+
it 'should create a CALayer root' do
|
7
|
+
@subject.view.should.be.kind_of(CALayer)
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should add sublayers' do
|
11
|
+
@subject.view.sublayers.length.should == 3
|
12
|
+
end
|
13
|
+
|
14
|
+
describe 'should have styled sublayers' do
|
15
|
+
before do
|
16
|
+
@subject = TestLayerHelpers.new
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should have a CALayer' do
|
20
|
+
@subject.view.sublayers[0].opacity.should == 0.5
|
21
|
+
@subject.view.sublayers[0].backgroundColor.should.not == nil
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should have a CAGradientLayer' do
|
25
|
+
@subject.view.sublayers[1].opacity.should == 0.5
|
26
|
+
@subject.view.sublayers[1].colors.should.not == nil
|
27
|
+
@subject.view.sublayers[1].colors.length.should == 2
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'should have a CAShapeLayer' do
|
31
|
+
@subject.view.sublayers[2].opacity.should == 0.5
|
32
|
+
@subject.view.sublayers[2].path.should.not == nil
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
describe "Layout extensions - iOS" do
|
2
|
+
|
3
|
+
before do
|
4
|
+
@subject = MK::UIViewHelpers.new
|
5
|
+
@subject.instance_variable_set(:@context, "don't matter what i be, as long as i be.")
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'should have `orientation?` method' do
|
9
|
+
tf = @subject.orientation?(:portrait)
|
10
|
+
(tf == true || tf == false).should.be.true
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should return true for `orientation?(:portrait)` when in portrait' do
|
14
|
+
tf = @subject.orientation?(:portrait)
|
15
|
+
should_be = (UIApplication.sharedApplication.statusBarOrientation == UIInterfaceOrientationPortrait)
|
16
|
+
tf.should == should_be
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should return true for `orientation?(:landscape_left)` when in landscape_left' do
|
20
|
+
tf = @subject.orientation?(:landscape_left)
|
21
|
+
should_be = (UIApplication.sharedApplication.statusBarOrientation == UIInterfaceOrientationLandscapeLeft)
|
22
|
+
tf.should == should_be
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'should return true for `orientation?(:landscape_right)` when in landscape_right' do
|
26
|
+
tf = @subject.orientation?(:landscape_right)
|
27
|
+
should_be = (UIApplication.sharedApplication.statusBarOrientation == UIInterfaceOrientationLandscapeRight)
|
28
|
+
tf.should == should_be
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'should return true for `orientation?(:landscape)` when in landscape' do
|
32
|
+
tf = @subject.orientation?(:landscape)
|
33
|
+
should_be = (UIApplication.sharedApplication.statusBarOrientation == UIInterfaceOrientationLandscapeLeft || UIApplication.sharedApplication.statusBarOrientation == UIInterfaceOrientationLandscapeRight)
|
34
|
+
tf.should == should_be
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'should have `iphone?` method' do
|
38
|
+
tf = @subject.iphone?
|
39
|
+
(tf == true || tf == false).should.be.true
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should return `true` for `iphone?` when using an iphone' do
|
43
|
+
tf = @subject.iphone?
|
44
|
+
should_be = UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPhone
|
45
|
+
tf.should == should_be
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'should have `ipad?` method' do
|
49
|
+
tf = @subject.ipad?
|
50
|
+
(tf == true || tf == false).should.be.true
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'should return `true` for `ipad?` when using an ipad' do
|
54
|
+
tf = @subject.ipad?
|
55
|
+
should_be = UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad
|
56
|
+
tf.should == should_be
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'should have `retina?` method' do
|
60
|
+
tf = @subject.retina?
|
61
|
+
(tf == true || tf == false).should.be.true
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'should return `true` for `return?` when using a retina device' do
|
65
|
+
tf = @subject.retina?
|
66
|
+
should_be = UIScreen.mainScreen.scale == 2
|
67
|
+
tf.should == should_be
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
describe 'Simple Layout' do
|
2
|
+
before do
|
3
|
+
@subject = TestLayout.new.build
|
4
|
+
end
|
5
|
+
|
6
|
+
it "should be an instance of MotionKit::Layout" do
|
7
|
+
@subject.should.be.kind_of(MotionKit::Layout)
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should be an instance of MK::Layout" do
|
11
|
+
@subject.should.be.kind_of(MK::Layout)
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should add a UIView subview with the name :basic_view" do
|
15
|
+
view = @subject.get(:basic_view)
|
16
|
+
view.should.be.kind_of(UIView)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should add two subviews under :basic_view" do
|
20
|
+
@subject.view.subviews.first.subviews.length.should == 2
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should add a UIButton as the first subview under :basic_view" do
|
24
|
+
@subject.view.subviews.first.subviews.first.should.be.kind_of UIButton
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should add a UILabel as the second subview under :basic_view" do
|
28
|
+
@subject.view.subviews.first.subviews[1].should.be.kind_of UILabel
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should allow getting the subviews by their id" do
|
32
|
+
@subject.get(:basic_view).should.be.kind_of UIView
|
33
|
+
@subject.get(:basic_button).should.be.kind_of UIButton
|
34
|
+
@subject.get(:basic_label).should.be.kind_of UILabel
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should allow getting the subviews by first, last and nth child" do
|
38
|
+
@subject.first(:repeated_label_3).should == @subject.first_view
|
39
|
+
@subject.nth(:repeated_label_3, 3).should == @subject.nth_view
|
40
|
+
@subject.last(:repeated_label_3).should == @subject.last_view
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should allow getting all the subviews by name" do
|
44
|
+
views = @subject.all(:repeated_label_3)
|
45
|
+
views.length.should > 1
|
46
|
+
views[0].should.be.kind_of UIView
|
47
|
+
views[3].should.be.kind_of UIButton
|
48
|
+
views[-1].should.be.kind_of UILabel
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should support missing methods" do
|
52
|
+
-> do
|
53
|
+
@subject.foo_bar_baz
|
54
|
+
end.should.raise(NoMethodError)
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
describe 'Blocks that are state specific' do
|
2
|
+
|
3
|
+
before do
|
4
|
+
@subject = TestLayoutState.new
|
5
|
+
end
|
6
|
+
|
7
|
+
it 'should run the initial blocks from layout' do
|
8
|
+
@subject.view.text.should == 'initial'
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should run the reapply blocks from layout' do
|
12
|
+
@subject.reapply!
|
13
|
+
@subject.view.text.should == 'reapply'
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should run the initial blocks from any method' do
|
17
|
+
any_view = @subject.any_view
|
18
|
+
any_view.text.should == 'initial'
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should run the reapply blocks from any method' do
|
22
|
+
any_view = @subject.any_view
|
23
|
+
@subject.reapply!
|
24
|
+
any_view.text.should == 'reapply'
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
describe 'MemoryLeaks' do
|
2
|
+
|
3
|
+
before do
|
4
|
+
window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds)
|
5
|
+
@controller = UINavigationController.new
|
6
|
+
@controller.viewControllers = [UIViewController.new, TestMemoryLeakController.new]
|
7
|
+
window.rootViewController = @controller
|
8
|
+
window.makeKeyAndVisible
|
9
|
+
|
10
|
+
@did_dealloc_controller = false
|
11
|
+
@did_dealloc_layout = false
|
12
|
+
@did_dealloc_cell = false
|
13
|
+
@did_dealloc_cell_layout = false
|
14
|
+
|
15
|
+
@observe_controller = NSNotificationCenter.defaultCenter.addObserverForName('TestMemoryLeakController dealloc', object: nil, queue: nil, usingBlock: -> notification do
|
16
|
+
@did_dealloc_controller = true
|
17
|
+
end)
|
18
|
+
@observe_layout = NSNotificationCenter.defaultCenter.addObserverForName('TestMemoryLeakLayout dealloc', object: nil, queue: nil, usingBlock: -> notification do
|
19
|
+
@did_dealloc_layout = true
|
20
|
+
end)
|
21
|
+
@observe_cell = NSNotificationCenter.defaultCenter.addObserverForName('TestMemoryLeakCell dealloc', object: nil, queue: nil, usingBlock: -> notification do
|
22
|
+
@did_dealloc_cell = true
|
23
|
+
end)
|
24
|
+
@observe_cell_layout = NSNotificationCenter.defaultCenter.addObserverForName('TestMemoryLeakCellLayout dealloc', object: nil, queue: nil, usingBlock: -> notification do
|
25
|
+
@did_dealloc_cell_layout = true
|
26
|
+
end)
|
27
|
+
end
|
28
|
+
|
29
|
+
after do
|
30
|
+
NSNotificationCenter.defaultCenter.removeObserver(@observe_controller)
|
31
|
+
NSNotificationCenter.defaultCenter.removeObserver(@observe_layout)
|
32
|
+
NSNotificationCenter.defaultCenter.removeObserver(@observe_cell)
|
33
|
+
NSNotificationCenter.defaultCenter.removeObserver(@observe_cell_layout)
|
34
|
+
end
|
35
|
+
|
36
|
+
describe 'When popping a controller' do
|
37
|
+
|
38
|
+
before do
|
39
|
+
wait 0.1 do
|
40
|
+
@controller.popViewControllerAnimated(false)
|
41
|
+
|
42
|
+
# window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds)
|
43
|
+
# window.rootViewController = @controller
|
44
|
+
# window.makeKeyAndVisible
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'should release the TestMemoryLeakController' do
|
49
|
+
wait 0.1 do
|
50
|
+
@did_dealloc_controller.should == true
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'should release the TestMemoryLeakLayout' do
|
55
|
+
wait 0.1 do
|
56
|
+
@did_dealloc_layout.should == true
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'should release the TestMemoryLeakCell' do
|
61
|
+
wait 0.1 do
|
62
|
+
@did_dealloc_cell.should == true
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
it 'should release the TestMemoryLeakCellLayout' do
|
67
|
+
wait 0.1 do
|
68
|
+
@did_dealloc_cell_layout.should == true
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
describe "MotionKit id" do
|
2
|
+
|
3
|
+
before do
|
4
|
+
@layout = TestIdsLayout.new.build
|
5
|
+
end
|
6
|
+
|
7
|
+
it 'should have a label' do
|
8
|
+
@layout.get(:label).should.be.kind_of UILabel
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should have a label with id :label' do
|
12
|
+
@layout.get(:label).motion_kit_id.should == :label
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
describe 'MotionKit utility methods' do
|
2
|
+
|
3
|
+
it 'should objc-ify a string' do
|
4
|
+
MotionKit.objective_c_method_name('this_is_my_string').should == 'thisIsMyString'
|
5
|
+
end
|
6
|
+
|
7
|
+
it 'should camel case a string' do
|
8
|
+
MotionKit.camel_case('this_is_my_string').should == 'ThisIsMyString'
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should return the UIView appearance class' do
|
12
|
+
MotionKit.appearance_class.should.be.kind_of(Class)
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
describe 'MotionKit nearest element logic' do
|
2
|
+
|
3
|
+
before do
|
4
|
+
@subject = TestNearestLayout.new.build
|
5
|
+
end
|
6
|
+
|
7
|
+
it 'should support self_search' do
|
8
|
+
found = nil
|
9
|
+
@subject.self_search
|
10
|
+
@subject.context(@subject.start_here) do
|
11
|
+
found = @subject.nearest(:self_search)
|
12
|
+
end
|
13
|
+
found.should == @subject.expected_to_find
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should support child_search' do
|
17
|
+
found = nil
|
18
|
+
@subject.child_search
|
19
|
+
@subject.context(@subject.start_here) do
|
20
|
+
found = @subject.nearest(:child_search)
|
21
|
+
end
|
22
|
+
found.should == @subject.expected_to_find
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'should support sibling_search' do
|
26
|
+
found = nil
|
27
|
+
@subject.sibling_search
|
28
|
+
@subject.context(@subject.start_here) do
|
29
|
+
found = @subject.nearest(:sibling_search)
|
30
|
+
end
|
31
|
+
found.should == @subject.expected_to_find
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'should support siblings_child_search' do
|
35
|
+
found = nil
|
36
|
+
@subject.siblings_child_search
|
37
|
+
@subject.context(@subject.start_here) do
|
38
|
+
found = @subject.nearest(:siblings_child_search)
|
39
|
+
end
|
40
|
+
found.should == @subject.expected_to_find
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'should support parent_search' do
|
44
|
+
found = nil
|
45
|
+
@subject.parent_search
|
46
|
+
@subject.context(@subject.start_here) do
|
47
|
+
found = @subject.nearest(:parent_search)
|
48
|
+
end
|
49
|
+
found.should == @subject.expected_to_find
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'should support distant_search' do
|
53
|
+
found = nil
|
54
|
+
@subject.distant_search
|
55
|
+
@subject.context(@subject.start_here) do
|
56
|
+
found = @subject.nearest(:distant_search)
|
57
|
+
end
|
58
|
+
found.should == @subject.expected_to_find
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'should support nearest(id, from: view)' do
|
62
|
+
found = nil
|
63
|
+
@subject.nearest_from_search
|
64
|
+
@subject.context(@subject.start_here) do
|
65
|
+
from_here = @subject.get(:from_here)
|
66
|
+
found = @subject.nearest(:nearest_from_search, from: from_here)
|
67
|
+
end
|
68
|
+
found.should == @subject.expected_to_find
|
69
|
+
end
|
70
|
+
|
71
|
+
it 'should support nearest(id, from: id)' do
|
72
|
+
found = nil
|
73
|
+
@subject.nearest_from_search
|
74
|
+
@subject.context(@subject.start_here) do
|
75
|
+
found = @subject.nearest(:nearest_from_search, from: :from_here)
|
76
|
+
end
|
77
|
+
found.should == @subject.expected_to_find
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
describe 'Orientation helpers' do
|
2
|
+
|
3
|
+
before do
|
4
|
+
@layout = MK::Layout.new
|
5
|
+
end
|
6
|
+
|
7
|
+
it 'should have orientation helpers' do
|
8
|
+
@layout.context({}) do
|
9
|
+
@layout.orientation?(UIInterfaceOrientationPortrait).should == true
|
10
|
+
@layout.orientation?(UIInterfaceOrientationLandscapeLeft).should == false
|
11
|
+
@layout.orientation?(UIInterfaceOrientationLandscapeRight).should == false
|
12
|
+
@layout.orientation?(UIInterfaceOrientationPortraitUpsideDown).should == false
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should have orientation (portrait?) helpers' do
|
17
|
+
@layout.context({}) do
|
18
|
+
@layout.portrait?.should == true
|
19
|
+
@layout.upright?.should == true
|
20
|
+
@layout.upside_down?.should == false
|
21
|
+
@layout.landscape?.should == false
|
22
|
+
@layout.landscape_left?.should == false
|
23
|
+
@layout.landscape_right?.should == false
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'should have orientation (portrait do end) helpers' do
|
28
|
+
@layout.context({}) do
|
29
|
+
@check = false
|
30
|
+
@layout.portrait do
|
31
|
+
@check = true
|
32
|
+
end
|
33
|
+
@check.should == true
|
34
|
+
|
35
|
+
@check = false
|
36
|
+
@layout.upright do
|
37
|
+
@check = true
|
38
|
+
end
|
39
|
+
@check.should == true
|
40
|
+
|
41
|
+
@check = false
|
42
|
+
@layout.upside_down do
|
43
|
+
@check = true
|
44
|
+
end
|
45
|
+
@check.should == false
|
46
|
+
|
47
|
+
@check = false
|
48
|
+
@layout.landscape do
|
49
|
+
@check = true
|
50
|
+
end
|
51
|
+
@check.should == false
|
52
|
+
|
53
|
+
@check = false
|
54
|
+
@layout.landscape_left do
|
55
|
+
@check = true
|
56
|
+
end
|
57
|
+
@check.should == false
|
58
|
+
|
59
|
+
@check = false
|
60
|
+
@layout.landscape_right do
|
61
|
+
@check = true
|
62
|
+
end
|
63
|
+
@check.should == false
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|