class Subtle::Sur::Test::Sublet

  1. data/sur/test.rb
Superclass: Object

Sublet class

Constants

EVENTS = { :run => 1, :unload => 1, :mouse_down => 4, :mouse_over => 1, :mouse_out => 1 }  

Event list

HOOKS = [ :start, :exit, :tile, :reload, :client_create, :client_configure, :client_focus, :client_gravity, :client_kill, :tag_create, :tag_kill, :view_create, :view_configure, :view_jump, :view_kill ]  

Hook list

Attributes

config [RW]

Config hash

data [RW]

Sublet data

interval [RW]

Update interval

name [RW]

Name of the sublet

path [RW]

Watch path

visible [RW]

Visibility

Public Class methods

new ()
Subtle::Sur::Test::Sublet::initialize {{{

Initialize a Sublet

@since 0.0

@example

Subtle::Sublet.new
=> #<Subtlext::Sublet:xxx>
[show source]
# File data/sur/test.rb, line 74
def initialize
  @visible  = true
  @interval = 60
  @config   = {}
end

Public Instance methods

background= (value)
Subtle::Sur::Test::Sublet::background= {{{

Set the background of a Sublet

@param [String] value Sublet background

@raise [String] Sublet error @since 0.2

@example

Subtle::Sublet.new.background = "#ffffff"
=> nil
[show source]
# File data/sur/test.rb, line 186
def background=(value)
  unless value.is_a?(String) or value.is_a?(Object)
    raise ArgumentError.new("Unknown value type") 
  end
end
configure (name, &blk)
Subtle::Sur::Test::Sublet::configure {{{

Configure block for Sublet

@param [Symbol] name Sublet name

@yield [Object] New Sublet

@raise [String] Sublet error @since 0.1

@example

configure :sublet do |s|
  s.interval = 60
end
[show source]
# File data/sur/test.rb, line 291
def configure(name, &blk)
  raise LocalJumpError.new("No block given") unless block_given?
  raise ArgumentError.new("Unknown value type") unless name.is_a?(Symbol)

  @name = name

  # Add configure method
  self.class.send(:define_method, :__configure, blk)
end
data= (data)
Subtle::Sur::Test::Sublet::data= {{{

Set the data of a Sublet

@param [String] data Sublet data

@raise [String] Sublet error @since 0.0

@example

Subtle::Sublet.new.data = "subtle"
=> nil
[show source]
# File data/sur/test.rb, line 169
def data=(data)
  raise ArgumentError.new("Unknown value type") unless data.is_a?(String)
  @data = data
end
geometry ()
Subtle::Sur::Test::Sublet::geometry {{{

Get geometry of a Sublet

@return [String] Sublet geometry

@raise [String] Sublet error @since 0.2

@example

Subtle::Sublet.new.geometry
=> #<Subtlext::Geometry:xxx>
[show source]
# File data/sur/test.rb, line 204
def geometry
  Subtlext::Geometry.new(10, 10, 20, 20)
end
helper (&blk)
Subtle::Sur::Test::Sublet::helper {{{

Helper block for Sublet

@yield [Proc] Helper handler

@raise [String] Sublet error @since 0.1

@example

helper do |s|
  def test
    puts "test"
  end
end
[show source]
# File data/sur/test.rb, line 356
def helper(&blk)
  raise LocalJumpError.new("No block given") unless block_given?

  # Yield and eval block
  yield(self)

  self.instance_eval(&blk)
end
hidden? ()
Subtle::Sur::Test::Sublet::hidden? {{{

Whether sublet is hidden

@since 0.2

@example

Subtle::Sublet.new.show
=> nil
[show source]
# File data/sur/test.rb, line 272
def hidden?
  !@visible
end
hide ()
Subtle::Sur::Test::Sublet::hide {{{

Hide sublet from panel

@since 0.2

@example

Subtle::Sublet.new.show
=> nil
[show source]
# File data/sur/test.rb, line 259
def hide
  @visible = false
end
interval= (interval)
Subtle::Sur::Test::Sublet::interval= {{{

Set the interval of a Sublet

@param [Fixnum] interval Interval time

@raise [String] Sublet error @since 0.0

@example

Subtle::Sublet.new.interval = 60
=> nil
[show source]
# File data/sur/test.rb, line 137
def interval=(interval)
  raise ArgumentError.new("Unknown value type") unless interval.is_a?(Fixnum)
  @interval = interval
end
method_missing (meth, *args)
Subtle::Sur::Test::Sublet::method_missing {{{

Dispatcher for Sublet instance

@param [Symbol] meth Method name @param [Array] args Argument array

@since 0.1

[show source]
# File data/sur/test.rb, line 88
def method_missing(meth, *args)
  ret = nil

  # Check if symbol is a method or a var
  if self.respond_to?(meth)
    ret = self.send(meth, args)
  else
    sym = ("@" + meth.to_s).to_sym #< Construct symbol

    # Check getter or setter
    if meth.to_s.index("=")
      sym = sym.to_s.chop.to_sym

      self.instance_variable_set(sym, args.first)
    elsif self.instance_variable_defined?(sym)
      ret = self.instance_variable_get(sym)
    end
  end

  ret
end
on (event, &blk)
Subtle::Sur::Test::Sublet::on {{{

Event block for Sublet

@param [Symbol] event Event name

@yield [Proc] Event handler

@raise [String] Sublet error @since 0.1

@example

on :event do |s|
  puts s.name
end
[show source]
# File data/sur/test.rb, line 316
def on(event, &blk)
  raise LocalJumpError.new("No block given") unless block_given?
  raise ArgumentError.new("Unknown value type") unless event.is_a?(Symbol)

  # Get proc information
  arity = blk.arity
  sing  = self.class

  # Check events
  if Subtle::Sur::Test::Sublet::EVENTS.has_key?(event)
    need = Subtle::Sur::Test::Sublet::EVENTS[event]

    if -1 == arity or (1 <= arity and need >= arity)
      sing.send(:define_method, ("__%s" % [ event ]).to_sym, blk)
    else
      raise "Wrong number of arguments (%d for %d)" % [ arity, need ]
    end
  end

  # Check hooks
  if Subtle::Sur::Test::Sublet::HOOKS.include?(event)
    sing.send(:define_method, ("__%s" % [ event ]).to_sym, blk)
  end
end
show ()
Subtle::Sur::Test::Sublet::show {{{

Show sublet on panel

@since 0.2

@example

Subtle::Sublet.new.show
=> nil
[show source]
# File data/sur/test.rb, line 246
def show
  @visible = true
end
unwatch ()
Subtle::Sur::Test::Sublet::unwatch {{{

Stop watching a file

@since 0.0

@example

Subtle::Sublet::unwatch
=> nil
[show source]
# File data/sur/test.rb, line 233
def unwatch
  @path = nil
end
watch (path)
Subtle::Sur::Test::Sublet::watch {{{

Watch a file found on path

@raise [String] Sublet error @since 0.0

@example

Subtle::Sublet.new.watch("/tmp/watch")
=> nil
[show source]
# File data/sur/test.rb, line 218
def watch(path)
  raise ArgumentError.new("Unknown value type") unless path.is_a?(String)
  raise "File not found" unless File.exist?(path)
  @path = path
end