Sha256: 27743dd151d41120653784555accf052124006a90957fa446a1380b37b464ee2
Contents?: true
Size: 1.09 KB
Versions: 2
Compression:
Stored size: 1.09 KB
Contents
module Vedeu module API class Base def self.build(attributes = {}, &block) new(attributes, &block).build end def initialize(attributes = {}, &block) @attributes = attributes @self_before_instance_eval = eval 'self', block.binding self.instance_eval(&block) end def colour(*args) if args.is_a?(Array) && args.size == 2 attributes[:colour] = { background: args.first, foreground: args.last } elsif args.is_a?(Array) && args.size == 1 && args.first.is_a?(Hash) attributes[:colour] = args.first else attributes[:colour] = {} end end def style(values = [], &block) if block_given? attributes[:streams] << API::Stream.build({ style: [values] }, &block) else [values].flatten.each { |value| attributes[:style] << value } end end private def method_missing(method, *args, &block) @self_before_instance_eval.send method, *args, &block end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
vedeu-0.1.9 | lib/vedeu/api/base.rb |
vedeu-0.1.8 | lib/vedeu/api/base.rb |