ikran 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/ikran.gemspec +1 -1
- data/lib/ikran/reader.rb +18 -3
- data/spec/ikran_spec.rb +13 -0
- metadata +1 -1
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
data/ikran.gemspec
CHANGED
data/lib/ikran/reader.rb
CHANGED
@@ -7,7 +7,7 @@ module Ikran
|
|
7
7
|
class Reader
|
8
8
|
attr_accessor :verbose
|
9
9
|
|
10
|
-
COMMANDS = ["exit", "server", "ping", "head", "verbose"]
|
10
|
+
COMMANDS = ["exit", "server", "ping", "head", "verbose", "truncate"]
|
11
11
|
STATUS_REGEXP = /#<Net::HTTP[a-zA-Z]+ (.+) readbody=(?:true|false)>/
|
12
12
|
|
13
13
|
def parse(command)
|
@@ -57,16 +57,30 @@ module Ikran
|
|
57
57
|
return "remote must be set before executing head" unless @server
|
58
58
|
res = Net::HTTP.get_response(URI.parse(@server))
|
59
59
|
if res.inspect =~ STATUS_REGEXP
|
60
|
-
@verbose
|
60
|
+
if @verbose
|
61
|
+
(@size.to_i > 0) ? res.body[0, @size] : res.body
|
62
|
+
else
|
63
|
+
$1
|
64
|
+
end
|
61
65
|
else
|
62
66
|
"invalid response #{res.inspect}"
|
63
67
|
end
|
64
68
|
end
|
65
69
|
|
66
70
|
def verbose
|
71
|
+
# TODO - add option to truncate output to max number of characters
|
67
72
|
"verbose is now " + ((@verbose = !@verbose) ? "ON" : "OFF")
|
68
73
|
end
|
69
74
|
|
75
|
+
def truncate(size = nil)
|
76
|
+
if size
|
77
|
+
@size = (size.to_i == 0 ? nil : size.to_i)
|
78
|
+
@size ? "maximum size set to #{@size}" : "maximum size set to infinite"
|
79
|
+
else
|
80
|
+
@size ? "maximum size is #{@size}" : "maximum size is infinite"
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
70
84
|
def exec(command)
|
71
85
|
cmd = parse(command)
|
72
86
|
if cmd
|
@@ -94,6 +108,7 @@ module Ikran
|
|
94
108
|
end
|
95
109
|
end
|
96
110
|
|
97
|
-
aliases :server => [:s, :r, :remote], :head => :h, :ping => :p, :verbose => :v, :exit => :e
|
111
|
+
aliases :server => [:s, :r, :remote], :head => :h, :ping => :p, :verbose => :v, :exit => :e,
|
112
|
+
:truncate => :t
|
98
113
|
end
|
99
114
|
end
|
data/spec/ikran_spec.rb
CHANGED
@@ -63,6 +63,19 @@ describe "Ikran" do
|
|
63
63
|
@reader.exec("head").should == "remote must be set before executing head"
|
64
64
|
end
|
65
65
|
|
66
|
+
it "should have default maximum size set to infinite" do
|
67
|
+
@reader.exec("truncate").should == "maximum size is infinite"
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should return actual maximum size after truncate with parameter" do
|
71
|
+
@reader.exec("truncate 20").should == "maximum size set to 20"
|
72
|
+
end
|
73
|
+
|
74
|
+
it "should return actual maximum size after setting it with truncate" do
|
75
|
+
@reader.exec("truncate 20")
|
76
|
+
@reader.exec("truncate").should == "maximum size is 20"
|
77
|
+
end
|
78
|
+
|
66
79
|
context "non verbose mod" do
|
67
80
|
it "should send a request to given url on 'head' command" do
|
68
81
|
@reader = Ikran::Reader.new
|