public
Description: An ancient beholder that watches your treasure, and deals with thiefs.
Homepage:
Clone URL: git://github.com/spicycode/beholder.git
rsanheim (author)
Mon Apr 20 11:22:47 -0700 2009
commit  1c3644ba7a3c688c07070dc7e8917dcba8df1aef
tree    ead28a7c654dc492cae0bdecc16e3093961a9026
parent  ee73f3248f50dba495ef56d15537a74f9aa7da2e
name age message
file .gitignore Sun Apr 05 13:06:13 -0700 2009 Woah, did it suddenly get less awesome in here?... [spicycode]
file LICENSE Sun Jan 04 14:43:18 -0800 2009 0.0.1 [spicycode]
file README.textile Sun Mar 22 22:37:38 -0700 2009 readme [rsanheim]
file Rakefile Loading commit data...
file TODO Sun Jan 04 14:43:18 -0800 2009 0.0.1 [spicycode]
file VERSION.yml
file beholder.gemspec
directory bin/ Thu Feb 26 22:51:30 -0800 2009 commence (boring) conversion of beholder to nam... [rsanheim]
directory editor_integration/ Sun Jan 11 13:23:27 -0800 2009 Minor merge conflict fix [spicycode]
directory examples/
directory lib/
README.textile

Beholder

An ancient beholder that watches your treasure, and deals with thiefs.

What does it do?

Think autotest, but powered by fseventd.

Requirements

  1. OSX 10.5 or higher
  2. RubyCocoa
  3. fsevents gem

The default treasure map:

map_for(:default_dungeon) do |wizard|

wizard.keep_a_watchful_eye_for ‘app’, ‘config’, ‘lib’, ‘examples’ wizard.prepare_spell_for /\/app\/(.*)\.rb/ do |spell_component| [“examples/#{spell_component1}.rb”] end wizard.prepare_spell_for /\/lib\/(.*)\.rb/ do |spell_component| [“examples/lib/#{spell_component1}_example.rb”] end wizard.prepare_spell_for /\/examples\/(.*)example\.rb/ do |spellcomponent| [“examples/#{spell_component1}_example.rb”] end wizard.prepare_spell_for /\/examples\/example_helper\.rb/ do |spell_component| Dir[“examples//_example.rb”] end wizard.prepare_spell_for /\/config/ do Dir[“examples//_example.rb”] end

end

In your own treasure map (stored as treasure_map.rb, .treasure_map.rb, or config/treasure_map.rb) you could do:

map_for(:beholders_lair) do |wizard|

  1. Clear all watched paths => wizard.paths_to_watch.clear
  2. Add these paths to the paths to watch
    wizard.keep_a_watchful_eye_for ‘coverage’
  1. Forget all other treasure maps loaded
  2. wizard.clear_maps
  1. Add your own rules
  2. wizard.prepare_spell_for /\/foobar/ do
  3. Dir[“examples/foobar/*_example.rb”]
  4. end
  1. You could set the list of all examples to be run after pressing ctrl-c once
  2. it defaults to any files in examples, spec, and test
    wizard.all_examples = Dir[‘your/path//_here.rb’]
    end

Treasure maps are automatically reloaded when you change them, so you can fire up Beholder and start iterating on the config live.