kata 1.4.1 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 15a563c475e178257ef5a7dff0b159201460a69b
4
- data.tar.gz: 176f1b1abf14617c06bd8816249681b98ffffa22
3
+ metadata.gz: 799c980fa1d662dff11f1fe752746b0df6c25def
4
+ data.tar.gz: d3aa26a5a75c4c38b3319159b4ec801bde30b125
5
5
  SHA512:
6
- metadata.gz: c1e6a4c8a487e3d7b888287cf7af4ae74827a1545a8a5bf6188d12adc124a280f730bfe2f3984de5e5ca97cee8e0a96d5581c5ad9138c2132ce91ddf5b634f9b
7
- data.tar.gz: 14d155c3e7bbbaf1eadb611c5bbb6c848f7a56b7289cf3c7f88aea40fb2a707a1d06b6484da79401f4c2452c41a1fa6c8fff0a7fa2dc9232c39af444adce438a
6
+ metadata.gz: 6974b2ece4c3aac1df67a5165382d65c6b821398834e2652dc11d492bfc56ccdc0408a44b1b1044165a301698ba362a54addb82a86bb583e7c3c6079a1d51166
7
+ data.tar.gz: b99833cf31190965749febe5ae27a2450ab6f02367ff3cd3fcb3dc79fc9fa362506806e1ca74c75aa5a59c02d7520371cf8f8575c831b4d89c454f22b614c1ac
data/bin/kata CHANGED
@@ -63,7 +63,7 @@ options.file = ARGV.shift
63
63
 
64
64
  case options.action
65
65
  when :setup
66
- raise ArgumentError unless options.file && File.exists?(options.file)
66
+ raise(ArgumentError, 'No kata source file specified') unless options.file && File.exists?(options.file)
67
67
 
68
68
  name = nil
69
69
 
@@ -1,4 +1,5 @@
1
1
  require 'kata/setup/base'
2
2
  require 'kata/setup/ruby'
3
+ require 'kata/setup/javascript'
3
4
  require 'kata/base'
4
5
  require 'kata/version'
@@ -28,11 +28,27 @@ module Kata
28
28
  case type
29
29
  when 'ruby'
30
30
  Kata::Setup::Ruby.new(kata_name).build_tree
31
+ when 'javascript'
32
+ Kata::Setup::Javascript.new(kata_name).build_tree
31
33
  end
32
34
  end
33
35
 
34
36
  private
35
37
 
38
+ def use_kata_name
39
+ kata_name.gsub(/( |-)\1?/, '_').downcase
40
+ end
41
+
42
+ def class_name
43
+ kata_name.split(/ |-|_/).map(&:capitalize).join
44
+ end
45
+
46
+ def readme
47
+ File.open(File.join(repo_name, 'README'), 'w') { |f| f.write(<<EOF) }
48
+ Leveling up my coding awesomeness!
49
+ EOF
50
+ end
51
+
36
52
  def github
37
53
  # Setup from github configuration
38
54
  raise Exception, 'Git not installed? Could not find git using which' unless system('which git > /dev/null')
@@ -0,0 +1,69 @@
1
+ require 'kata/setup/base'
2
+
3
+ module Kata
4
+ module Setup
5
+ class Javascript < Kata::Setup::Base
6
+ def build_tree
7
+ %w{lib spec}.each { |path| tree(path) }
8
+ readme
9
+ package_json
10
+ base_class
11
+ kata_spec
12
+ end
13
+
14
+ private
15
+
16
+ def tree(path)
17
+ full_path = case path
18
+ when "lib"
19
+ File.join(repo_name, 'lib')
20
+ when "spec"
21
+ File.join(repo_name, "spec")
22
+ end
23
+
24
+ FileUtils.mkdir_p(full_path)
25
+ end
26
+
27
+ # Using here docs for a cheap templating system
28
+ def package_json
29
+ File.open(File.join(repo_name, 'package.json'), 'w') { |f| f.write(<<EOF) }
30
+ {
31
+ "name": "#{use_kata_name}",
32
+ "version": "0.0.1",
33
+ "dependencies": {
34
+ "jasmine-node": "latest"
35
+ },
36
+ "private": true
37
+ }
38
+ EOF
39
+ end
40
+
41
+ def base_class
42
+ # create the base class file
43
+ File.open(File.join(repo_name, 'lib', "#{use_kata_name}.js"), 'w') {|f| f.write <<EOF}
44
+ var expression = null;
45
+
46
+ exports.getExpr = function() {
47
+ return this.expression;
48
+ };
49
+ EOF
50
+ end
51
+
52
+ def kata_spec
53
+ File.open(File.join(repo_name, 'spec', "#{use_kata_name}_spec.js"), 'w') {|f| f.write <<EOF}
54
+ var #{use_kata_name} = require("../lib/#{use_kata_name}");
55
+
56
+ describe("#{class_name}", function() {
57
+ it("sets the expression", function() {
58
+ var expectation = "1,2";
59
+ #{use_kata_name}.setExpr(expectation);
60
+ var expr = #{use_kata_name}.getExpr();
61
+ expect(expr).toBe(expectation);
62
+ });
63
+ });
64
+ EOF
65
+ end
66
+ end
67
+ end
68
+ end
69
+
@@ -15,14 +15,6 @@ module Kata
15
15
 
