rオプションをつける。
diff -r dir1 dir2
$ diff -r 40 411 diff -r 40/lib/codebreaker/game.rb 411/lib/codebreaker/game.rb 22c22,24 < @output.puts '+'*exact_match_count(guess) + '-'*number_match_count(guess) --- > marker = Marker.new(@secret) > @output.puts '+'*marker.exact_match_count(guess) + > '-'*marker.number_match_count(guess)
eオプション。色がつかないのでわけがわからない。
$ diff -er 40 411
diff -er 40/lib/codebreaker/game.rb 411/lib/codebreaker/game.rb
46a
.
41,42c
def exact_match?(guess, index)
guess[index] == @secret[index]
end
def number_match?(guess, index)
@secret.include?(guess[index]) && !exact_match?(guess, index)
end
.cオプション。差分がまとまってしまうので、これも微妙に見辛い
$ diff -cr 40 411
diff -cr 40/lib/codebreaker/game.rb 411/lib/codebreaker/game.rb
*** 40/lib/codebreaker/game.rb 2012-09-14 04:10:28.000000000 +0900
--- 411/lib/codebreaker/game.rb 2012-09-14 04:10:28.000000000 +0900
***************
*** 19,46 ****
end
def guess(guess)
! @output.puts '+'*exact_match_count(guess) + '-'*number_match_count(guess)
end
! def exact_match_count(guess)
! (0..3).inject(0) do |count, index|
! count + (exact_match?(guess, index) ? 1 : 0)
end
- end
! def number_match_count(guess)
! (0..3).inject(0) do |count, index|
! count + (number_match?(guess, index) ? 1 : 0)
end
- end
! def exact_match?(guess, index)
! guess[index] == @secret[index]
! end
! def number_match?(guess, index)
! @secret.include?(guess[index]) && !exact_match?(guess, index)
end
end
end
--- 19,55 ----
end
def guess(guess)
! marker = Marker.new(@secret)
! @output.puts '+'*marker.exact_match_count(guess) +
! '-'*marker.number_match_count(guess)
end
! class Marker
! def initialize(secret)
! @secret = secret
end
! def exact_match_count(guess)
! (0..3).inject(0) do |count, index|
! count + (exact_match?(guess, index) ? 1 : 0)
! end
end
! def number_match_count(guess)
! (0..3).inject(0) do |count, index|
! count + (number_match?(guess, index) ? 1 : 0)
! end
! end
! def exact_match?(guess, index)
! guess[index] == @secret[index]
! end
!
! def number_match?(guess, index)
! @secret.include?(guess[index]) && !exact_match?(guess, index)
! end
end
end
endyオプション。色ついてないから横並びだと分かりにくい
$ diff -yr 40 411
diff -yr 40/bin/codebreaker 411/bin/codebreaker
#!/usr/bin/env ruby #!/usr/bin/env ruby
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__) $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
require 'codebreaker' require 'codebreaker'
game = Codebreaker::Game.new(STDOUT) game = Codebreaker::Game.new(STDOUT)
game.start game.start
diff -yr 40/features/codebreaker_starts_game.feature 411/features/codebreaker_starts_game.feature
Feature: code-breaker starts game Feature: code-breaker starts game
