Skip to content

spicycode/beholder

Repository files navigation

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.

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published