bob_test 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README +3 -0
- data/lib/Bt.rb +15 -0
- data/lib/bob_test.rb +77 -0
- metadata +57 -0
data/README
ADDED
data/lib/Bt.rb
ADDED
data/lib/bob_test.rb
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
# get_line and get_lines unabashedly stolen from the command_history.rb file in the Utility Belt gem.
|
2
|
+
module BobTest
|
3
|
+
def self.included(base)
|
4
|
+
base.send :extend, ClassMethods
|
5
|
+
end
|
6
|
+
module ClassMethods
|
7
|
+
require 'ftools'
|
8
|
+
class << self; attr_accessor :test; end
|
9
|
+
|
10
|
+
def start_test(name = Time.now.to_s)
|
11
|
+
@test = BobTest.new
|
12
|
+
@test.start_line = Readline::HISTORY.size - 1
|
13
|
+
@test.name = name
|
14
|
+
end
|
15
|
+
|
16
|
+
# todo figure out why there's an off by 1 error. Would expect size - 1 to be the last command.
|
17
|
+
def end_test
|
18
|
+
@test.end_line = Readline::HISTORY.size - 3
|
19
|
+
@test.get_lines(@test.start_line..@test.end_line)
|
20
|
+
# TODO figure out how to find path to rails project.
|
21
|
+
path_to_file = File.expand_path(File.dirname(__FILE__)) + "/../test/unit/bob/"
|
22
|
+
File.makedirs(path_to_file)
|
23
|
+
filename ="#{self.class_name.underscore}_bob_test.rb"
|
24
|
+
filename_with_path = path_to_file + filename
|
25
|
+
File.open(filename_with_path, 'w+') do |f|
|
26
|
+
f.write("class #{self.class_name}BobTest < Bt\nend\n")
|
27
|
+
end unless File.exists?(filename_with_path)
|
28
|
+
@test.write_to_file(filename_with_path)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
|
33
|
+
# need to figure out what File.open('/path/to/file', 'wb' ) does # the wb part. (w means write, b means binary)
|
34
|
+
# commands.rb in rails source
|
35
|
+
|
36
|
+
class BobTest
|
37
|
+
|
38
|
+
attr_accessor :name, :start_line, :end_line, :contents, :indentable_words
|
39
|
+
|
40
|
+
@indentable_words = %w{begin break case def do else elsif end ensure if in next redo rescue retry return
|
41
|
+
super then unless until when while yield}
|
42
|
+
|
43
|
+
def get_lines(lines = [])
|
44
|
+
out = []
|
45
|
+
lines = lines.to_a if lines.is_a? Range
|
46
|
+
lines.each do |l|
|
47
|
+
out << Readline::HISTORY[l]
|
48
|
+
end
|
49
|
+
@contents = out
|
50
|
+
end
|
51
|
+
|
52
|
+
def write_to_file(file)
|
53
|
+
File.open(file, 'r+') do |f|
|
54
|
+
lines = f.readlines
|
55
|
+
e = lines.pop
|
56
|
+
until e.eql?("end\n")
|
57
|
+
e = lines.pop
|
58
|
+
break if lines.empty?
|
59
|
+
end
|
60
|
+
f.pos = 0
|
61
|
+
f.write lines
|
62
|
+
f.write " def #{name.gsub(/\W/,'_')}\n"
|
63
|
+
@contents.each do |line|
|
64
|
+
f.write " #{line}\n"
|
65
|
+
end
|
66
|
+
f.write " end\n"
|
67
|
+
f.write e
|
68
|
+
f.truncate f.pos
|
69
|
+
end
|
70
|
+
# gonna have to run a file indenter !
|
71
|
+
# gotta figure out how to load the files this produces
|
72
|
+
# pluginify this
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
metadata
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: bob_test
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- deathbob
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2010-02-07 00:00:00 -05:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: bob_test is dangerous.
|
17
|
+
email: larrick@gmail.com
|
18
|
+
executables: []
|
19
|
+
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files: []
|
23
|
+
|
24
|
+
files:
|
25
|
+
- README
|
26
|
+
- lib/Bt.rb
|
27
|
+
- lib/bob_test.rb
|
28
|
+
has_rdoc: true
|
29
|
+
homepage: http://github.com/deathbob/bob_test
|
30
|
+
licenses: []
|
31
|
+
|
32
|
+
post_install_message:
|
33
|
+
rdoc_options: []
|
34
|
+
|
35
|
+
require_paths:
|
36
|
+
- lib
|
37
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: "0"
|
42
|
+
version:
|
43
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: "0"
|
48
|
+
version:
|
49
|
+
requirements: []
|
50
|
+
|
51
|
+
rubyforge_project:
|
52
|
+
rubygems_version: 1.3.5
|
53
|
+
signing_key:
|
54
|
+
specification_version: 3
|
55
|
+
summary: bob_test is a testing strategy for people named bob.
|
56
|
+
test_files: []
|
57
|
+
|