githug 0.2.11 → 0.2.12

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.
Files changed (52) hide show
  1. data/LICENCE.txt +22 -0
  2. data/README.md +39 -30
  3. data/levels/add.rb +2 -1
  4. data/levels/bisect.rb +1 -1
  5. data/levels/blame/config.rb +1 -1
  6. data/levels/branch_at.rb +1 -1
  7. data/levels/commit_amend.rb +1 -1
  8. data/levels/config.rb +2 -2
  9. data/levels/ignore.rb +5 -1
  10. data/levels/log.rb +2 -2
  11. data/levels/merge.rb +1 -1
  12. data/levels/merge_squash.rb +4 -4
  13. data/levels/rm.rb +1 -1
  14. data/levels/stash/.githug/COMMIT_EDITMSG +1 -0
  15. data/levels/stash/.githug/HEAD +1 -0
  16. data/levels/stash/.githug/config +7 -0
  17. data/levels/stash/.githug/description +1 -0
  18. data/levels/stash/.githug/hooks/applypatch-msg.sample +15 -0
  19. data/levels/stash/.githug/hooks/commit-msg.sample +24 -0
  20. data/levels/stash/.githug/hooks/post-update.sample +8 -0
  21. data/levels/stash/.githug/hooks/pre-applypatch.sample +14 -0
  22. data/levels/stash/.githug/hooks/pre-commit.sample +50 -0
  23. data/levels/stash/.githug/hooks/pre-rebase.sample +169 -0
  24. data/levels/stash/.githug/hooks/prepare-commit-msg.sample +36 -0
  25. data/levels/stash/.githug/hooks/update.sample +128 -0
  26. data/levels/stash/.githug/index +0 -0
  27. data/levels/stash/.githug/info/exclude +6 -0
  28. data/levels/stash/.githug/logs/HEAD +1 -0
  29. data/levels/stash/.githug/logs/refs/heads/master +1 -0
  30. data/levels/stash/.githug/objects/02/060592b31c9e12ffe1b282addf9537c5ef8e1f +0 -0
  31. data/levels/stash/.githug/objects/4b/825dc642cb6eb9a060e54bf8d69288fbee4904 +0 -0
  32. data/levels/stash/.githug/objects/7f/82d7e4fba66980af16da540e18d8955518cdc2 +0 -0
  33. data/levels/stash/.githug/objects/85/e560abcd7e3255dcd91982476e432f4d3d1b51 +0 -0
  34. data/levels/stash/.githug/refs/heads/master +1 -0
  35. data/levels/stash/lyrics.txt +13 -0
  36. data/levels/stash.rb +16 -0
  37. data/levels/status.rb +1 -1
  38. data/lib/githug/cli.rb +2 -2
  39. data/lib/githug/game.rb +1 -1
  40. data/lib/githug/level.rb +14 -12
  41. data/lib/githug/profile.rb +1 -1
  42. data/lib/githug/repository.rb +3 -3
  43. data/lib/githug/ui.rb +6 -15
  44. data/lib/githug/version.rb +1 -1
  45. data/spec/githug/cli_spec.rb +11 -11
  46. data/spec/githug/game_spec.rb +6 -6
  47. data/spec/githug/level_spec.rb +17 -17
  48. data/spec/githug/profile_spec.rb +4 -4
  49. data/spec/githug/repository_spec.rb +14 -14
  50. data/spec/githug/ui_spec.rb +13 -11
  51. data/spec/githug_spec.rb +242 -0
  52. metadata +93 -55
