rasskey 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.5
1
+ 0.0.6
@@ -1,2 +1,3 @@
1
1
  require 'rasskey/extensions/string'
2
2
  require 'rasskey/box'
3
+ require 'rasskey/line'
@@ -0,0 +1,60 @@
1
+ module RassKey
2
+ class Line
3
+ class << self
4
+ attr_accessor :default_length
5
+ attr_accessor :default_padding
6
+ attr_accessor :default_glyph
7
+ attr_accessor :default_orientation
8
+ end
9
+
10
+ @default_length = 20
11
+ @default_padding = 1
12
+ @default_glyph = '-'
13
+ @default_orientation = "horizontal"
14
+
15
+ attr_accessor :line_length
16
+ attr_accessor :padding
17
+ attr_accessor :glyph
18
+ attr_accessor :orientation
19
+
20
+ def initialize(options = {})
21
+ options = {
22
+ :line_length => RassKey::Line.default_length,
23
+ :padding => RassKey::Line.default_padding,
24
+ :glyph => RassKey::Line.default_glyph,
25
+ :orientation => RassKey::Line.default_orientation
26
+ }.merge(options)
27
+
28
+ self.line_length = options[:line_length]
29
+ self.padding = options[:padding]
30
+ self.glyph = options[:glyph]
31
+ self.orientation = options[:orientation]
32
+
33
+ super()
34
+ end
35
+
36
+ def draw(data)
37
+ @glyph.length == 1 ? (@glyph = @glyph) : (@glyph = @glyph[0,1])
38
+ spacing = " " * @padding || " "
39
+ line_text = "#{spacing}#{data}#{spacing}"
40
+ begin
41
+ content_line = "#{@glyph * ((@line_length - line_text.length)/2)}#{line_text}#{@glyph * ((@line_length - line_text.length)/2)}"
42
+ rescue
43
+ puts "line length must be larger to accomodate text"
44
+ end
45
+ case @orientation
46
+ when "horizontal"
47
+ content_line
48
+ when "vertical"
49
+ self.vertical(content_line)
50
+ else
51
+ puts "unknown orientation. Should be vertical or horizontal"
52
+ end
53
+ end
54
+
55
+ def vertical(data)
56
+ data.split(//).join("\n")
57
+ end
58
+
59
+ end
60
+ end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rasskey}
8
- s.version = "0.0.5"
8
+ s.version = "0.0.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["lusis"]
12
- s.date = %q{2010-11-29}
12
+ s.date = %q{2010-11-30}
13
13
  s.description = %q{Small Ruby library for ASCII drawing}
14
14
  s.email = %q{lusis.org+rubygems.org@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -31,9 +31,11 @@ Gem::Specification.new do |s|
31
31
  "lib/rasskey.rb",
32
32
  "lib/rasskey/box.rb",
33
33
  "lib/rasskey/extensions/string.rb",
34
+ "lib/rasskey/line.rb",
34
35
  "lib/rasskey/version.rb",
35
36
  "rasskey.gemspec",
36
37
  "spec/rasskey_box_spec.rb",
38
+ "spec/rasskey_line_spec.rb",
37
39
  "spec/rasskey_string_spec.rb",
38
40
  "spec/spec_helper.rb"
39
41
  ]
@@ -44,6 +46,7 @@ Gem::Specification.new do |s|
44
46
  s.summary = %q{Small Ruby library for ASCII drawing}
45
47
  s.test_files = [
46
48
  "spec/rasskey_box_spec.rb",
49
+ "spec/rasskey_line_spec.rb",
47
50
  "spec/rasskey_string_spec.rb",
48
51
  "spec/spec_helper.rb"
49
52
  ]
@@ -0,0 +1,34 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Rasskey::Line" do
4
+ it "should return a RassKey::Line object" do
5
+ line = RassKey::Line.new
6
+ line.padding.should == 1
7
+ line.glyph.should == "-"
8
+ line.line_length.should == 20
9
+ line.instance_of?(RassKey::Line).should be_true
10
+ end
11
+
12
+ it "should draw the default line with text 'test'" do
13
+ line = RassKey::Line.new
14
+ line.draw("test").should == "------- test -------"
15
+ end
16
+
17
+ it "should accept an option hash " do
18
+ line = RassKey::Line.new :padding => 2, :glyph => "=", :line_length => 50
19
+ line.draw("test").should == "===================== test ====================="
20
+ end
21
+
22
+ it "should accept attr_accessors" do
23
+ line = RassKey::Line.new
24
+ line.padding = 2
25
+ line.glyph = "="
26
+ line.line_length = 50
27
+ line.draw("test").should == "===================== test ====================="
28
+ end
29
+
30
+ it "should draw a vertical line" do
31
+ line = RassKey::Line.new :orientation => 'vertical', :glyph => '|'
32
+ line.draw('vertical').should == "|\n|\n|\n|\n|\n \nv\ne\nr\nt\ni\nc\na\nl\n \n|\n|\n|\n|\n|"
33
+ end
34
+ end
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rasskey
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
5
4
  prerelease: false
