Class: Walt::Asset
- Inherits:
-
Object
- Object
- Walt::Asset
- Extended by:
- Support::AttrDefault
- Defined in:
- lib/walt/asset/asset.rb
Direct Known Subclasses
Constant Summary collapse
- PROPERTIES =
[:id, :position, :size, :view, :content_mode, :clips_to_bounds, :background_color]
Class Method Summary collapse
Instance Method Summary collapse
- #content_mode=(content_mode) ⇒ Object
-
#initialize(params = {}) ⇒ Asset
constructor
A new instance of Asset.
- #on_ready(trigger = false, &callback) ⇒ Object
- #view ⇒ Object
- #view_content_mode ⇒ Object
Methods included from Support::AttrDefault
Constructor Details
#initialize(params = {}) ⇒ Asset
Returns a new instance of Asset.
32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/walt/asset/asset.rb', line 32 def initialize(params = {}) case params when UIView self.view = params when NSDictionary params.each do |key, value| if PROPERTIES.include?(key.to_sym) self.send("#{key}=", value) end end end end |
Class Method Details
.for(params = {}) ⇒ Object
22 23 24 25 26 27 28 29 30 |
# File 'lib/walt/asset/asset.rb', line 22 def self.for(params = {}) if params.is_a?(NSDictionary) && params[:url] Walt::ImageAsset.new(params) elsif params.is_a?(NSDictionary) && params[:text] Walt::TextAsset.new(params) else self.new(params) end end |
Instance Method Details
#content_mode=(content_mode) ⇒ Object
48 49 50 51 |
# File 'lib/walt/asset/asset.rb', line 48 def content_mode=(content_mode) _content_mode = content_mode.is_a?(NSArray) ? content_mode : [content_mode] @content_mode = _content_mode end |
#on_ready(trigger = false, &callback) ⇒ Object
71 72 73 74 75 76 77 78 79 |
# File 'lib/walt/asset/asset.rb', line 71 def on_ready(trigger = false, &callback) @on_ready_callbacks ||= [] if callback @on_ready_callbacks << callback elsif trigger @on_ready_callbacks.each {|c| c.call(self)} @on_ready_callbacks = [] end end |
#view ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/walt/asset/asset.rb', line 59 def view @view ||= UIView.alloc.initWithFrame(CGRectZero).tap do |view| view.frame = [self.position || CGPointZero, self.size || CGSizeZero] view.backgroundColor = self.background_color.to_color if self.background_color view.contentMode = self.view_content_mode view.clipsToBounds = self.clips_to_bounds Dispatch::Queue.main.async do self.on_ready(true) end end end |