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 CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.1.2
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{ikran}
8
- s.version = "0.1.1"
8
+ s.version = "0.1.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["darthdeus"]
@@ -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 ? res.body : $1
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
@@ -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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ikran
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - darthdeus