kata 1.0.5 → 1.0.6
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/README.md +11 -6
- data/bin/kata +33 -22
- data/lib/kata.rb +1 -0
- data/lib/kata/version.rb +3 -0
- data/spec/kata_setup_spec.rb +1 -0
- data/spec/kata_spec.rb +30 -0
- metadata +5 -2
data/README.md
CHANGED
@@ -1,13 +1,15 @@
|
|
1
1
|
## Kata ##
|
2
2
|
|
3
|
-
A kata is defined as an exercise in programming which helps
|
4
|
-
through practice and repetition.
|
5
|
-
|
6
|
-
|
7
|
-
|
3
|
+
A kata is defined as an exercise in programming which helps hone your skills
|
4
|
+
through practice and repetition. Authoring katas is done in blogs but you can't
|
5
|
+
really test yourself. This gem provides a DSL to author the kata and administer
|
6
|
+
it as a test providing feedback for evaluation. It also provides basic github
|
7
|
+
repo setup so that you can chart solution progress over time.
|
8
8
|
|
9
9
|
### Authoring a Kata ###
|
10
10
|
|
11
|
+
The inspiration for this gem came from my friend Nick Hengeveld
|
12
|
+
|
11
13
|
Authoring a kata is as simple as installing this gem and creating a ruby file
|
12
14
|
much like an RSpec test as illustrated below:
|
13
15
|
|
@@ -162,7 +164,7 @@ With rspec configured you can also run autotest if you have it installed.
|
|
162
164
|
|
163
165
|
Running the kata from the command line yields:
|
164
166
|
|
165
|
-
wesbailey@feynman:~/katas> kata stringcalculator.rb
|
167
|
+
wesbailey@feynman:~/katas> kata take stringcalculator.rb
|
166
168
|
String Calculator Kata
|
167
169
|
Create an add method that will accept two digits as arguments
|
168
170
|
- invoking with 1 and 2 returns 3
|
@@ -192,6 +194,9 @@ displayed:
|
|
192
194
|
Congratulations!
|
193
195
|
- Create an add method that will accept two digits as arguments 00:02:02
|
194
196
|
- Modify the add method to access multple digits as arguments 00:00:45
|
197
|
+
---------------------------------------------------------------------- --------
|
198
|
+
Total Time taking Calculator kata: 00:02:47
|
199
|
+
|
195
200
|
|
196
201
|
### Installing Kata ###
|
197
202
|
|
data/bin/kata
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'kata'
|
2
2
|
|
3
|
-
usage
|
3
|
+
def usage
|
4
|
+
puts(<<EOF); exit 1
|
4
5
|
NAME
|
5
6
|
kata - Ruby kata management
|
6
7
|
|
@@ -17,31 +18,41 @@ PRIMARY COMMANDS
|
|
17
18
|
|
18
19
|
kata take file
|
19
20
|
Start a kata development session
|
21
|
+
|
22
|
+
kata version
|
23
|
+
Current installed version number
|
24
|
+
|
25
|
+
kata help
|
26
|
+
This usage message
|
20
27
|
EOF
|
28
|
+
end
|
21
29
|
|
22
30
|
begin
|
23
|
-
|
24
|
-
|
25
|
-
|
31
|
+
argument = ARGV[0].downcase.to_sym
|
32
|
+
rescue
|
33
|
+
usage
|
34
|
+
end
|
26
35
|
|
27
|
-
|
36
|
+
case argument
|
37
|
+
when :setup
|
38
|
+
raise ArgumentError unless ARGV[1] && File.exists?(ARGV[1])
|
28
39
|
|
29
|
-
|
30
|
-
if line.match /^kata *\"([^\"]*)\" *do$/
|
31
|
-
name = $1
|
32
|
-
break
|
33
|
-
end
|
34
|
-
end
|
40
|
+
name = nil
|
35
41
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
42
|
+
File.open(ARGV[1]).each do |line|
|
43
|
+
if line.match /^kata *\"([^\"]*)\" *do$/
|
44
|
+
name = $1
|
45
|
+
break
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
setup = Kata::Setup.new name
|
50
|
+
setup.build_tree
|
51
|
+
setup.create_repo
|
52
|
+
when :take
|
53
|
+
load ARGV[1]
|
54
|
+
when :version
|
55
|
+
puts "kata #{Kata::VERSION}"
|
56
|
+
else
|
57
|
+
usage
|
47
58
|
end
|
data/lib/kata.rb
CHANGED
data/lib/kata/version.rb
ADDED
data/spec/kata_setup_spec.rb
CHANGED
data/spec/kata_spec.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'kata/version'
|
3
|
+
|
4
|
+
describe 'kata shell' do
|
5
|
+
it "should exit with status 1" do
|
6
|
+
system "ruby -I lib bin/kata 1> /dev/null"
|
7
|
+
$?.exitstatus.should == 1
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should display the version" do
|
11
|
+
%x{ruby -I lib bin/kata version}.chomp.should == "kata #{Kata::VERSION}"
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should run the kata" do
|
15
|
+
File.open('test_sample.rb', 'w') do |file|
|
16
|
+
file.write <<-EOF
|
17
|
+
kata "My Test" do
|
18
|
+
end
|
19
|
+
EOF
|
20
|
+
end
|
21
|
+
|
22
|
+
%x{ruby -I lib bin/kata take test_sample.rb}.chomp.should == 'My Test Kata'
|
23
|
+
|
24
|
+
File.unlink 'test_sample.rb'
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should display the usage message" do
|
28
|
+
%x{ruby -I lib bin/kata help}.should =~ /NAME\n.*kata - Ruby kata management/
|
29
|
+
end
|
30
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: kata
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.0.
|
5
|
+
version: 1.0.6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Wes
|
@@ -11,7 +11,7 @@ autorequire:
|
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
13
|
|
14
|
-
date: 2011-03-
|
14
|
+
date: 2011-03-19 00:00:00 -07:00
|
15
15
|
default_executable:
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
@@ -36,10 +36,12 @@ extra_rdoc_files: []
|
|
36
36
|
files:
|
37
37
|
- lib/kata/base.rb
|
38
38
|
- lib/kata/setup.rb
|
39
|
+
- lib/kata/version.rb
|
39
40
|
- lib/kata.rb
|
40
41
|
- README.md
|
41
42
|
- spec/kata_base_spec.rb
|
42
43
|
- spec/kata_setup_spec.rb
|
44
|
+
- spec/kata_spec.rb
|
43
45
|
- spec/spec_helper.rb
|
44
46
|
- spec/support/helpers/stdout_helper.rb
|
45
47
|
- spec/support/matchers/kata.rb
|
@@ -75,6 +77,7 @@ summary: A code kata DSL
|
|
75
77
|
test_files:
|
76
78
|
- spec/kata_base_spec.rb
|
77
79
|
- spec/kata_setup_spec.rb
|
80
|
+
- spec/kata_spec.rb
|
78
81
|
- spec/spec_helper.rb
|
79
82
|
- spec/support/helpers/stdout_helper.rb
|
80
83
|
- spec/support/matchers/kata.rb
|