kata 1.5.0 → 1.6.0
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.
- checksums.yaml +4 -4
 - data/bin/kata +3 -1
 - data/lib/kata.rb +2 -1
 - data/lib/kata/base.rb +13 -11
 - data/lib/kata/setup/base.rb +63 -25
 - data/lib/kata/setup/{javascript.rb → node.rb} +11 -17
 - data/lib/kata/setup/php.rb +87 -0
 - data/lib/kata/setup/ruby.rb +36 -40
 - data/lib/kata/version.rb +1 -1
 - data/spec/setup/base_spec.rb +59 -0
 - data/spec/setup/{javascript_spec.rb → node_spec.rb} +12 -4
 - data/spec/setup/php_spec.rb +43 -0
 - data/spec/setup/ruby_spec.rb +7 -15
 - data/spec/spec_helper.rb +8 -5
 - metadata +8 -5
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 9f38d529f6814fb12f472bb2bfa479f7a00a334d
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 2bd597620a28cc985ce3ce8e18215d193e3e1339
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: ea74244753c10614fce17195944dd29a75db466c4a0eb57362ce2e4635bed0e74e8ef51529a021ae6a79489d7ae6a30a6729f810ee45d34ff6e047ae2b26f635
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: b5513df5b97f52c2e9f71ade69caba49137845cae21242c0d9a999fdc667854e5d330af8eca1008f4deb378f4a74c565e7c89804d6f7a1a2301c14cf44c4b052
         
     | 
    
        data/bin/kata
    CHANGED
    
    | 
         @@ -21,6 +21,7 @@ PRIMARY COMMANDS 
     | 
|
| 
       21 
21 
     | 
    
         | 
| 
       22 
22 
     | 
    
         
             
                    --no-repo         - Add the directory tree and files to the current repo if possible
         
     | 
| 
       23 
23 
     | 
    
         
             
                    --language=option - Define the programming language for the directory tree that is built
         
     | 
| 
      
 24 
     | 
    
         
            +
                                        VALID OPTIONS [ruby,node,php]
         
     | 
| 
       24 
25 
     | 
    
         
             
                    file              - Path to the code kata source file for the practice session
         
     | 
| 
       25 
26 
     | 
    
         | 
| 
       26 
27 
     | 
    
         
             
                kata take file
         
     | 
| 
         @@ -48,7 +49,7 @@ OptionParser.new do |opts| 
     | 
|
| 
       48 
49 
     | 
    
         
             
                options.repo = false
         
     | 
| 
       49 
50 
     | 
    
         
             
              end
         
     | 
| 
       50 
51 
     | 
    
         | 