@@ -0,0 +1,128 @@
1
+ #!/bin/sh
2
+ #
3
+ # An example hook script to blocks unannotated tags from entering.
4
+ # Called by "git receive-pack" with arguments: refname sha1-old sha1-new
5
+ #
6
+ # To enable this hook, rename this file to "update".
7
+ #
8
+ # Config
9
+ # ------
10
+ # hooks.allowunannotated
11
+ # This boolean sets whether unannotated tags will be allowed into the
12
+ # repository. By default they won't be.
13
+ # hooks.allowdeletetag
14
+ # This boolean sets whether deleting tags will be allowed in the
15
+ # repository. By default they won't be.
16
+ # hooks.allowmodifytag
17
+ # This boolean sets whether a tag may be modified after creation. By default
18
+ # it won't be.
19
+ # hooks.allowdeletebranch
20
+ # This boolean sets whether deleting branches will be allowed in the
21
+ # repository. By default they won't be.
22
+ # hooks.denycreatebranch
23
+ # This boolean sets whether remotely creating branches will be denied
24
+ # in the repository. By default this is allowed.
25
+ #
26
+
27
+ # --- Command line
28
+ refname="$1"
29
+ oldrev="$2"
30
+ newrev="$3"
31
+
32
+ # --- Safety check
33
+ if [ -z "$GIT_DIR" ]; then
34
+ echo "Don't run this script from the command line." >&2
35
+ echo " (if you want, you could supply GIT_DIR then run" >&2
36
+ echo " $0 <ref> <oldrev> <newrev>)" >&2
37
+ exit 1
38
+ fi
39
+
40
+ if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
41
+ echo "Usage: $0 <ref> <oldrev> <newrev>" >&2
42
+ exit 1
43
+ fi
44
+
45
+ # --- Config
46
+ allowunannotated=$(git config --bool hooks.allowunannotated)
47
+ allowdeletebranch=$(git config --bool hooks.allowdeletebranch)
48
+ denycreatebranch=$(git config --bool hooks.denycreatebranch)
49
+ allowdeletetag=$(git config --bool hooks.allowdeletetag)
50
+ allowmodifytag=$(git config --bool hooks.allowmodifytag)
51
+
52
+ # check for no description
53
+ projectdesc=$(sed -e '1q' "$GIT_DIR/description")
54
+ case "$projectdesc" in
55
+ "Unnamed repository"* | "")
56
+ echo "*** Project description file hasn't been set" >&2
57
+ exit 1
58
+ ;;
59
+ esac
60
+
61
+ # --- Check types
62
+ # if $newrev is 0000...0000, it's a commit to delete a ref.
63
+ zero="0000000000000000000000000000000000000000"
64
+ if [ "$newrev" = "$zero" ]; then
65
+ newrev_type=delete
66
+ else
67
+ newrev_type=$(git cat-file -t $newrev)
68
+ fi
69
+
70
+ case "$refname","$newrev_type" in
71
+ refs/tags/*,commit)
72
+ # un-annotated tag
73
+ short_refname=${refname##refs/tags/}
74
+ if [ "$allowunannotated" != "true" ]; then
75
+ echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2
76
+ echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2
77
+ exit 1
78
+ fi
79
+ ;;
80
+ refs/tags/*,delete)
81
+ # delete tag
82
+ if [ "$allowdeletetag" != "true" ]; then
83
+ echo "*** Deleting a tag is not allowed in this repository" >&2
84
+ exit 1
85
+ fi
86
+ ;;
87
+ refs/tags/*,tag)
88
+ # annotated tag
89
+ if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1
90
+ then
91
+ echo "*** Tag '$refname' already exists." >&2
92
+ echo "*** Modifying a tag is not allowed in this repository." >&2
93
+ exit 1
94
+ fi
95
+ ;;
96
+ refs/heads/*,commit)
97
+ # branch
98
+ if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then
99
+ echo "*** Creating a branch is not allowed in this repository" >&2
100
+ exit 1
101
+ fi
102
+ ;;
103
+ refs/heads/*,delete)
104
+ # delete branch
105
+ if [ "$allowdeletebranch" != "true" ]; then
106
+ echo "*** Deleting a branch is not allowed in this repository" >&2
107
+ exit 1
108
+ fi
109
+ ;;
110
+ refs/remotes/*,commit)
111
+ # tracking branch
112
+ ;;
113
+ refs/remotes/*,delete)
114
+ # delete tracking branch
115
+ if [ "$allowdeletebranch" != "true" ]; then
116
+ echo "*** Deleting a tracking branch is not allowed in this repository" >&2
117
+ exit 1
118
+ fi
119
+ ;;
120
+ *)
121
+ # Anything else (is there anything else?)
122
+ echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
123
+ exit 1
124
+ ;;
125
+ esac
126
+
127
+ # --- Finished
128
+ exit 0
Binary file
@@ -0,0 +1,6 @@
1
+ # git ls-files --others --exclude-from=.git/info/exclude
2
+ # Lines that start with '#' are comments.
3
+ # For a project mostly in C, the following would be a good set of
4
+ # exclude patterns (uncomment them if you want to use them):
5
+ # *.[oa]
6
+ # *~
@@ -0,0 +1 @@
1
+ 0000000000000000000000000000000000000000 02060592b31c9e12ffe1b282addf9537c5ef8e1f Anton Vasin <magnumsmail@gmail.com> 1354518787 +0400 commit (initial): Add some lyrics
@@ -0,0 +1 @@
1
+ 0000000000000000000000000000000000000000 02060592b31c9e12ffe1b282addf9537c5ef8e1f Anton Vasin <magnumsmail@gmail.com> 1354518787 +0400 commit (initial): Add some lyrics
@@ -0,0 +1 @@
1
+ 02060592b31c9e12ffe1b282addf9537c5ef8e1f
@@ -0,0 +1,13 @@
1
+ Down in Louisiana in that sunny clime,
2
+ They play a class of music that is super fine,
3
+ And it makes no difference if its rain or shine,
4
+ You can hear that that jazz band music playing all the time.
5
+ It sounds so peculiar cause the music's queer.
6
+ How its sweet vibration seem to fill the air.
7
+ Then to you the whole world seems to be in rhyme.
8
+ You want nothing else but blues-band music all the time.
9
+
10
+ Ev'ry one that's nigh
11
+ Never seems to sigh,
12
+ Hear them loudly cry:
13
+ Hey!
data/levels/stash.rb ADDED
@@ -0,0 +1,16 @@
1
+ difficulty 2
2
+ description "You've made some changes and want to work on them later. You should save them, but don't commit them"
3
+
4
+ setup do
5
+ init_from_level
6
+ end
7
+
8
+ solution do
9
+ return false if `git stash list` !~ /stash@\{0\}/
10
+ return false if repo.status.changed.to_a.flatten.include? "lyrics.txt"
11
+ true
12
+ end
13
+
14
+ hint do
15
+ puts "It's like stashing. Try finding appropriate git command"
16
+ end
data/levels/status.rb CHANGED
@@ -12,7 +12,7 @@ end
12
12
 
13
13
  solution do
14
14
 
15
- name = request("What is the full file name of the untracked file?")
15
+ name = request("What is the full file name of the untracked file?")
16
16
 
17
17
  if name != "database.yml"
18
18
  return false
data/lib/githug/cli.rb CHANGED
@@ -21,7 +21,7 @@ module Githug
21
21
  def test(path)
22
22
  UI.word_box("Githug")
23
23
  make_directory
24
- level = Level.load_from_file(path)
24
+ level = Level.load_from_file(path)
25
25
  game = Game.new
26
26
  game.test_level(level, options[:errors])
27
27
  end
@@ -61,7 +61,7 @@ module Githug
61
61
 
62
62
 
63
63
  def make_directory
64
- if File.exists?("./git_hug")
64
+ if File.exists?("./git_hug")
65
65
  UI.puts "Please change into the git_hug directory"
66
66
  exit
67
67
  end
data/lib/githug/game.rb CHANGED
@@ -16,7 +16,7 @@ module Githug
16
16
  else
17
17
  level = Level.load(profile.level)
18
18
  if solve && level
19
- if level.solve
19
+ if level.solve
20
20
  UI.success "Congratulations, you have solved the level"
21
21
  level_bump
22
22
  else
data/lib/githug/level.rb CHANGED
@@ -4,17 +4,18 @@ module Githug
4
4
 
5
5
  LEVELS = [nil, "init", "add", "commit", "config", "clone",
6
6
  "clone_to_folder", "ignore", "status", "rm", "rm_cached",
7
- "rename", "log", "tag", "commit_amend", "reset", "reset_soft",
8
- "checkout_file", "remote", "remote_url", "pull", "remote_add",
9
- "push", "diff", "blame", "branch", "checkout", "checkout_tag",
10
- "branch_at", "merge", "cherry-pick", "rename_commit", "squash",
11
- "merge_squash", "reorder", "bisect", "stage_lines",
12
- "find_old_branch", "revert", "restore", "conflict", "contribute"]
7
+ "stash", "rename", "log", "tag", "commit_amend", "reset",
8
+ "reset_soft", "checkout_file", "remote", "remote_url", "pull",
9
+ "remote_add", "push", "diff", "blame", "branch", "checkout",
10
+ "checkout_tag", "branch_at", "merge", "cherry-pick",
11
+ "rename_commit", "squash", "merge_squash", "reorder", "bisect",
12
+ "stage_lines", "find_old_branch", "revert", "restore",
13
+ "conflict", "contribute"]
13
14
 
14
15
  attr_accessor :level_no, :level_path
15
-
16
+
16
17
  class << self
17
-
18
+
18
19
  def load(level_name)
19
20
  path = "#{File.dirname(__FILE__)}/../../levels/#{level_name}.rb"
20
21
  setup(path)
@@ -27,10 +28,11 @@ module Githug
27
28
 
28
29
  def setup(path)
29
30
  level_name = File.basename(path, File.extname(path))
30
- #Remove .rb extension, WTB a better way to do this
31
- level_path = path[0..-4]
32
- level = new
31
+ level_path = path.chomp(File.extname(path))
32
+ level = self.new
33
+
33
34
  return false unless File.exists?(path)
35
+
34
36
  level.instance_eval(File.read(path))
35
37
  level.level_no = LEVELS.index(level_name) || 1
36
38
  level.level_path = level_path
@@ -57,7 +59,7 @@ module Githug
57
59
  end
58
60
 
59
61
  def setup(&block)
60
- @setup = block
62
+ @setup = block
61
63
  end
62
64
 
63
65
  def hint(&hint)
@@ -12,7 +12,7 @@ module Githug
12
12
  :current_attempts => 0,
13
13
  :current_hint_index => 0,
14
14
  :current_levels => [],
15
- :completed_levels => []
15
+ :completed_levels => []
16
16
  }
17
17
 
18
18
  settings.merge! YAML::load(File.open(PROFILE_FILE)) if File.exists?(PROFILE_FILE)
@@ -2,7 +2,7 @@ module Githug
2
2
  class Repository
3
3
 
4
4
  attr_accessor :grit
5
-
5
+
6
6
  def initialize(location = ".")
7
7
  @grit = Grit::Repo.new(location)
8
8
  rescue Grit::InvalidGitRepositoryError
@@ -13,7 +13,7 @@ module Githug
13
13
  dont_delete = ["..", ".", ".profile.yml"]
14
14
  if File.basename(Dir.pwd) == "git_hug"
15
15
  Dir.entries(Dir.pwd).each do |file|
16
- FileUtils.rm_rf(file) unless dont_delete.include?(file)
16
+ FileUtils.rm_rf(file) unless dont_delete.include?(file)
17
17
  end
18
18
  end
19
19
  create_gitignore
@@ -37,7 +37,7 @@ module Githug
37
37
  end
38
38
 
39
39
  def method_missing(method, *args, &block)
40
- if @grit && @grit.respond_to?(method)
40
+ if @grit && @grit.respond_to?(method)
41
41
  return @grit.send(method, *args, &block)
42
42
  end
43
43
  super
data/lib/githug/ui.rb CHANGED
@@ -5,7 +5,7 @@ module Githug
5
5
  @@in_stream = STDIN
6
6
 
7
7
  class << self
8
-
8
+
9
9
  def out_stream=(out)
10
10
  @@out_stream = out
11
11
  end
@@ -26,26 +26,17 @@ module Githug
26
26
  @@in_stream.gets
27
27
  end
28
28
 
29
- def line
30
- puts("*"*80)
31
- end
32
-
33
- def word_box(string)
34
- space_length = (80/2) - ((string.length/2)+1)
35
- line
36
- print "*"
37
- print " "*space_length
38
- print string
39
- print " "*space_length
40
- puts "*"
41
- line
29
+ def word_box(string,width=80,char='*')
30
+ puts char*width
31
+ puts "#{char}#{string.center(width-2)}#{char}"
32
+ puts char*width
42
33
  end
43
34
 
44
35
  def request(msg)
45
36
  print("#{msg} ")
46
37
  gets.chomp
47
38
  end
48
-
39
+
49
40
  def ask(msg)
50
41
  request("#{msg} [yn] ") == 'y'
51
42
  end
@@ -1,3 +1,3 @@
1
1
  module Githug
2
- VERSION = "0.2.11"
2
+ VERSION = "0.2.12"
3
3
  end
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
  require 'githug/cli'
3
3
 
4
4
  describe Githug::CLI do
5
-
5
+
6
6
  before(:each) do
7
7
  game = mock.as_null_object
8
8
  @cli = Githug::CLI.new
@@ -11,12 +11,12 @@ describe Githug::CLI do
11
11
 
12
12
  it "should print the logo" do
13
13
  Githug::UI.should_receive(:word_box).with("Githug")
14
- @cli.stub(:make_directory)
14
+ @cli.stub(:make_directory)
15
15
  @cli.play
16
16
  end
17
17
 
18
18
  it "should create a directory if one does not exist" do
19
- Githug::UI.stub(:ask).and_return(true)
19
+ Githug::UI.stub(:ask).and_return(true)
20
20
  Dir.should_receive(:mkdir).with("./git_hug")
21
21
  Dir.should_receive(:chdir).with("git_hug")
22
22
  @cli.make_directory
@@ -25,16 +25,16 @@ describe Githug::CLI do
25
25
  it "should not make a directory if you are in the game directory" do
26
26
  Dir.stub(:pwd).and_return("/home/git_hug")
27
27
  Githug::UI.should_not_receive(:ask)
28
- @cli.make_directory
28
+ @cli.make_directory
29
29
  end
30
30
 
31
31
  it "should exit if the user selects no" do
32
- Githug::UI.stub(:ask).and_return(false)
32
+ Githug::UI.stub(:ask).and_return(false)
33
33
  lambda {@cli.make_directory}.should raise_error(SystemExit)
34
34
  end
35
35
 
36
36
  it "should prompt to change into the directory if it exists" do
37
- File.stub(:exists?).and_return(true)
37
+ File.stub(:exists?).and_return(true)
38
38
  Githug::UI.should_receive(:puts).with("Please change into the git_hug directory")
39
39
  lambda {@cli.make_directory}.should raise_error(SystemExit)
40
40
  end
@@ -44,7 +44,7 @@ describe Githug::CLI do
44
44
  level = mock
45
45
  game = mock
46
46
  @cli.stub(:make_directory)
47
- Githug::Level.should_receive(:load_from_file).with("/foo/bar/test/level.rb").and_return(level)
47
+ Githug::Level.should_receive(:load_from_file).with("/foo/bar/test/level.rb").and_return(level)
48
48
  Githug::Game.stub(:new).and_return(game)
49
49
  game.should_receive(:test_level).with(level, anything)
50
50
  @cli.test("/foo/bar/test/level.rb")
@@ -67,8 +67,8 @@ describe Githug::CLI do
67
67
  end
68
68
 
69
69
  describe "reset" do
70
-
71
-
70
+
71
+
72
72
  it "should reset the current level" do
73
73
  @level.should_receive(:setup_level)
74
74
  @level.should_receive(:full_description)
@@ -92,8 +92,8 @@ describe Githug::CLI do
92
92
  Githug::UI.should_receive(:puts).with("resetting level")
93
93
  @cli.reset("/foo/bar/level.rb")
94
94
  end
95
- end
95
+ end
96
96
 
97
97
  end
98
-
98
+
99
99
  end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Githug::Game do
4
-
4
+
5
5
  before(:each) do
6
6
  @profile = mock.as_null_object
7
7
  Githug::Profile.stub(:new).and_return(@profile)
@@ -64,13 +64,13 @@ describe Githug::Game do
64
64
 
65
65
  describe "test_level" do
66
66
  it "Should output Valid solution if the solution is valid" do
67
- @level.stub(:solve).and_return(true)
67
+ @level.stub(:solve).and_return(true)
68
68
  Githug::UI.should_receive(:success).with("Valid solution")
69
69
  @game.test_level(@level)
70
70
  end
71
-
71
+
72
72
  it "Should output Invalid solution if the solution is invalid" do
73
- @level.stub(:solve).and_return(false)
73
+ @level.stub(:solve).and_return(false)
74
74
  Githug::UI.should_receive(:error).with("Invalid solution")
75
75
  @game.test_level(@level)
76
76
  end
@@ -88,9 +88,9 @@ describe Githug::Game do
88
88
  end
89
89
 
90
90
  it "should call setup_level for the next level" do
91
- @level.should_receive(:setup_level)
91
+ @level.should_receive(:setup_level)
92
92
  @profile.stub(:level=)
93
93
  @game.level_bump
94
94
  end
95
-
95
+
96
96
  end
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
  require 'grit'
3
3
 
4
4
  describe Githug::Level do
5
-
5
+
6
6
  before(:each) do
7
7
  @file = <<-eof
8
8
  difficulty 1
@@ -26,7 +26,7 @@ end
26
26
  File.stub(:read).and_return(@file)
27
27
  @level = Githug::Level.load("init")
28
28
  @repo = mock
29
- @repo.stub(:reset)
29
+ @repo.stub(:reset)
30
30
  Githug::Repository.stub(:new).and_return(@repo)
31
31
  Githug::UI.stub(:puts)
32
32
  Githug::UI.stub(:print)
@@ -38,7 +38,7 @@ end
38
38
 
39
39
 
40
40
  describe "load" do
41
-
41
+
42
42
  it "should load the level" do
43
43
  File.stub(:dirname).and_return("")
44
44
  File.should_receive(:read).with('/../../levels/init.rb').and_return(@file)
@@ -80,13 +80,13 @@ end
80
80
 
81
81
 
82
82
  describe "solve" do
83
-
83
+
84
84
  it "should solve the problem" do
85
85
  @level.solve.should eql(false)
86
86
  end
87
87
 
88
88
  it "should return true if the requirements have been met" do
89
- Grit::Repo.stub(:new).and_return(true)
89
+ Grit::Repo.stub(:new).and_return(true)
90
90
  @level.solve.should eql(true)
91
91
  end
92
92
 
@@ -94,9 +94,9 @@ end
94
94
 
95
95
  describe "test" do
96
96
  it "should call solve" do
97
- @level.instance_variable_get("@solution").should_receive(:call)
97
+ @level.instance_variable_get("@solution").should_receive(:call)
98
98
  @level.test
99
- end
99
+ end
100
100
  end
101
101
 
102
102
 
@@ -115,7 +115,7 @@ end
115
115
  describe "setup" do
116
116
 
117
117
  it "should call setup" do
118
- @level.setup_level.should eql("test")
118
+ @level.setup_level.should eql("test")
119
119
  end
120
120
 
121
121
  it "should not call the setup if none exists" do
@@ -124,10 +124,10 @@ end
124
124
  end
125
125
 
126
126
  end
127
-
127
+
128
128
 
129
129
  describe "repo" do
130
-
130
+
131
131
  it "should initialize a repository when repo is called" do
132
132
  @level.repo.should equal(@repo)
133
133
  Githug::Repository.should_not_receive(:new)
@@ -135,14 +135,14 @@ end
135
135
  end
136
136
 
137
137
  it "should call reset on setup_level" do
138
- @repo.should_receive(:reset)
138
+ @repo.should_receive(:reset)
139
139
  @level.setup_level
140
140
  end
141
141
 
142
142
  end
143
143
 
144
144
  describe "hint" do
145
-
145
+
146
146
  before(:each) do
147
147
  @profile = mock.as_null_object
148
148
  Githug::Profile.stub(:load).and_return(@profile)
@@ -152,10 +152,10 @@ end
152
152
  it "should return sequential hint if there are multiple" do
153
153
  @level.should_receive(:puts).ordered.with("this is hint 1")
154
154
  @level.show_hint
155
-
155
+
156
156
  @level.should_receive(:puts).ordered.with("this is hint 2")
157
157
  @level.show_hint
158
-
158
+
159
159
  @level.should_receive(:puts).ordered.with("this is hint 1")
160
160
  @level.show_hint
161
161
  end
@@ -163,7 +163,7 @@ end
163
163
  it "should display a hint if there are not multiple" do
164
164
  @level.instance_variable_set("@hints", nil)
165
165
  @level.should_receive(:puts).with("this is a hint")
166
- @level.show_hint
166
+ @level.show_hint
167
167
  end
168
168
 
169
169
  it "should not call the hint if none exist" do
@@ -174,9 +174,9 @@ end
174
174
 
175
175
  describe "init_from_level" do
176
176
  it "should copy the files from the level folder" do
177
- FileUtils.should_receive(:cp_r).with("#{@level.level_path}/.", ".")
177
+ FileUtils.should_receive(:cp_r).with("#{@level.level_path}/.", ".")
178
178
  FileUtils.should_receive(:mv).with(".githug", ".git")
179
179
  @level.init_from_level
180
- end
180
+ end
181
181
  end
182
182
  end
@@ -34,16 +34,16 @@ describe Githug::Profile do
34
34
  describe "level_bump" do
35
35
  before(:each) do
36
36
  @profile = Githug::Profile.load
37
- @levels = Githug::Level::LEVELS
37
+ @levels = Githug::Level::LEVELS
38
38
  Githug::Level::LEVELS = ["init", "add", "rm", "rm_cached", "diff"]
39
39
  @profile.level = "init"
40
40
  @profile.should_receive(:save)
41
41
  end
42
-
42
+
43
43
  after(:each) do
44
44
  Githug::Level::LEVELS = @levels
45
45
  end
46
-
46
+
47
47
  it "should bump the level" do
48
48
  @profile.level_bump.should eql("add")
49
49
  end
@@ -61,5 +61,5 @@ describe Githug::Profile do
61
61
  end
62
62
  end
63
63
 
64
-
64
+
65
65
  end