teacup 0.3.8 → 0.3.9

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 (3) hide show
  1. data/lib/teacup/layout.rb +17 -11
  2. data/lib/teacup/version.rb +1 -1
  3. metadata +17 -7
@@ -59,7 +59,9 @@ module Teacup
59
59
  # subview(UIImage, backgroundColor: UIColor.colorWithImagePattern(image)
60
60
  # end
61
61
  #
62
- def layout(view, name_or_properties=nil, properties_or_nil=nil, &block)
62
+ def layout(view_or_class, name_or_properties=nil, properties_or_nil=nil, &block)
63
+ view = to_instance(view_or_class)
64
+
63
65
  name = nil
64
66
  properties = properties_or_nil
65
67
 
@@ -123,16 +125,7 @@ module Teacup
123
125
  # end
124
126
  #
125
127
  def subview(class_or_instance, *args, &block)
126
- if Class === class_or_instance
127
- unless class_or_instance <= UIView
128
- raise "Expected subclass of UIView, got: #{class_or_instance.inspect}"
129
- end
130
- instance = class_or_instance.new
131
- elsif UIView === class_or_instance
132
- instance = class_or_instance
133
- else
134
- raise "Expected a UIView, got: #{class_or_instance.inspect}"
135
- end
128
+ instance = to_instance(class_or_instance)
136
129
 
137
130
  (superview_chain.last || top_level_view).addSubview(instance)
138
131
 
@@ -143,6 +136,19 @@ module Teacup
143
136
 
144
137
  protected
145
138
 
139
+ def to_instance(class_or_instance)
140
+ if Class === class_or_instance
141
+ unless class_or_instance <= UIView
142
+ raise "Expected subclass of UIView, got: #{class_or_instance.inspect}"
143
+ end
144
+ return class_or_instance.new
145
+ elsif class_or_instance.is_a?(UIView)
146
+ return class_or_instance
147
+ else
148
+ raise "Expected a UIView, got: #{class_or_instance.inspect}"
149
+ end
150
+ end
151
+
146
152
  # Get's the current stack of views in nested calls to layout.
147
153
  #
148
154
  # The view at the end of the stack is the one into which subviews
@@ -1,5 +1,5 @@
1
1
  module Teacup
2
2
 
3
- VERSION = '0.3.8'
3
+ VERSION = '0.3.9'
4
4
 
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: teacup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.8
4
+ version: 0.3.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-16 00:00:00.000000000 Z
12
+ date: 2012-08-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &70122065202280 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70122065202280
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: rspec
27
- requirement: &70122065201680 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,7 +37,12 @@ dependencies:
32
37
  version: '0'
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *70122065201680
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  description: ! 'Teacup is a community-driven DSL for making CSS-like styling, and
37
47
  layouts for
38
48
 
@@ -111,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
121
  version: '0'
112
122
  requirements: []
113
123
  rubyforge_project:
114
- rubygems_version: 1.8.11
124
+ rubygems_version: 1.8.19
115
125
  signing_key:
116
126
  specification_version: 3
117
127
  summary: A community-driven DSL for creating user interfaces on iOS.