ikran 0.1.1 → 0.1.2

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/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