Shorty 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +1 -1
- data/bin/Shorty +14 -0
- data/lib/Shorty.rb +11 -10
- data/lib/Shorty/version.rb +1 -1
- data/spec/files/uptime.rb +12 -0
- data/spec/main.rb +1 -0
- data/spec/tests/Shorty.rb +44 -0
- data/spec/tests/bin.rb +35 -12
- metadata +6 -3
data/README.md
CHANGED
data/bin/Shorty
ADDED
data/lib/Shorty.rb
CHANGED
@@ -27,14 +27,19 @@ class Shorty
|
|
27
27
|
shortys[name] = val
|
28
28
|
end
|
29
29
|
|
30
|
-
def before
|
31
|
-
|
32
|
-
befores[[name, action]] << blok
|
30
|
+
def before *args, &blok
|
31
|
+
add_hook :before, *args, &blok
|
33
32
|
end
|
34
33
|
|
35
|
-
def after
|
36
|
-
|
37
|
-
|
34
|
+
def after *args, &blok
|
35
|
+
add_hook :after, *args, &blok
|
36
|
+
end
|
37
|
+
|
38
|
+
def add_hook type, name, action, l = nil, &blok
|
39
|
+
raise ArgumentError, "lambda and block both given" if l && blok
|
40
|
+
list = (type == :before ? befores : afters )
|
41
|
+
list[[name, action]] ||= []
|
42
|
+
list[[name, action]] << (l || blok)
|
38
43
|
end
|
39
44
|
|
40
45
|
def run_hooks group, name, action, package
|
@@ -67,10 +72,6 @@ class Shorty
|
|
67
72
|
result
|
68
73
|
end # === def package
|
69
74
|
|
70
|
-
def executable? name
|
71
|
-
`which #{name}`.strip.empty?
|
72
|
-
end
|
73
|
-
|
74
75
|
end # === DSL
|
75
76
|
|
76
77
|
include DSL
|
data/lib/Shorty/version.rb
CHANGED
data/spec/main.rb
CHANGED
data/spec/tests/Shorty.rb
CHANGED
@@ -47,6 +47,28 @@ describe "Shorty before" do
|
|
47
47
|
t.should == [:b, :t]
|
48
48
|
end
|
49
49
|
|
50
|
+
it "accepts a lambda instead of a block" do
|
51
|
+
s = Shorty.new
|
52
|
+
t = []
|
53
|
+
s.add :test, lambda { t << :t }
|
54
|
+
s.before :test, :run, lambda {
|
55
|
+
t << :b
|
56
|
+
}
|
57
|
+
|
58
|
+
s.run :test
|
59
|
+
t.should == [:b, :t]
|
60
|
+
end
|
61
|
+
|
62
|
+
it "raises ArgumentError if both a lambda and a block are given" do
|
63
|
+
s = Shorty.new
|
64
|
+
s.add :test, lambda {}
|
65
|
+
lambda {
|
66
|
+
l = lambda {}
|
67
|
+
s.before(:test, :run, l) {}
|
68
|
+
}.should.raise(ArgumentError)
|
69
|
+
.message.should.match %r!lambda and block both given!
|
70
|
+
end
|
71
|
+
|
50
72
|
end # === Shorty before
|
51
73
|
|
52
74
|
|
@@ -64,4 +86,26 @@ describe "Shorty after" do
|
|
64
86
|
t.should == [:t, :a]
|
65
87
|
end
|
66
88
|
|
89
|
+
it "accepts a lambda instead of a block" do
|
90
|
+
s = Shorty.new
|
91
|
+
t = []
|
92
|
+
s.add :test, lambda { t << :t }
|
93
|
+
s.after :test, :run, lambda {
|
94
|
+
t << :a
|
95
|
+
}
|
96
|
+
|
97
|
+
s.run :test
|
98
|
+
t.should == [:t, :a]
|
99
|
+
end
|
100
|
+
|
101
|
+
it "raises ArgumentError if both a lambda and a block are given" do
|
102
|
+
s = Shorty.new
|
103
|
+
s.add :test, lambda {}
|
104
|
+
lambda {
|
105
|
+
l = lambda {}
|
106
|
+
s.after(:test, :run, l) {}
|
107
|
+
}.should.raise(ArgumentError)
|
108
|
+
.message.should.match %r!lambda and block both given!
|
109
|
+
end
|
110
|
+
|
67
111
|
end # === Shorty after
|
data/spec/tests/bin.rb
CHANGED
@@ -1,13 +1,36 @@
|
|
1
1
|
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
2
|
+
|
3
|
+
describe "permissions of bin/" do
|
4
|
+
|
5
|
+
bins = Dir.glob("bin/*")
|
6
|
+
|
7
|
+
bins.each { |file|
|
8
|
+
it "should chmod 755 for: #{file}" do
|
9
|
+
`stat -c %a #{file}`.strip
|
10
|
+
.should.be == "755"
|
11
|
+
end
|
12
|
+
}
|
13
|
+
|
14
|
+
end # === permissions of bin/
|
15
|
+
|
16
|
+
describe "Shorty bin" do
|
17
|
+
|
18
|
+
it "runs file that includes Shorty DSL" do
|
19
|
+
Exit_0("Shorty spec/files/uptime.rb").out.split
|
20
|
+
.should == %@
|
21
|
+
starting uptime
|
22
|
+
uptime
|
23
|
+
finished uptime
|
24
|
+
@.split
|
25
|
+
end
|
26
|
+
|
27
|
+
it "runs file only once despite same file, different relative paths" do
|
28
|
+
Exit_0("Shorty spec/files/uptime.rb ./spec/files/uptime.rb").out.split
|
29
|
+
.should == %@
|
30
|
+
starting uptime
|
31
|
+
uptime
|
32
|
+
finished uptime
|
33
|
+
@.split
|
34
|
+
end
|
35
|
+
|
36
|
+
end # === Shorty bin
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: Shorty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-04-
|
12
|
+
date: 2012-04-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bacon
|
@@ -95,7 +95,8 @@ description: ! "\n Add before/after hooks to your method calls. More info. a
|
|
95
95
|
\ the homepage.\n "
|
96
96
|
email:
|
97
97
|
- i-hate-spam-45671204@mailinator.com
|
98
|
-
executables:
|
98
|
+
executables:
|
99
|
+
- Shorty
|
99
100
|
extensions: []
|
100
101
|
extra_rdoc_files: []
|
101
102
|
files:
|
@@ -104,8 +105,10 @@ files:
|
|
104
105
|
- README.md
|
105
106
|
- Rakefile
|
106
107
|
- Shorty.gemspec
|
108
|
+
- bin/Shorty
|
107
109
|
- lib/Shorty.rb
|
108
110
|
- lib/Shorty/version.rb
|
111
|
+
- spec/files/uptime.rb
|
109
112
|
- spec/helper.rb
|
110
113
|
- spec/main.rb
|
111
114
|
- spec/tests/DSL.rb
|