workon 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -23,6 +23,10 @@ module Workon
23
23
  @_subclasses
24
24
  end
25
25
 
26
+ def self.before(other = :all)
27
+ Workon::Actor.before self, other
28
+ end
29
+
26
30
  def initialize(path)
27
31
  @path = path
28
32
  end
@@ -34,7 +38,7 @@ module Workon
34
38
  def has_option?(key)
35
39
  key = key.to_sym
36
40
 
37
- !options[key].nil? && !options[key].empty?
41
+ !options[key].nil? && (options[key] || !options[key].empty?)
38
42
  end
39
43
 
40
44
  def fetch_option(key, default = nil)
@@ -0,0 +1,14 @@
1
+ module Workon
2
+ module Actor
3
+ class Middleman < Base
4
+ option('--middleman', 'Start mm-server') { |v| options[:middleman] = true }
5
+
6
+ def commit
7
+ if fetch_option :middleman, false
8
+ screen "mm-server"
9
+ run "sleep 3 && open http://localhost:4567/"
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
data/lib/workon/actor.rb CHANGED
@@ -1,11 +1,3 @@
1
- require 'workon/actor/base'
2
- require 'workon/actor/text_mate'
3
- require 'workon/actor/web_browser'
4
- require 'workon/actor/finder'
5
- require 'workon/actor/git'
6
- require 'workon/actor/watchr'
7
- require 'workon/actor/passenger'
8
-
9
1
  module Workon
10
2
  module Actor
11
3
  include Enumerable
@@ -13,5 +5,33 @@ module Workon
13
5
  def self.each(&block)
14
6
  Workon::Actor::Base.subclasses.each {|c| yield c }
15
7
  end
8
+
9
+ def self.before(actor = nil, other = nil)
10
+ @before ||= {}
11
+
12
+ return @before if actor.nil?
13
+ raise ArgumentError if other.nil?
14
+
15
+ @before[other] = actor
16
+ end
17
+
18
+ def self.ordered
19
+ order ||= Workon::Actor::Base.subclasses.inject([]) do |memo, klass|
20
+ finder = klass.name.split('::').last
21
+ other = before[finder.to_sym]
22
+ should_add = !Workon.config[:without].include?(finder) && !memo.include?(klass)
23
+
24
+ should_add ? memo + (other ? [other, klass] : [klass]) : memo
25
+ end
26
+ end
16
27
  end
17
28
  end
29
+
30
+ require 'workon/actor/base'
31
+ require 'workon/actor/text_mate'
32
+ require 'workon/actor/web_browser'
33
+ require 'workon/actor/finder'
34
+ require 'workon/actor/git'
35
+ require 'workon/actor/watchr'
36
+ require 'workon/actor/passenger'
37
+ require 'workon/actor/middleman'
@@ -1,3 +1,3 @@
1
1
  module Workon
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
data/lib/workon.rb CHANGED
@@ -35,7 +35,7 @@ module Workon
35
35
  def self.commit!
36
36
  Dir.chdir project_path
37
37
 
38
- Workon::Actor.each do |klass|
38
+ Workon::Actor.ordered.each do |klass|
39
39
  klass.new(project_path).commit
40
40
  end
41
41
 
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: workon
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.6
5
+ version: 0.0.7
6
6
  platform: ruby
7
7
  authors:
8
8
  - Mike Wyatt
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-02-25 00:00:00 -03:30
13
+ date: 2011-03-14 00:00:00 -02:30
14
14
  default_executable:
15
15
  dependencies: []
16
16
 
@@ -34,6 +34,7 @@ files:
34
34
  - lib/workon/actor/base.rb
35
35
  - lib/workon/actor/finder.rb
36
36
  - lib/workon/actor/git.rb
37
+ - lib/workon/actor/middleman.rb
37
38
  - lib/workon/actor/passenger.rb
38
39
  - lib/workon/actor/text_mate.rb
39
40
  - lib/workon/actor/watchr.rb