Shorty 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|