Class: Reflex::Model
- Inherits:
-
Object
- Object
- Reflex::Model
- Includes:
- Enumerable, Xot::Invoker, Xot::Setter
- Defined in:
- lib/reflex/model.rb
Instance Attribute Summary collapse
-
#data ⇒ Object
Returns the value of attribute data.
Instance Method Summary collapse
- #[](*args) ⇒ Object
- #[]=(*args) ⇒ Object
- #add_filter(&block) ⇒ Object (also: #filter)
- #add_handler(handler) ⇒ Object
- #each(&block) ⇒ Object
- #float(defvar = nil) ⇒ Object
-
#initialize(data = nil, &block) ⇒ Model
constructor
A new instance of Model.
- #inspect ⇒ Object
- #int(defvar = nil) ⇒ Object
- #invoke(name, attributes = {}, options = {}) ⇒ Object
- #max=(max) ⇒ Object
- #min=(min) ⇒ Object
- #minmax=(range) ⇒ Object
- #remove_filter(&block) ⇒ Object
- #remove_handler(handler) ⇒ Object
- #size ⇒ Object
- #string(defvar = nil) ⇒ Object
- #validate(&block) ⇒ Object
Constructor Details
#initialize(data = nil, &block) ⇒ Model
Returns a new instance of Model.
21 22 23 24 |
# File 'lib/reflex/model.rb', line 21 def initialize (data = nil, &block) self.data = data if data Xot::BlockUtil.instance_eval_or_block_call self, &block if block end |
Instance Attribute Details
#data ⇒ Object
Returns the value of attribute data.
19 20 21 |
# File 'lib/reflex/model.rb', line 19 def data @data end |
Instance Method Details
#[](*args) ⇒ Object
92 93 94 |
# File 'lib/reflex/model.rb', line 92 def [] (*args) call_symbols ARRAY_GET_SYMS, *args end |
#[]=(*args) ⇒ Object
96 97 98 99 100 |
# File 'lib/reflex/model.rb', line 96 def []= (*args) ret = call_symbols ARRAY_SET_SYMS, *args invoke :update ret end |
#add_filter(&block) ⇒ Object Also known as: filter
53 54 55 |
# File 'lib/reflex/model.rb', line 53 def add_filter (&block) (@filters ||= []).push block end |
#add_handler(handler) ⇒ Object
38 39 40 41 |
# File 'lib/reflex/model.rb', line 38 def add_handler (handler) super invoke :attach, {}, only: handler end |
#each(&block) ⇒ Object
106 107 108 |
# File 'lib/reflex/model.rb', line 106 def each (&block) data.each &block if block && data.respond_to?(:each) end |
#float(defvar = nil) ⇒ Object
84 85 86 |
# File 'lib/reflex/model.rb', line 84 def float (defvar = nil) call_symbols FLOAT_SYMS end |
#inspect ⇒ Object
110 111 112 |
# File 'lib/reflex/model.rb', line 110 def inspect () "#<Model data:#{@data.inspect}>" end |
#int(defvar = nil) ⇒ Object
80 81 82 |
# File 'lib/reflex/model.rb', line 80 def int (defvar = nil) call_symbols INT_SYMS end |
#invoke(name, attributes = {}, options = {}) ⇒ Object
48 49 50 51 |
# File 'lib/reflex/model.rb', line 48 def invoke (name, attributes = {}, = {}) attributes[:data] ||= @data super "on_data_#{name}".intern, attributes, end |
#max=(max) ⇒ Object
71 72 73 |
# File 'lib/reflex/model.rb', line 71 def max= (max) filter {|data| data > max ? max : data} end |
#min=(min) ⇒ Object
67 68 69 |
# File 'lib/reflex/model.rb', line 67 def min= (min) filter {|data| data < min ? min : data} end |
#minmax=(range) ⇒ Object
75 76 77 78 |
# File 'lib/reflex/model.rb', line 75 def minmax= (range) min, max = range.min, range.max filter {|data| data < min ? min : data > max ? max : data} end |
#remove_filter(&block) ⇒ Object
57 58 59 |
# File 'lib/reflex/model.rb', line 57 def remove_filter (&block) @filters.delete block if @filters end |
#remove_handler(handler) ⇒ Object
43 44 45 46 |
# File 'lib/reflex/model.rb', line 43 def remove_handler (handler) invoke :detach, {}, only: handler super end |
#size ⇒ Object
102 103 104 |
# File 'lib/reflex/model.rb', line 102 def size () call_symbols(ARRAY_SIZE_SYMS) || 0 end |
#string(defvar = nil) ⇒ Object
88 89 90 |
# File 'lib/reflex/model.rb', line 88 def string (defvar = nil) call_symbols STRING_SYMS end |
#validate(&block) ⇒ Object
63 64 65 |
# File 'lib/reflex/model.rb', line 63 def validate (&block) filter {|data| block.call(data) ? data : nil} end |