| 
       51 
     | 
    
         
            -
              opts.on('-l 
     | 
| 
      
 52 
     | 
    
         
            +
              opts.on('-l', '--language [LANG]', 'Setup the kata file tree using the specified language') do |lang|
         
     | 
| 
       52 
53 
     | 
    
         
             
                options.language = lang
         
     | 
| 
       53 
54 
     | 
    
         
             
              end
         
     | 
| 
       54 
55 
     | 
    
         
             
            end.parse!
         
     | 
| 
         @@ -64,6 +65,7 @@ options.file = ARGV.shift 
     | 
|
| 
       64 
65 
     | 
    
         
             
            case options.action
         
     | 
| 
       65 
66 
     | 
    
         
             
              when :setup
         
     | 
| 
       66 
67 
     | 
    
         
             
                raise(ArgumentError, 'No kata source file specified') unless options.file && File.exists?(options.file)
         
     | 
| 
      
 68 
     | 
    
         
            +
                raise(ArgumentError, 'Invalid language option') unless %w{ruby node php}.include?(options.language)
         
     | 
| 
       67 
69 
     | 
    
         | 
| 
       68 
70 
     | 
    
         
             
                name = nil
         
     | 
| 
       69 
71 
     | 
    
         | 
    
        data/lib/kata.rb
    CHANGED
    
    
    
        data/lib/kata/base.rb
    CHANGED
    
    | 
         @@ -66,13 +66,16 @@ module Kata 
     | 
|
| 
       66 
66 
     | 
    
         
             
                def complete(status = true)
         
     | 
| 
       67 
67 
     | 
    
         
             
                  return if @@times.size == 0
         
     | 
| 
       68 
68 
     | 
    
         | 
| 
       69 
     | 
    
         
            -
                  formatter = lambda do |sec|
         
     | 
| 
       70 
     | 
    
         
            -
                    use = sec.round
         
     | 
| 
       71 
     | 
    
         
            -
                    [use/3600, use/60 % 60, use % 60].map {|v| v.to_s.rjust(2,'0')}.join(':')
         
     | 
| 
       72 
     | 
    
         
            -
                  end
         
     | 
| 
       73 
     | 
    
         
            -
             
     | 
| 
       74 
69 
     | 
    
         
             
                  suppress_output
         
     | 
| 
      
 70 
     | 
    
         
            +
                  report
         
     | 
| 
      
 71 
     | 
    
         
            +
                  content = capture_output
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
                  File.open('report.txt', 'w').write(content)
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
                  puts content
         
     | 
| 
      
 76 
     | 
    
         
            +
                end
         
     | 
| 
       75 
77 
     | 
    
         | 
| 
      
 78 
     | 
    
         
            +
                def report
         
     | 
| 
       76 
79 
     | 
    
         
             
                  table :border => true do
         
     | 
| 
       77 
80 
     | 
    
         
             
                    row :header => true do
         
     | 
| 
       78 
81 
     | 
    
         
             
                      column 'Requirement', :color => 'red', :width => 80
         
     | 
| 
         @@ -82,16 +85,15 @@ module Kata 
     | 
|
| 
       82 
85 
     | 
    
         
             
                    @@times.each do |t|
         
     | 
| 
       83 
86 
     | 
    
         
             
                      row do
         
     | 
| 
       84 
87 
     | 
    
         
             
                        column t[:title]
         
     | 
| 
       85 
     | 
    
         
            -
                        column  
     | 
| 
      
 88 
     | 
    
         
            +
                        column format_time(t[:time])
         
     | 
| 
       86 
89 
     | 
    
         
             
                      end
         
     | 
| 
       87 
90 
     | 
    
         
             
                    end
         
     | 
| 
       88 
91 
     | 
    
         
             
                  end
         
     | 
| 
      
 92 
     | 
    
         
            +
                end
         
     | 
| 
       89 
93 
     | 
    
         | 
| 
       90 
     | 
    
         
            -
             
     | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
       92 
     | 
    
         
            -
                   
     | 
| 
       93 
     | 
    
         
            -
             
     | 
| 
       94 
     | 
    
         
            -
                  puts report
         
     | 
| 
      
 94 
     | 
    
         
            +
                def format_time(sec)
         
     | 
| 
      
 95 
     | 
    
         
            +
                  use = sec.round
         
     | 
| 
      
 96 
     | 
    
         
            +
                  [use/3600, use/60 % 60, use % 60].map {|v| v.to_s.rjust(2,'0')}.join(':')
         
     | 
| 
       95 
97 
     | 
    
         
             
                end
         
     | 
| 
       96 
98 
     | 
    
         | 
| 
       97 
99 
     | 
    
         
             
                def ancestry
         
     | 
    
        data/lib/kata/setup/base.rb
    CHANGED
    
    | 
         @@ -28,13 +28,21 @@ module Kata 
     | 
|
| 
       28 
28 
     | 
    
         
             
                    case type
         
     | 
| 
       29 
29 
     | 
    
         
             
                    when 'ruby'
         
     | 
| 
       30 
30 
     | 
    
         
             
                      Kata::Setup::Ruby.new(kata_name).build_tree
         
     | 
| 
       31 
     | 
    
         
            -
                    when ' 
     | 
| 
       32 
     | 
    
         
            -
                      Kata::Setup:: 
     | 
| 
      
 31 
     | 
    
         
            +
                    when 'node'
         
     | 
| 
      
 32 
     | 
    
         
            +
                      Kata::Setup::Node.new(kata_name).build_tree
         
     | 
| 
      
 33 
     | 
    
         
            +
                    when 'php'
         
     | 
| 
      
 34 
     | 
    
         
            +
                      Kata::Setup::Php.new(kata_name).build_tree
         
     | 
| 
      
 35 
     | 
    
         
            +
                    else
         
     | 
| 
      
 36 
     | 
    
         
            +
                      raise(ArgumentError, "Invalid language type #{type}")
         
     | 
| 
       33 
37 
     | 
    
         
             
                    end
         
     | 
| 
       34 
38 
     | 
    
         
             
                  end
         
     | 
| 
       35 
39 
     | 
    
         | 
| 
       36 
40 
     | 
    
         
             
                  private
         
     | 
| 
       37 
41 
     | 
    
         | 
| 
      
 42 
     | 
    
         
            +
                  def tree(path)
         
     | 
| 
      
 43 
     | 
    
         
            +
                    FileUtils.mkdir_p(File.join(repo_name, path))
         
     | 
| 
      
 44 
     | 
    
         
            +
                  end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
       38 
46 
     | 
    
         
             
                  def use_kata_name
         
     | 
| 
       39 
47 
     | 
    
         
             
                    kata_name.gsub(/( |-)\1?/, '_').downcase
         
     | 
| 
       40 
48 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -43,8 +51,15 @@ module Kata 
     | 
|
| 
       43 
51 
     | 
    
         
             
                    kata_name.split(/ |-|_/).map(&:capitalize).join
         
     | 
| 
       44 
52 
     | 
    
         
             
                  end
         
     | 
| 
       45 
53 
     | 
    
         | 
| 
      
 54 
     | 
    
         
            +
                  def write_repo_file(use_file, use_contents, permissions = 0644)
         
     | 
| 
      
 55 
     | 
    
         
            +
                    File.open(File.join(repo_name, use_file), 'w') do |f|
         
     | 
| 
      
 56 
     | 
    
         
            +
                      f.write(use_contents)
         
     | 
| 
      
 57 
     | 
    
         
            +
                      f.chmod(permissions) rescue Exception
         
     | 
| 
      
 58 
     | 
    
         
            +
                    end
         
     | 
| 
      
 59 
     | 
    
         
            +
                  end
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
       46 
61 
     | 
    
         
             
                  def readme
         
     | 
| 
       47 
     | 
    
         
            -
                     
     | 
| 
      
 62 
     | 
    
         
            +
                    write_repo_file('README',<<EOF)
         
     | 
| 
       48 
63 
     | 
    
         
             
            Leveling up my coding awesomeness!
         
     | 
| 
       49 
64 
     | 
    
         
             
            EOF
         
     | 
| 
       50 
65 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -55,28 +70,46 @@ EOF 
     | 
|
| 
       55 
70 
     | 
    
         | 
| 
       56 
71 
     | 
    
         
             
                    @github ||=
         
     | 
| 
       57 
72 
     | 
    
         
             
                      begin
         
     | 
| 
       58 
     | 
    
         
            -
                         
     | 
| 
      
 73 
     | 
    
         
            +
                        struct = OpenStruct.new
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
                        struct.token = %x{git config --get github.token}.chomp
         
     | 
| 
       59 
76 
     | 
    
         | 
| 
       60 
77 
     | 
    
         
             
                        github_user = %x{git config --get github.user}.chomp
         
     | 
| 
       61 
78 
     | 
    
         
             
                        shell_user = ENV['USER']
         
     | 
| 
       62 
79 
     | 
    
         | 
| 
       63 
     | 
    
         
            -
                         
     | 
| 
      
 80 
     | 
    
         
            +
                        struct.user = github_user.empty? ? shell_user : github_user
         
     | 
| 
       64 
81 
     | 
    
         | 
| 
       65 
     | 
    
         
            -
                         
     | 
| 
      
 82 
     | 
    
         
            +
                        struct
         
     | 
| 
      
 83 
     | 
    
         
            +
                      end
         
     | 
| 
      
 84 
     | 
    
         
            +
                  end
         
     | 
| 
       66 
85 
     | 
    
         | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
      
 86 
     | 
    
         
            +
                  def client_factory
         
     | 
| 
      
 87 
     | 
    
         
            +
                    if github.token
         
     | 
| 
      
 88 
     | 
    
         
            +
                      # nothing to do
         
     | 
| 
      
 89 
     | 
    
         
            +
                    elsif github.user
         
     | 
| 
      
 90 
     | 
    
         
            +
                      get_password
         
     | 
| 
      
 91 
     | 
    
         
            +
                      get_token
         
     | 
| 
      
 92 
     | 
    
         
            +
                    else
         
     | 
| 
      
 93 
     | 
    
         
            +
                      raise Exception, 'Unable to determine github.token or github.user' if github.user.empty?
         
     | 
| 
      
 94 
     | 
    
         
            +
                    end
         
     | 
| 
       69 
95 
     | 
    
         | 
| 
       70 
     | 
    
         
            -
             
     | 
| 
       71 
     | 
    
         
            -
                      end
         
     | 
| 
      
 96 
     | 
    
         
            +
                    client.access_token = github.token
         
     | 
| 
       72 
97 
     | 
    
         
             
                  end
         
     | 
| 
       73 
98 
     | 
    
         | 
| 
       74 
99 
     | 
    
         
             
                  def client
         
     | 
| 
       75 
     | 
    
         
            -
                    @client ||= Octokit::Client.new 
     | 
| 
      
 100 
     | 
    
         
            +
                    @client ||= Octokit::Client.new
         
     | 
| 
      
 101 
     | 
    
         
            +
                  end
         
     | 
| 
      
 102 
     | 
    
         
            +
             
     | 
| 
      
 103 
     | 
    
         
            +
                  def get_password
         
     | 
| 
      
 104 
     | 
    
         
            +
                    print 'Github account password: '
         
     | 
| 
      
 105 
     | 
    
         
            +
                    github.password = STDIN.noecho(&:gets).chomp
         
     | 
| 
       76 
106 
     | 
    
         
             
                  end
         
     | 
| 
       77 
107 
     | 
    
         | 
| 
       78 
     | 
    
         
            -
                  def  
     | 
| 
       79 
     | 
    
         
            -
                     
     | 
| 
      
 108 
     | 
    
         
            +
                  def get_token
         
     | 
| 
      
 109 
     | 
    
         
            +
                    client.login = github.user
         
     | 
| 
      
 110 
     | 
    
         
            +
                    client.password = github.password
         
     | 
| 
      
 111 
     | 
    
         
            +
             
     | 
| 
      
 112 
     | 
    
         
            +
                    authorization = client.create_authorization({:scopes => ['public_repo'], :note => 'Code Kata'})
         
     | 
| 
       80 
113 
     | 
    
         | 
| 
       81 
114 
     | 
    
         
             
                    github.token = authorization.token
         
     | 
| 
       82 
115 
     | 
    
         | 
| 
         @@ -85,29 +118,34 @@ EOF 
     | 
|
| 
       85 
118 
     | 
    
         
             
                  end
         
     | 
| 
       86 
119 
     | 
    
         | 
| 
       87 
120 
     | 
    
         
             
                  def create_remote_repo
         
     | 
| 
       88 
     | 
    
         
            -
                     
     | 
| 
       89 
     | 
    
         
            -
             
     | 
| 
       90 
     | 
    
         
            -
                     
     | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
       92 
     | 
    
         
            -
             
     | 
| 
      
 121 
     | 
    
         
            +
                    client_factory
         
     | 
| 
      
 122 
     | 
    
         
            +
             
     | 
| 
      
 123 
     | 
    
         
            +
                    begin
         
     | 
| 
      
 124 
     | 
    
         
            +
                      print "Creating remote repo..."
         
     | 
| 
      
 125 
     | 
    
         
            +
                      client.create_repo "#{repo_name}"
         
     | 
| 
      
 126 
     | 
    
         
            +
                    rescue Exception
         
     | 
| 
      
 127 
     | 
    
         
            +
                      puts "\nError: unable to create the git repo."
         
     | 
| 
      
 128 
     | 
    
         
            +
                      print 'Proceeding...'
         
     | 
| 
      
 129 
     | 
    
         
            +
                    ensure
         
     | 
| 
      
 130 
     | 
    
         
            +
                      puts "done"
         
     | 
| 
      
 131 
     | 
    
         
            +
                    end
         
     | 
| 
       93 
132 
     | 
    
         
             
                  end
         
     | 
| 
       94 
133 
     | 
    
         | 
| 
       95 
134 
     | 
    
         
             
                  def push_local_repo(new_repo)
         
     | 
| 
       96 
     | 
    
         
            -
                    print "creating files for repo and initializing..."
         
     | 
| 
       97 
     | 
    
         
            -
             
     | 
| 
       98 
135 
     | 
    
         
             
                    cmd = "cd #{repo_name} &&"
         
     | 
| 
       99 
136 
     | 
    
         | 
| 
       100 
137 
     | 
    
         
             
                    if new_repo
         
     | 
| 
       101 
     | 
    
         
            -
                      cmd << "git init  
     | 
| 
       102 
     | 
    
         
            -
                      cmd << "git add README .rspec lib/ spec/  
     | 
| 
      
 138 
     | 
    
         
            +
                      cmd << "git init &&"
         
     | 
| 
      
 139 
     | 
    
         
            +
                      #cmd << "git add README .rspec lib/ spec/ &&"
         
     | 
| 
      
 140 
     | 
    
         
            +
                      cmd << "git add . &&"
         
     | 
| 
       103 
141 
     | 
    
         
             
                    else
         
     | 
| 
       104 
     | 
    
         
            -
                      cmd << "git add #{ENV['PWD']}/#{repo_name} 
     | 
| 
      
 142 
     | 
    
         
            +
                      cmd << "git add #{ENV['PWD']}/#{repo_name};"
         
     | 
| 
       105 
143 
     | 
    
         
             
                    end
         
     | 
| 
       106 
144 
     | 
    
         | 
| 
       107 
     | 
    
         
            -
                    cmd << "git commit -m 'starting kata' 
     | 
| 
      
 145 
     | 
    
         
            +
                    cmd << "git commit -m 'starting kata';"
         
     | 
| 
       108 
146 
     | 
    
         | 
| 
       109 
147 
     | 
    
         
             
                    if new_repo
         
     | 
| 
       110 
     | 
    
         
            -
                      cmd << "git remote add origin git@github.com:#{github.user}/#{repo_name}.git  
     | 
| 
      
 148 
     | 
    
         
            +
                      cmd << "git remote add origin git@github.com:#{github.user}/#{repo_name}.git &&"
         
     | 
| 
       111 
149 
     | 
    
         
             
                    end
         
     | 
| 
       112 
150 
     | 
    
         | 
| 
       113 
151 
     | 
    
         
             
                    cmd << 'git push origin master'
         
     | 
| 
         @@ -2,31 +2,21 @@ require 'kata/setup/base' 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            module Kata
         
     | 
| 
       4 
4 
     | 
    
         
             
              module Setup
         
     | 
| 
       5 
     | 
    
         
            -
                class  
     | 
| 
      
 5 
     | 
    
         
            +
                class Node < Kata::Setup::Base
         
     | 
| 
       6 
6 
     | 
    
         
             
                  def build_tree
         
     | 
| 
       7 
7 
     | 
    
         
             
                    %w{lib spec}.each { |path| tree(path) }
         
     | 
| 
       8 
8 
     | 
    
         
             
                    readme
         
     | 
| 
       9 
9 
     | 
    
         
             
                    package_json
         
     | 
| 
       10 
     | 
    
         
            -
                     
     | 
| 
      
 10 
     | 
    
         
            +
                    autotest
         
     | 
| 
      
 11 
     | 
    
         
            +
                    kata_file
         
     | 
| 
       11 
12 
     | 
    
         
             
                    kata_spec
         
     | 
| 
       12 
13 
     | 
    
         
             
                  end
         
     | 
| 
       13 
14 
     | 
    
         | 
| 
       14 
15 
     | 
    
         
             
                  private
         
     | 
| 
       15 
16 
     | 
    
         | 
| 
       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 
17 
     | 
    
         
             
                  # Using here docs for a cheap templating system
         
     | 
| 
       28 
18 
     | 
    
         
             
                  def package_json
         
     | 
| 
       29 
     | 
    
         
            -
                     
     | 
| 
      
 19 
     | 
    
         
            +
                    write_repo_file('package.json',<<EOF)
         
     | 
| 
       30 
20 
     | 
    
         
             
            {
         
     | 
| 
       31 
21 
     | 
    
         
             
              "name": "#{use_kata_name}",
         
     | 
| 
       32 
22 
     | 
    
         
             
              "version": "0.0.1",
         
     | 
| 
         @@ -38,9 +28,13 @@ module Kata 
     | 
|
| 
       38 
28 
     | 
    
         
             
            EOF
         
     | 
| 
       39 
29 
     | 
    
         
             
                  end
         
     | 
| 
       40 
30 
     | 
    
         | 
| 
       41 
     | 
    
         
            -
                  def  
     | 
| 
      
 31 
     | 
    
         
            +
                  def autotest
         
     | 
| 
      
 32 
     | 
    
         
            +
                    write_repo_file('autotest',"./node_modules/jasmine-node/bin/jasmine-node --autotest --color spec/", 0755)
         
     | 
| 
      
 33 
     | 
    
         
            +
                  end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                  def kata_file
         
     | 
| 
       42 
36 
     | 
    
         
             
                    # create the base class file
         
     | 
| 
       43 
     | 
    
         
            -
                     
     | 
| 
      
 37 
     | 
    
         
            +
                    write_repo_file(File.join('lib', "#{use_kata_name}.js"),<<EOF)
         
     | 
| 
       44 
38 
     | 
    
         
             
            var expression = null;
         
     | 
| 
       45 
39 
     | 
    
         | 
| 
       46 
40 
     | 
    
         
             
            exports.getExpr = function() { 
         
     | 
| 
         @@ -50,7 +44,7 @@ EOF 
     | 
|
| 
       50 
44 
     | 
    
         
             
                  end
         
     | 
| 
       51 
45 
     | 
    
         | 
| 
       52 
46 
     | 
    
         
             
                  def kata_spec
         
     | 
| 
       53 
     | 
    
         
            -
                     
     | 
| 
      
 47 
     | 
    
         
            +
                    write_repo_file(File.join('spec', "#{use_kata_name}_spec.js"),<<EOF)
         
     | 
| 
       54 
48 
     | 
    
         
             
            var #{use_kata_name} = require("../lib/#{use_kata_name}");
         
     | 
| 
       55 
49 
     | 
    
         | 
| 
       56 
50 
     | 
    
         
             
            describe("#{class_name}", function() {
         
     | 
| 
         @@ -0,0 +1,87 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'kata/setup/base'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Kata
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Setup
         
     | 
| 
      
 5 
     | 
    
         
            +
                class Php < Kata::Setup::Base
         
     | 
| 
      
 6 
     | 
    
         
            +
                  def build_tree
         
     | 
| 
      
 7 
     | 
    
         
            +
                    %w{src test}.each { |path| tree(path) }
         
     | 
| 
      
 8 
     | 
    
         
            +
                    readme
         
     | 
| 
      
 9 
     | 
    
         
            +
                    bootstrap
         
     | 
| 
      
 10 
     | 
    
         
            +
                    composer_json
         
     | 
| 
      
 11 
     | 
    
         
            +
                    base_class
         
     | 
| 
      
 12 
     | 
    
         
            +
                    php_test
         
     | 
| 
      
 13 
     | 
    
         
            +
                  end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                  private
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                  # Using here docs for a cheap templating system
         
     | 
| 
      
 18 
     | 
    
         
            +
                  def bootstrap
         
     | 
| 
      
 19 
     | 
    
         
            +
                    write_repo_file('bootstrap.h',<<EOF)
         
     | 
| 
      
 20 
     | 
    
         
            +
            #!/bin/sh
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            php_version=$(php -v | head -1 | awk '{print $2}'  | sed 's/\\.//g')
         
     | 
| 
      
 23 
     | 
    
         
            +
            composer_version=5320
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            if [[ $php_version -gt $composer_version ]]; then
         
     | 
| 
      
 26 
     | 
    
         
            +
              curl -sS https://getcomposer.org/installer | php
         
     | 
| 
      
 27 
     | 
    
         
            +
              mv composer.phar composer
         
     | 
| 
      
 28 
     | 
    
         
            +
              chmod 755 composer
         
     | 
| 
      
 29 
     | 
    
         
            +
              ./composer install
         
     | 
| 
      
 30 
     | 
    
         
            +
              export PATH=vendor/bin:$PATH
         
     | 
| 
      
 31 
     | 
    
         
            +
            else
         
     | 
| 
      
 32 
     | 
    
         
            +
              curl -O https://phar.phpunit.de/phpunit.phar
         
     | 
| 
      
 33 
     | 
    
         
            +
              mv phpunit.phar phpunit
         
     | 
| 
      
 34 
     | 
    
         
            +
              chmod 755 phpunit
         
     | 
| 
      
 35 
     | 
    
         
            +
            fi
         
     | 
| 
      
 36 
     | 
    
         
            +
            EOF
         
     | 
| 
      
 37 
     | 
    
         
            +
                  end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                  def composer_json
         
     | 
| 
      
 40 
     | 
    
         
            +
                    write_repo_file('composer.json',<<EOF)
         
     | 
| 
      
 41 
     | 
    
         
            +
            {
         
     | 
| 
      
 42 
     | 
    
         
            +
                "require-dev": {
         
     | 
| 
      
 43 
     | 
    
         
            +
                    "phpunit/phpunit": "4.1.*"
         
     | 
| 
      
 44 
     | 
    
         
            +
                }
         
     | 
| 
      
 45 
     | 
    
         
            +
            }
         
     | 
| 
      
 46 
     | 
    
         
            +
            EOF
         
     | 
| 
      
 47 
     | 
    
         
            +
                  end
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
                  def base_class
         
     | 
| 
      
 50 
     | 
    
         
            +
                    write_repo_file(File.join('src', "#{class_name}.php"),<<EOF)
         
     | 
| 
      
 51 
     | 
    
         
            +
            <?php
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
            class #{class_name} {
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
              public function __construct() { }
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
            }
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
            ?>
         
     | 
| 
      
 60 
     | 
    
         
            +
            EOF
         
     | 
| 
      
 61 
     | 
    
         
            +
                  end
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
                  def php_test
         
     | 
| 
      
 64 
     | 
    
         
            +
                    write_repo_file(File.join('test', "#{class_name}Test.php"),<<EOF)
         
     | 
| 
      
 65 
     | 
    
         
            +
            <?php
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
            require 'src/#{class_name}.php';
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
            class #{class_name}Test extends PHPUnit_Framework_TestCase {
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
              public function testInstatiate#{class_name}() {
         
     | 
| 
      
 72 
     | 
    
         
            +
                try {
         
     | 
| 
      
 73 
     | 
    
         
            +
                  $calc = new #{class_name}();
         
     | 
| 
      
 74 
     | 
    
         
            +
                } catch (Exception $e) {
         
     | 
| 
      
 75 
     | 
    
         
            +
                  $this->fail();
         
     | 
| 
      
 76 
     | 
    
         
            +
                }
         
     | 
| 
      
 77 
     | 
    
         
            +
              }
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
            }
         
     | 
| 
      
 80 
     | 
    
         
            +
             
     | 
| 
      
 81 
     | 
    
         
            +
            ?>
         
     | 
| 
      
 82 
     | 
    
         
            +
            EOF
         
     | 
| 
      
 83 
     | 
    
         
            +
                  end
         
     | 
| 
      
 84 
     | 
    
         
            +
                end
         
     | 
| 
      
 85 
     | 
    
         
            +
              end
         
     | 
| 
      
 86 
     | 
    
         
            +
            end
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
    
        data/lib/kata/setup/ruby.rb
    CHANGED
    
    | 
         @@ -4,30 +4,43 @@ module Kata 
     | 
|
| 
       4 
4 
     | 
    
         
             
              module Setup
         
     | 
| 
       5 
5 
     | 
    
         
             
                class Ruby < Kata::Setup::Base
         
     | 
| 
       6 
6 
     | 
    
         
             
                  def build_tree
         
     | 
| 
       7 
     | 
    
         
            -
                    %w{lib spec 
     | 
| 
      
 7 
     | 
    
         
            +
                    %w{lib spec}.each { |path| tree(path) }
         
     | 
| 
       8 
8 
     | 
    
         
             
                    readme
         
     | 
| 
      
 9 
     | 
    
         
            +
                    bootstrap
         
     | 
| 
      
 10 
     | 
    
         
            +
                    gemfile
         
     | 
| 
       9 
11 
     | 
    
         
             
                    base_class
         
     | 
| 
       10 
     | 
    
         
            -
                     
     | 
| 
       11 
     | 
    
         
            -
                    spec_helper
         
     | 
| 
      
 12 
     | 
    
         
            +
                    dot_files
         
     | 
| 
       12 
13 
     | 
    
         
             
                    kata_spec
         
     | 
| 
       13 
     | 
    
         
            -
                    spec_matcher
         
     | 
| 
       14 
14 
     | 
    
         
             
                  end
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
       16 
16 
     | 
    
         
             
                  private
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
                  def  
     | 
| 
       19 
     | 
    
         
            -
                     
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
      
 18 
     | 
    
         
            +
                  def bootstrap
         
     | 
| 
      
 19 
     | 
    
         
            +
                    write_repo_file('bootstrap.sh',<<EOF)
         
     | 
| 
      
 20 
     | 
    
         
            +
            #!/bin/bash
         
     | 
| 
      
 21 
     | 
    
         
            +
            gem install bundler
         
     | 
| 
      
 22 
     | 
    
         
            +
            bundle install
         
     | 
| 
      
 23 
     | 
    
         
            +
            EOF
         
     | 
| 
      
 24 
     | 
    
         
            +
                  end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                  def gemfile
         
     | 
| 
      
 27 
     | 
    
         
            +
                    write_repo_file('Gemfile',<<EOF)
         
     | 
| 
      
 28 
     | 
    
         
            +
            source 'http://rubygems.org'
         
     | 
| 
       29 
29 
     | 
    
         | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
      
 30 
     | 
    
         
            +
            gem 'kata'
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
            group :test do
         
     | 
| 
      
 33 
     | 
    
         
            +
              gem 'rspec'
         
     | 
| 
      
 34 
     | 
    
         
            +
              gem 'autotest'
         
     | 
| 
      
 35 
     | 
    
         
            +
              gem 'autotest-growl'
         
     | 
| 
      
 36 
     | 
    
         
            +
              gem 'rspec-autotest'
         
     | 
| 
      
 37 
     | 
    
         
            +
            end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
            group :development do
         
     | 
| 
      
 40 
     | 
    
         
            +
              gem 'debugger'
         
     | 
| 
      
 41 
     | 
    
         
            +
              gem 'pry'
         
     | 
| 
      
 42 
     | 
    
         
            +
            end
         
     | 
| 
      
 43 
     | 
    
         
            +
            EOF
         
     | 
| 
       31 
44 
     | 
    
         
             
                  end
         
     | 
| 
       32 
45 
     | 
    
         | 
| 
       33 
46 
     | 
    
         
             
                  # Using here docs for a cheap templating system
         
     | 
| 
         @@ -39,25 +52,18 @@ end 
     | 
|
| 
       39 
52 
     | 
    
         
             
            EOF
         
     | 
| 
       40 
53 
     | 
    
         
             
                  end
         
     | 
| 
       41 
54 
     | 
    
         | 
| 
       42 
     | 
    
         
            -
                  def  
     | 
| 
       43 
     | 
    
         
            -
                     
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
       49 
     | 
    
         
            -
                    File.open(File.join(repo_name, 'spec', 'spec_helper.rb'), 'w') {|f| f.write <<EOF}
         
     | 
| 
       50 
     | 
    
         
            -
            $: << '.' << File.join(File.dirname(__FILE__), '..', 'lib')
         
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
     | 
    
         
            -
            require 'rspec'
         
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
            Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each {|f| require f}
         
     | 
| 
      
 55 
     | 
    
         
            +
                  def dot_files
         
     | 
| 
      
 56 
     | 
    
         
            +
                    write_repo_file('.rspec', '--color --format d')
         
     | 
| 
      
 57 
     | 
    
         
            +
                    write_repo_file('.ruby-version', 'ruby-2.0.0-p481')
         
     | 
| 
      
 58 
     | 
    
         
            +
                    write_repo_file('.ruby-gemset', "kata-#{use_kata_name}")
         
     | 
| 
      
 59 
     | 
    
         
            +
                    write_repo_file('.autotest', <<EOF)
         
     | 
| 
      
 60 
     | 
    
         
            +
            require 'autotest'
         
     | 
| 
      
 61 
     | 
    
         
            +
            require 'autotest-growl'
         
     | 
| 
       55 
62 
     | 
    
         
             
            EOF
         
     | 
| 
       56 
63 
     | 
    
         
             
                  end
         
     | 
| 
       57 
64 
     | 
    
         | 
| 
       58 
65 
     | 
    
         
             
                  def kata_spec
         
     | 
| 
       59 
66 
     | 
    
         
             
                    File.open(File.join(repo_name, 'spec', "#{use_kata_name}_spec.rb"), 'w') {|f| f.write <<EOF}
         
     | 
| 
       60 
     | 
    
         
            -
            require 'spec_helper'
         
     | 
| 
       61 
67 
     | 
    
         
             
            require '#{use_kata_name}'
         
     | 
| 
       62 
68 
     | 
    
         | 
| 
       63 
69 
     | 
    
         
             
            describe #{class_name} do
         
     | 
| 
         @@ -69,16 +75,6 @@ describe #{class_name} do 
     | 
|
| 
       69 
75 
     | 
    
         
             
                end
         
     | 
| 
       70 
76 
     | 
    
         
             
              end
         
     | 
| 
       71 
77 
     | 
    
         
             
            end
         
     | 
| 
       72 
     | 
    
         
            -
            EOF
         
     | 
| 
       73 
     | 
    
         
            -
                  end
         
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
                  def spec_matcher
         
     | 
| 
       76 
     | 
    
         
            -
                    File.open(File.join(repo_name, 'spec', 'support', 'matchers', "#{use_kata_name}.rb"), 'w') {|f| f.write <<EOF}
         
     | 
| 
       77 
     | 
    
         
            -
            RSpec::Matchers.define :your_method do |expected|
         
     | 
| 
       78 
     | 
    
         
            -
              match do |your_match|
         
     | 
| 
       79 
     | 
    
         
            -
                #expect(your_match.method_on_object_to_execute).to eq(expected)
         
     | 
| 
       80 
     | 
    
         
            -
              end
         
     | 
| 
       81 
     | 
    
         
            -
            end
         
     | 
| 
       82 
78 
     | 
    
         
             
            EOF
         
     | 
| 
       83 
79 
     | 
    
         
             
                  end
         
     | 
| 
       84 
80 
     | 
    
         
             
                end
         
     | 
    
        data/lib/kata/version.rb
    CHANGED
    
    
    
        data/spec/setup/base_spec.rb
    CHANGED
    
    | 
         @@ -1,5 +1,8 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         
             
            require 'kata/setup/base'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'kata/setup/ruby'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'kata/setup/node'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'kata/setup/php'
         
     | 
| 
       3 
6 
     | 
    
         | 
| 
       4 
7 
     | 
    
         
             
            module Kata
         
     | 
| 
       5 
8 
     | 
    
         
             
              module Setup
         
     | 
| 
         @@ -14,6 +17,62 @@ module Kata 
     | 
|
| 
       14 
17 
     | 
    
         
             
                      expect(s.kata_name).to eq('my-kata')
         
     | 
| 
       15 
18 
     | 
    
         
             
                    end
         
     | 
| 
       16 
19 
     | 
    
         
             
                  end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                  describe '#create_repo' do
         
     | 
| 
      
 22 
     | 
    
         
            +
                    #subject {Kata::Setup::Base.new}
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                    let(:no_repo) {OpenStruct.new(:repo => false)}
         
     | 
| 
      
 25 
     | 
    
         
            +
                    let(:with_repo) {OpenStruct.new(:repo => true)}
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                    it 'only creates if specified' do
         
     | 
| 
      
 28 
     | 
    
         
            +
                      expect(subject).to_not receive(:create_remote_repo)
         
     | 
| 
      
 29 
     | 
    
         
            +
                      expect(subject).to receive(:push_local_repo)
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                      subject.create_repo(no_repo)
         
     | 
| 
      
 32 
     | 
    
         
            +
                    end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                    it 'creates when specified' do
         
     | 
| 
      
 35 
     | 
    
         
            +
                      expect(subject).to receive(:create_remote_repo)
         
     | 
| 
      
 36 
     | 
    
         
            +
                      expect(subject).to receive(:push_local_repo)
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                      subject.create_repo(with_repo)
         
     | 
| 
      
 39 
     | 
    
         
            +
                    end
         
     | 
| 
      
 40 
     | 
    
         
            +
                  end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                  describe "#build_tree" do
         
     | 
| 
      
 43 
     | 
    
         
            +
                    subject {Kata::Setup::Base.new}
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
                    let(:ruby_setup) {Kata::Setup::Ruby.new('kata')}
         
     | 
| 
      
 46 
     | 
    
         
            +
                    let(:node_setup) {Kata::Setup::Node.new('kata')}
         
     | 
| 
      
 47 
     | 
    
         
            +
                    let(:php_setup) {Kata::Setup::Php.new('kata')}
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
                    it 'invokes the ruby setup' do
         
     | 
| 
      
 50 
     | 
    
         
            +
                      expect(Kata::Setup::Ruby).to receive(:new).and_return(ruby_setup)
         
     | 
| 
      
 51 
     | 
    
         
            +
                      expect(ruby_setup).to receive(:build_tree)
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
                      subject.build_tree 'ruby'
         
     | 
| 
      
 54 
     | 
    
         
            +
                    end
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
                    it 'invokes the node setup' do
         
     | 
| 
      
 57 
     | 
    
         
            +
                      expect(Kata::Setup::Node).to receive(:new).and_return(node_setup)
         
     | 
| 
      
 58 
     | 
    
         
            +
                      expect(node_setup).to receive(:build_tree)
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
                      subject.build_tree 'node'
         
     | 
| 
      
 61 
     | 
    
         
            +
                    end
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
                    it 'invokes the php setup' do
         
     | 
| 
      
 64 
     | 
    
         
            +
                      expect(Kata::Setup::Php).to receive(:new).and_return(php_setup)
         
     | 
| 
      
 65 
     | 
    
         
            +
                      expect(php_setup).to receive(:build_tree)
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
                      subject.build_tree 'php'
         
     | 
| 
      
 68 
     | 
    
         
            +
                    end
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
                    it 'rejects invalid language types' do
         
     | 
| 
      
 71 
     | 
    
         
            +
                      expect {
         
     | 
| 
      
 72 
     | 
    
         
            +
                        subject.build_tree 'asdf'
         
     | 
| 
      
 73 
     | 
    
         
            +
                      }.to raise_error
         
     | 
| 
      
 74 
     | 
    
         
            +
                    end
         
     | 
| 
      
 75 
     | 
    
         
            +
                  end
         
     | 
| 
       17 
76 
     | 
    
         
             
                end
         
     | 
| 
       18 
77 
     | 
    
         
             
              end
         
     | 
| 
       19 
78 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,10 +1,10 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require "spec_helper"
         
     | 
| 
       2 
     | 
    
         
            -
            require "kata/setup/ 
     | 
| 
      
 2 
     | 
    
         
            +
            require "kata/setup/node"
         
     | 
| 
       3 
3 
     | 
    
         
             
            require "fakefs/spec_helpers"
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
            module Kata
         
     | 
| 
       6 
6 
     | 
    
         
             
              module Setup
         
     | 
| 
       7 
     | 
    
         
            -
                describe  
     | 
| 
      
 7 
     | 
    
         
            +
                describe Node do
         
     | 
| 
       8 
8 
     | 
    
         
             
                  describe "#build_tree" do
         
     | 
| 
       9 
9 
     | 
    
         
             
                    include FakeFS::SpecHelpers
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
         @@ -25,11 +25,19 @@ module Kata 
     | 
|
| 
       25 
25 
     | 
    
         
             
                      expect(File.exists?(File.join(@use_dir, "README"))).to be true
         
     | 
| 
       26 
26 
     | 
    
         
             
                    end
         
     | 
| 
       27 
27 
     | 
    
         | 
| 
       28 
     | 
    
         
            -
                    it " 
     | 
| 
      
 28 
     | 
    
         
            +
                    it "creates package.json file" do
         
     | 
| 
      
 29 
     | 
    
         
            +
                      expect(File.exists?(File.join(@use_dir, "package.json"))).to be true
         
     | 
| 
      
 30 
     | 
    
         
            +
                    end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                    it "creates autotest file" do
         
     | 
| 
      
 33 
     | 
    
         
            +
                      expect(File.exists?(File.join(@use_dir, "autotest"))).to be true
         
     | 
| 
      
 34 
     | 
    
         
            +
                    end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                    it "create kata main file" do
         
     | 
| 
       29 
37 
     | 
    
         
             
                      expect(File.exists?(File.join(@use_dir, "lib", "#{subject.kata_name}.js"))).to be true
         
     | 
| 
       30 
38 
     | 
    
         
             
                    end
         
     | 
| 
       31 
39 
     | 
    
         | 
| 
       32 
     | 
    
         
            -
                    it "creates  
     | 
| 
      
 40 
     | 
    
         
            +
                    it "creates kata spec file" do
         
     | 
| 
       33 
41 
     | 
    
         
             
                      expect(File.exists?(File.join(@use_dir, "spec", "#{subject.kata_name}_spec.js"))).to be true
         
     | 
| 
       34 
42 
     | 
    
         
             
                    end
         
     | 
| 
       35 
43 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -0,0 +1,43 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require "spec_helper"
         
     | 
| 
      
 2 
     | 
    
         
            +
            require "kata/setup/php"
         
     | 
| 
      
 3 
     | 
    
         
            +
            require "fakefs/spec_helpers"
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            module Kata
         
     | 
| 
      
 6 
     | 
    
         
            +
              module Setup
         
     | 
| 
      
 7 
     | 
    
         
            +
                describe Php 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 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                    end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                    let(:class_name) {
         
     | 
| 
      
 18 
     | 
    
         
            +
                      subject.kata_name.split(/ |-|_/).map(&:capitalize).join
         
     | 
| 
      
 19 
     | 
    
         
            +
                    }
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                    it "creates src dir" do
         
     | 
| 
      
 22 
     | 
    
         
            +
                      expect(File.directory?(File.join(@use_dir, "src"))).to be true
         
     | 
| 
      
 23 
     | 
    
         
            +
                    end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                    it "creates test dir" do
         
     | 
| 
      
 26 
     | 
    
         
            +
                      expect(File.directory?(File.join(@use_dir, "test"))).to be true
         
     | 
| 
      
 27 
     | 
    
         
            +
                    end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                    it "creates README file" do
         
     | 
| 
      
 30 
     | 
    
         
            +
                      expect(File.exists?(File.join(@use_dir, "README"))).to be true
         
     | 
| 
      
 31 
     | 
    
         
            +
                    end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                    it "create base class file" do
         
     | 
| 
      
 34 
     | 
    
         
            +
                      expect(File.exists?(File.join(@use_dir, "src", "#{class_name}.php"))).to be true
         
     | 
| 
      
 35 
     | 
    
         
            +
                    end
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                    it "creates base test file" do
         
     | 
| 
      
 38 
     | 
    
         
            +
                      expect(File.exists?(File.join(@use_dir, "test", "#{class_name}Test.php"))).to be true
         
     | 
| 
      
 39 
     | 
    
         
            +
                    end
         
     | 
| 
      
 40 
     | 
    
         
            +
                  end
         
     | 
| 
      
 41 
     | 
    
         
            +
                end
         
     | 
| 
      
 42 
     | 
    
         
            +
              end
         
     | 
| 
      
 43 
     | 
    
         
            +
            end
         
     | 
    
        data/spec/setup/ruby_spec.rb
    CHANGED
    
    | 
         @@ -17,20 +17,20 @@ module Kata 
     | 
|
| 
       17 
17 
     | 
    
         
             
                      expect(File.directory?(File.join(@use_dir, "lib"))).to be true
         
     | 
| 
       18 
18 
     | 
    
         
             
                    end
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
       20 
     | 
    
         
            -
                    it "creates  
     | 
| 
      
 20 
     | 
    
         
            +
                    it "creates spec dir" do
         
     | 
| 
       21 
21 
     | 
    
         
             
                      expect(File.directory?(File.join(@use_dir, "spec"))).to be true
         
     | 
| 
       22 
22 
     | 
    
         
             
                    end
         
     | 
| 
       23 
23 
     | 
    
         | 
| 
       24 
     | 
    
         
            -
                    it "creates  
     | 
| 
       25 
     | 
    
         
            -
                      expect(File. 
     | 
| 
      
 24 
     | 
    
         
            +
                    it "creates README file" do
         
     | 
| 
      
 25 
     | 
    
         
            +
                      expect(File.exists?(File.join(@use_dir, "README"))).to be true
         
     | 
| 
       26 
26 
     | 
    
         
             
                    end
         
     | 
| 
       27 
27 
     | 
    
         | 
| 
       28 
     | 
    
         
            -
                    it "creates  
     | 
| 
       29 
     | 
    
         
            -
                      expect(File. 
     | 
| 
      
 28 
     | 
    
         
            +
                    it "creates bootstrap file" do
         
     | 
| 
      
 29 
     | 
    
         
            +
                      expect(File.exists?(File.join(@use_dir, "bootstrap.sh"))).to be true
         
     | 
| 
       30 
30 
     | 
    
         
             
                    end
         
     | 
| 
       31 
31 
     | 
    
         | 
| 
       32 
     | 
    
         
            -
                    it "creates  
     | 
| 
       33 
     | 
    
         
            -
                      expect(File.exists?(File.join(@use_dir, " 
     | 
| 
      
 32 
     | 
    
         
            +
                    it "creates Gemfile file" do
         
     | 
| 
      
 33 
     | 
    
         
            +
                      expect(File.exists?(File.join(@use_dir, "Gemfile"))).to be true
         
     | 
| 
       34 
34 
     | 
    
         
             
                    end
         
     | 
| 
       35 
35 
     | 
    
         | 
| 
       36 
36 
     | 
    
         
             
                    it "create base class file" do
         
     | 
| 
         @@ -41,17 +41,9 @@ module Kata 
     | 
|
| 
       41 
41 
     | 
    
         
             
                      expect(File.exists?(File.join(@use_dir, ".rspec"))).to be true
         
     | 
| 
       42 
42 
     | 
    
         
             
                    end
         
     | 
| 
       43 
43 
     | 
    
         | 
| 
       44 
     | 
    
         
            -
                    it "creates spec helper file" do
         
     | 
| 
       45 
     | 
    
         
            -
                      expect(File.exists?(File.join(@use_dir, "spec", "spec_helper.rb"))).to be true
         
     | 
| 
       46 
     | 
    
         
            -
                    end
         
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
44 
     | 
    
         
             
                    it "creates base spec file" do
         
     | 
| 
       49 
45 
     | 
    
         
             
                      expect(File.exists?(File.join(@use_dir, "spec", "#{subject.kata_name}_spec.rb"))).to be true
         
     | 
| 
       50 
46 
     | 
    
         
             
                    end
         
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
     | 
    
         
            -
                    it "creates spec matcher file" do
         
     | 
| 
       53 
     | 
    
         
            -
                      expect(File.exists?(File.join(@use_dir, "spec", "support", "matchers", "#{subject.kata_name}.rb"))).to be true
         
     | 
| 
       54 
     | 
    
         
            -
                    end
         
     | 
| 
       55 
47 
     | 
    
         
             
                  end
         
     | 
| 
       56 
48 
     | 
    
         
             
                end
         
     | 
| 
       57 
49 
     | 
    
         
             
              end
         
     | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | 
         @@ -1,10 +1,13 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            $: <<  
     | 
| 
      
 1 
     | 
    
         
            +
            $: << '.' << File.join(File.dirname(__FILE__), '..', 'lib')
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            require  
     | 
| 
       4 
     | 
    
         
            -
            require  
     | 
| 
       5 
     | 
    
         
            -
            require  
     | 
| 
      
 3 
     | 
    
         
            +
            require 'rspec'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'kata/base'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'simplecov'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require 'codeclimate-test-reporter'
         
     | 
| 
       6 
7 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
      
 8 
     | 
    
         
            +
            CodeClimate::TestReporter.start
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            Dir[File.dirname(__FILE__) + '/support/**/*.rb'].each {|f| require f}
         
     | 
| 
       8 
11 
     | 
    
         | 
| 
       9 
12 
     | 
    
         
             
            RSpec.configure do |config|
         
     | 
| 
       10 
13 
     | 
    
         
             
              config.before(:each) do
         
     | 
    
        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 
     | 
    
         
            +
              version: 1.6.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- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2014-06-27 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: bundler
         
     | 
| 
         @@ -66,13 +66,15 @@ files: 
     | 
|
| 
       66 
66 
     | 
    
         
             
            - lib/kata.rb
         
     | 
| 
       67 
67 
     | 
    
         
             
            - lib/kata/base.rb
         
     | 
| 
       68 
68 
     | 
    
         
             
            - lib/kata/setup/base.rb
         
     | 
| 
       69 
     | 
    
         
            -
            - lib/kata/setup/ 
     | 
| 
      
 69 
     | 
    
         
            +
            - lib/kata/setup/node.rb
         
     | 
| 
      
 70 
     | 
    
         
            +
            - lib/kata/setup/php.rb
         
     | 
| 
       70 
71 
     | 
    
         
             
            - lib/kata/setup/ruby.rb
         
     | 
| 
       71 
72 
     | 
    
         
             
            - lib/kata/version.rb
         
     | 
| 
       72 
73 
     | 
    
         
             
            - spec/kata_base_spec.rb
         
     | 
| 
       73 
74 
     | 
    
         
             
            - spec/kata_spec.rb
         
     | 
| 
       74 
75 
     | 
    
         
             
            - spec/setup/base_spec.rb
         
     | 
| 
       75 
     | 
    
         
            -
            - spec/setup/ 
     | 
| 
      
 76 
     | 
    
         
            +
            - spec/setup/node_spec.rb
         
     | 
| 
      
 77 
     | 
    
         
            +
            - spec/setup/php_spec.rb
         
     | 
| 
       76 
78 
     | 
    
         
             
            - spec/setup/ruby_spec.rb
         
     | 
| 
       77 
79 
     | 
    
         
             
            - spec/spec_helper.rb
         
     | 
| 
       78 
80 
     | 
    
         
             
            - spec/support/helpers/stdout_helper.rb
         
     | 
| 
         @@ -104,7 +106,8 @@ test_files: 
     | 
|
| 
       104 
106 
     | 
    
         
             
            - spec/kata_base_spec.rb
         
     | 
| 
       105 
107 
     | 
    
         
             
            - spec/kata_spec.rb
         
     | 
| 
       106 
108 
     | 
    
         
             
            - spec/setup/base_spec.rb
         
     | 
| 
       107 
     | 
    
         
            -
            - spec/setup/ 
     | 
| 
      
 109 
     | 
    
         
            +
            - spec/setup/node_spec.rb
         
     | 
| 
      
 110 
     | 
    
         
            +
            - spec/setup/php_spec.rb
         
     | 
| 
       108 
111 
     | 
    
         
             
            - spec/setup/ruby_spec.rb
         
     | 
| 
       109 
112 
     | 
    
         
             
            - spec/spec_helper.rb
         
     | 
| 
       110 
113 
     | 
    
         
             
            - spec/support/helpers/stdout_helper.rb
         
     |