public
Description: An ancient beholder that watches your treasure, and deals with thiefs.
Homepage:
Clone URL: git://github.com/spicycode/beholder.git
name age message
file .gitignore Sun Apr 05 13:06:13 -0700 2009 Woah, did it suddenly get less awesome in here?... [spicycode]
file .treasure_map.rb Fri Oct 09 10:50:41 -0700 2009 In progress magic [spicycode]
file LICENSE Sun Jan 04 14:43:18 -0800 2009 0.0.1 [spicycode]
file README.markdown Fri Oct 09 11:04:08 -0700 2009 Convert readme to markdown [spicycode]
file Rakefile Fri Oct 09 10:59:10 -0700 2009 Adding in sdoc [spicycode]
file TODO Sun Jan 04 14:43:18 -0800 2009 0.0.1 [spicycode]
file VERSION.yml Fri Sep 18 08:34:31 -0700 2009 Version bump to 4.0.0 [spicycode]
file beholder.gemspec Sun Aug 23 14:23:51 -0700 2009 Regenerated gemspec for version 3.0.0 [spicycode]
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 images/ Fri Oct 09 10:50:41 -0700 2009 In progress magic [spicycode]
directory lib/ Fri Oct 09 10:50:41 -0700 2009 In progress magic [spicycode]
directory spec/ Fri Oct 09 10:50:41 -0700 2009 In progress magic [spicycode]
README.markdown

Beholder

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

What does it do?

Think autotest, but powered by fseventd.

Requirements

  • OSX 10.5 or higher
  • RubyCocoa
  • 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_component[1]}.rb"]
  end

  wizard.prepare_spell_for /\/lib\/(.*)\.rb/ do |spell_component|
    ["examples/lib/#{spell_component[1]}_example.rb"]
  end

  wizard.prepare_spell_for /\/examples\/(.*)_example\.rb/ do |spell_component|
    ["examples/#{spell_component[1]}_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|

  # Clear all watched paths => wizard.paths_to_watch.clear
  # Add these paths to the paths to watch
  wizard.keep_a_watchful_eye_for 'coverage'

  # Forget all other treasure maps loaded
  # wizard.clear_maps

  # Add your own rules
  # wizard.prepare_spell_for /\/foobar/ do
  #   Dir["examples/foobar/*_example.rb"]
  # end

  # You could set the list of all examples to be run after pressing ctrl-c once
  # 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.