class ActionBlocks::Store
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/action_blocks/store.rb, line 6 def initialize super @block_store = {}; @validation_store = []; end
Public Instance Methods
add_to_validator(builder)
click to toggle source
# File lib/action_blocks/store.rb, line 115 def add_to_validator(builder) @validation_store << builder end
after_load()
click to toggle source
# File lib/action_blocks/store.rb, line 144 def after_load @validation_store.each do |v| v.after_load end end
errors()
click to toggle source
def errors
results = [] @validation_store.each do |b| results << b.errors if b.invalid? end results
end
# File lib/action_blocks/store.rb, line 70 def errors results = [] @validation_store.each do |b| results << { builder: b.class.to_s.sub("ActionBlocks::",""), key: b.key, fields: b.errors.keys, messages: b.errors.map {|k,v| [k,v]} } if b.invalid? end results end
find(block_key)
click to toggle source
# File lib/action_blocks/store.rb, line 119 def find(block_key) @block_store[block_key] end
form(*p, &block)
click to toggle source
# File lib/action_blocks/store.rb, line 23 def form(*p, &block) rs = ActionBlocks::FormBuilder.new() rs.id = p.first rs.before_build(nil, *p) store(rs) add_to_validator(rs) rs.evaluate(&block) if block rs.after_build(nil, *p) end
freeze_builders()
click to toggle source
# File lib/action_blocks/store.rb, line 137 def freeze_builders @block_store.values.each do |v| v.freeze puts "#Freezing #{v.key}" end end
get(params)
click to toggle source
# File lib/action_blocks/store.rb, line 123 def get(params) @block_store[params[:block_key]].get(params) end
has_error(substring)
click to toggle source
# File lib/action_blocks/store.rb, line 95 def has_error(substring) all_errors = errors.map {|e| e.messages}.map {|h| h.values}.flatten.join("\n") all_errors[substring] end
has_error_for(block_type, field_name)
click to toggle source
# File lib/action_blocks/store.rb, line 83 def has_error_for(block_type, field_name) type_errors = errors.select { |e| e[:builder] == block_type && e[:fields].include?(field_name) } if type_errors == [] return false else return type_errors end end
hashify(user)
click to toggle source
# File lib/action_blocks/store.rb, line 127 def hashify(user) result = {} @block_store.each do |key, block| result[block.key] = block.hashify(user) result[block.key][:key] = block.key end result[:errors] = errors result end
invalid?()
click to toggle source
# File lib/action_blocks/store.rb, line 58 def invalid? !valid? end
keys()
click to toggle source
# File lib/action_blocks/store.rb, line 107 def keys() @block_store.keys end
layout(*p, &block)
click to toggle source
ActionBlocks.layout
# File lib/action_blocks/store.rb, line 13 def layout(*p, &block) l = ActionBlocks::LayoutBuilder.new() l.id = 'main' l.before_build(nil, *p) store(l) add_to_validator(l) l.evaluate(&block) if block l.after_build(nil, *p) end
model(*p, &block)
click to toggle source
# File lib/action_blocks/store.rb, line 44 def model(*p, &block) m = ActionBlocks::ModelBuilder.new() m.id = p.first m.before_build(nil, *p) store(m) add_to_validator(m) m.evaluate(&block) if block m.after_build(nil, *p) end
store(block)
click to toggle source
# File lib/action_blocks/store.rb, line 111 def store(block) @block_store[block.key] = block end
unload!()
click to toggle source
# File lib/action_blocks/store.rb, line 100 def unload! # If classes were dynamically created. # We would remove const here (JRH) @block_store = {}; @validation_store = []; end
valid?()
click to toggle source
# File lib/action_blocks/store.rb, line 54 def valid? @validation_store.all? { |builder| builder.valid? } end