public
Fork of spicycode/beholder
Description: An ancient beholder that watches your treasure, and deals with thiefs.
Homepage:
Clone URL: git://github.com/francois/beholder.git
name age message
file .gitignore Loading commit data...
file LICENSE Sun Jan 04 14:43:18 -0800 2009 0.0.1 [Chad Humphries]
file README.textile
file Rakefile
file TODO
file beholder.gemspec
directory bin/
directory editor_integration/ Sun Jan 11 13:23:27 -0800 2009 Minor merge conflict fix [Chad Humphries]
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 %r{/app/(.*)\.rb} do |spell_component|
    ["examples/#{spell_component[1]}.rb"]
  end

  wizard.prepare_spell_for %r{\/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 %r{/examples/example_helper\.rb} do |spell_component|
    Dir["examples/**/*_example.rb"]
  end

  wizard.prepare_spell_for %r{/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.cast_feeble_mind

  # 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