16
16
  private
17
17
 
18
- def use_kata_name
19
- kata_name.gsub(/( |-)\1?/, '_').downcase
20
- end
21
-
22
- def class_name
23
- kata_name.split(/ |-|_/).map(&:capitalize).join
24
- end
25
-
26
18
  def tree(path)
27
19
  full_path = case path
28
20
  when "lib"
@@ -39,12 +31,6 @@ module Kata
39
31
  end
40
32
 
41
33
  # Using here docs for a cheap templating system
42
- def readme
43
- File.open(File.join(repo_name, 'README'), 'w') { |f| f.write(<<EOF) }
44
- Leveling up my ruby awesomeness!
45
- EOF
46
- end
47
-
48
34
  def base_class
49
35
  # create the base class file
50
36
  File.open(File.join(repo_name, 'lib', "#{use_kata_name}.rb"), 'w') {|f| f.write <<EOF}
@@ -79,7 +65,7 @@ describe #{class_name} do
79
65
  it "instantiates" do
80
66
  expect {
81
67
  #{class_name}.new
82
- }.to_not raise_exception
68
+ }.to_not raise_error
83
69
  end
84
70
  end
85
71
  end
@@ -90,7 +76,7 @@ EOF
90
76
  File.open(File.join(repo_name, 'spec', 'support', 'matchers', "#{use_kata_name}.rb"), 'w') {|f| f.write <<EOF}
91
77
  RSpec::Matchers.define :your_method do |expected|
92
78
  match do |your_match|
93
- #your_match.method_on_object_to_execute == expected
79
+ #expect(your_match.method_on_object_to_execute).to eq(expected)
94
80
  end
95
81
  end
96
82
  EOF
@@ -1,3 +1,3 @@
1
1
  module Kata
2
- VERSION = '1.4.1'
2
+ VERSION = '1.5.0'
3
3
  end
@@ -0,0 +1,38 @@
1
+ require "spec_helper"
2
+ require "kata/setup/javascript"
3
+ require "fakefs/spec_helpers"
4
+
5
+ module Kata
6
+ module Setup
7
+ describe Javascript do
8
+ describe "#build_tree" do
9
+ include FakeFS::SpecHelpers
10
+
11
+ before :each do
12
+ subject.build_tree
13
+ @use_dir = File.join("/", subject.repo_name)
14
+ end
15
+
16
+ it "creates lib dir" do
17
+ expect(File.directory?(File.join(@use_dir, "lib"))).to be true
18
+ end
19
+
20
+ it "creates spec dir" do
21
+ expect(File.directory?(File.join(@use_dir, "spec"))).to be true
22
+ end
23
+
24
+ it "creates README file" do
25
+ expect(File.exists?(File.join(@use_dir, "README"))).to be true
26
+ end
27
+
28
+ it "create base class file" do
29
+ expect(File.exists?(File.join(@use_dir, "lib", "#{subject.kata_name}.js"))).to be true
30
+ end
31
+
32
+ it "creates base spec file" do
33
+ expect(File.exists?(File.join(@use_dir, "spec", "#{subject.kata_name}_spec.js"))).to be true
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kata
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wes
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-06-09 00:00:00.000000000 Z
12
+ date: 2014-06-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -66,11 +66,13 @@ files:
66
66
  - lib/kata.rb
67
67
  - lib/kata/base.rb
68
68
  - lib/kata/setup/base.rb
69
+ - lib/kata/setup/javascript.rb
69
70
  - lib/kata/setup/ruby.rb
70
71
  - lib/kata/version.rb
71
72
  - spec/kata_base_spec.rb
72
73
  - spec/kata_spec.rb
73
74
  - spec/setup/base_spec.rb
75
+ - spec/setup/javascript_spec.rb
74
76
  - spec/setup/ruby_spec.rb
75
77
  - spec/spec_helper.rb
76
78
  - spec/support/helpers/stdout_helper.rb
@@ -102,6 +104,7 @@ test_files:
102
104
  - spec/kata_base_spec.rb
103
105
  - spec/kata_spec.rb
104
106
  - spec/setup/base_spec.rb
107
+ - spec/setup/javascript_spec.rb
105
108
  - spec/setup/ruby_spec.rb
106
109
  - spec/spec_helper.rb
107
110
  - spec/support/helpers/stdout_helper.rb