Sha256: 8f6309cd8f636d5168ca93f1d91864bb7c73ec6921c024dcb33abfa1a860c809
Contents?: true
Size: 942 Bytes
Versions: 1
Compression:
Stored size: 942 Bytes
Contents
require 'vedeu/support/geometry' require 'vedeu/support/interface_store' module Vedeu class InterfaceTemplate def self.save(name, &block) new(name).save(&block) end def initialize(name) @name = name.to_s end def save(&block) self.instance_eval(&block) InterfaceStore.create(attributes) end private attr_reader :name def overrides @overrides = if user_attributes[:centred] == true { x: geometry.left, y: geometry.top } else {} end end def geometry @_geometry ||= Geometry.new({ height: user_attributes[:height], width: user_attributes[:width], }) end def attributes user_attributes.merge!(overrides) end def user_attributes @attributes ||= { name: name } end def method_missing(method_name, arg, &block) user_attributes[method_name] = arg end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
vedeu-0.1.3 | lib/vedeu/support/interface_template.rb |