Project

General

Profile

unexist.dev

subtle

Assorted tidbits and projects

Sublets » History » Version 9

« Previous - Version 9/66 (diff) - Next » - Current version
Anonymous, 04/07/2009 11:35 PM


Sublets\015\012\015\012Sublets are small Ruby scripts that provide the data for the statusbar. They are run in an embedded Ruby interpreter and are well included in the main loop of subtle. Every sublet must either provide an update interval (in seconds) and will be updated accordingly or a file to watch. The default update interval is 60s.\015\012\015\012h2. Types\015\012\015\012Currently there are two types of sublets:\015\012* sublets that are updated in a given interval\015\012* sublets that are updated when a file is modified (Via inotify. Data\015\012\015\012The sublet data can be either of type String or Fixnum. Strings are directly displayed and Fixnums will be shown as a small meter.\015\012\015\012\015\012h2. Example\015\012\015\012Below is the code of a shipped sublet that displays the time. It should be really straight forward:\015\012\015\012
class Clock < Sublet\015\012  def initialize\015\012    self.interval = 60 # Set interval time\015\012  end\015\012\015\012  def run\015\012    self.data = Time.now().strftime("%d%m%y%H%M") # Set data\015\012  end\015\012end\015\012
\015\012\015\012Interval and data can be updated via setter/getter functions.\015\012\015\012Another example for the inotify sublet which is also included within subtle:\015\012\015\012
class Notify < Sublet\015\012  def initialize\015\012    self.path = "/tmp/watch"\015\012  end\015\012\015\012  def run\015\012    file = ""\015\012\015\012    File.open(self.path, "r") do |f|\015\012      file = f.read\015\012    end\015\012\015\012    self.data = file.chop || "subtle"\015\012  end\015\012end\015\012
\015\012