6
5
  segments:
7
6
  - 0
8
7
  - 0
9
- - 5
10
- version: 0.0.5
8
+ - 6
9
+ version: 0.0.6
11
10
  platform: ruby
12
11
  authors:
13
12
  - lusis
@@ -15,85 +14,80 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2010-11-29 00:00:00 -05:00
17
+ date: 2010-11-30 00:00:00 -05:00
19
18
  default_executable:
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
- prerelease: false
23
21
  name: rspec
24
- version_requirements: &id001 !ruby/object:Gem::Requirement
22
+ requirement: &id001 !ruby/object:Gem::Requirement
25
23
  none: false
26
24
  requirements:
27
25
  - - ~>
28
26
  - !ruby/object:Gem::Version
29
- hash: 11
30
27
  segments:
31
28
  - 2
32
29
  - 1
33
30
  - 0
34
31
  version: 2.1.0
35
- requirement: *id001
36
32
  type: :development
37
- - !ruby/object:Gem::Dependency
38
33
  prerelease: false
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
39
36
  name: cucumber
40
- version_requirements: &id002 !ruby/object:Gem::Requirement
37
+ requirement: &id002 !ruby/object:Gem::Requirement
41
38
  none: false
42
39
  requirements:
43
40
  - - ">="
44
41
  - !ruby/object:Gem::Version
45
- hash: 3
46
42
  segments:
47
43
  - 0
48
44
  version: "0"
49
- requirement: *id002
50
45
  type: :development
51
- - !ruby/object:Gem::Dependency
52
46
  prerelease: false
47
+ version_requirements: *id002
48
+ - !ruby/object:Gem::Dependency
53
49
  name: bundler
54
- version_requirements: &id003 !ruby/object:Gem::Requirement
50
+ requirement: &id003 !ruby/object:Gem::Requirement
55
51
  none: false
56
52
  requirements:
57
53
  - - ~>
58
54
  - !ruby/object:Gem::Version
59
- hash: 23
60
55
  segments:
61
56
  - 1
62
57
  - 0
63
58
  - 0
64
59
  version: 1.0.0
65
- requirement: *id003
66
60
  type: :development
67
- - !ruby/object:Gem::Dependency
68
61
  prerelease: false
62
+ version_requirements: *id003
63
+ - !ruby/object:Gem::Dependency
69
64
  name: jeweler
70
- version_requirements: &id004 !ruby/object:Gem::Requirement
65
+ requirement: &id004 !ruby/object:Gem::Requirement
71
66
  none: false
72
67
  requirements:
73
68
  - - ~>
74
69
  - !ruby/object:Gem::Version
75
- hash: 1
76
70
  segments:
77
71
  - 1
78
72
  - 5
79
73
  - 1
80
74
  version: 1.5.1
81
- requirement: *id004
82
75
  type: :development
83
- - !ruby/object:Gem::Dependency
84
76
  prerelease: false
77
+ version_requirements: *id004
78
+ - !ruby/object:Gem::Dependency
85
79
  name: rcov
86
- version_requirements: &id005 !ruby/object:Gem::Requirement
80
+ requirement: &id005 !ruby/object:Gem::Requirement
87
81
  none: false
88
82
  requirements:
89
83
  - - ">="
90
84
  - !ruby/object:Gem::Version
91
- hash: 3
92
85
  segments:
93
86
  - 0
94
87
  version: "0"
95
- requirement: *id005
96
88
  type: :development
89
+ prerelease: false
90
+ version_requirements: *id005
97
91
  description: Small Ruby library for ASCII drawing
98
92
  email: lusis.org+rubygems.org@gmail.com
99
93
  executables: []
@@ -118,9 +112,11 @@ files:
118
112
  - lib/rasskey.rb
119
113
  - lib/rasskey/box.rb
120
114
  - lib/rasskey/extensions/string.rb
115
+ - lib/rasskey/line.rb
121
116
  - lib/rasskey/version.rb
122
117
  - rasskey.gemspec
123
118
  - spec/rasskey_box_spec.rb
119
+ - spec/rasskey_line_spec.rb
124
120
  - spec/rasskey_string_spec.rb
125
121
  - spec/spec_helper.rb
126
122
  has_rdoc: true
@@ -137,7 +133,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
137
133
  requirements:
138
134
  - - ">="
139
135
  - !ruby/object:Gem::Version
140
- hash: 3
136
+ hash: -2176102894295194534
141
137
  segments:
142
138
  - 0
143
139
  version: "0"
@@ -146,7 +142,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
146
142
  requirements:
147
143
  - - ">="
148
144
  - !ruby/object:Gem::Version
149
- hash: 3
150
145
  segments:
151
146
  - 0
152
147
  version: "0"
@@ -159,5 +154,6 @@ specification_version: 3
159
154
  summary: Small Ruby library for ASCII drawing
160
155
  test_files:
161
156
  - spec/rasskey_box_spec.rb
157
+ - spec/rasskey_line_spec.rb
162
158
  - spec/rasskey_string_spec.rb
163
159
  - spec/spec_helper.rb