module Dockly::Util::DSL
Public Class Methods
included(base)
click to toggle source
# File lib/dockly/util/dsl.rb, line 2 def self.included(base) base.instance_eval do extend ClassMethods dsl_attribute :name end end
new(options = {}, &block)
click to toggle source
# File lib/dockly/util/dsl.rb, line 145 def initialize(options = {}, &block) self.class.default_values.merge(options).each do |k, v| v = v.dup rescue v unless v.class.ancestors.include?(Dockly::Util::DSL) public_send(k, v) end instance_eval(&block) unless block.nil? name(self.class.generate_unique_name) if name.nil? self.instance_variable_get(:@name).freeze end
Public Instance Methods
==(other_dsl)
click to toggle source
# File lib/dockly/util/dsl.rb, line 142 def ==(other_dsl) (other_dsl.class == self.class) && (other_dsl.name == self.name) end
[](var)
click to toggle source
# File lib/dockly/util/dsl.rb, line 134 def [](var) instance_variable_get(:"@#{var}") end
[]=(var, val)
click to toggle source
# File lib/dockly/util/dsl.rb, line 138 def []=(var, val) instance_variable_set(:"@#{var}", val) end
to_hash()
click to toggle source
# File lib/dockly/util/dsl.rb, line 155 def to_hash Hash[instance_variables.map { |ivar| [ivar.to_s[1..-1].to_sym, instance_variable_get(ivar)] }] end
to_s()
click to toggle source
# File lib/dockly/util/dsl.rb, line 126 def to_s "#{self.class.name} (#{ instance_variables.map { |var| "#{var} = #{instance_variable_get(var)}" }.join(', ') })" end
Private Instance Methods
ensure_present!(*syms)
click to toggle source
# File lib/dockly/util/dsl.rb, line 159 def ensure_present!(*syms) syms.each do |sym| if instance_variable_get(:"@#{sym}").nil? method_name = /.*`(?<method_name>.+)'$/.match(caller[2])[:method_name] raise "The following must be present to use #{self.class}##{method_name}: #{sym}" end end end