gglog 0.0.1 → 0.0.2

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.
@@ -0,0 +1,9 @@
1
+ notifications:
2
+ recipients:
3
+ - koji.shimada@enishi-tech.com
4
+ language: ruby
5
+ rvm:
6
+ - 1.9.3
7
+ before_install:
8
+ - gem install bundler
9
+ - curl https://raw.github.com/groonga/groonga/master/data/travis/setup.sh | sh
data/CHANGELOG CHANGED
@@ -1,3 +1,8 @@
1
+ ## 0.0.2 (2012-11-29)
2
+
3
+ * include diff in the result of 'show' sub-command
4
+ * fix the branch specified as 'git pull' (master -> HEAD) [Patch by @tricknotes]
5
+
1
6
  ## 0.0.1 (2012-11-06)
2
7
 
3
8
  * first release
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gglog (0.0.1)
4
+ gglog (0.0.2)
5
5
  bundler (>= 1.2)
6
6
  pager
7
7
  rainbow
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # gglog
1
+ # gglog [![Build Status](https://secure.travis-ci.org/snoozer05/gglog.png)](http://travis-ci.org/snoozer05/gglog)
2
2
 
3
3
  gglog is your partner for finding a good commit message.
4
4
 
@@ -28,7 +28,7 @@ gglog is your partner for finding a good commit message.
28
28
 
29
29
  ## Usage
30
30
 
31
- Register github projects to your seaech targets:
31
+ Register github projects to your search targets:
32
32
 
33
33
  % gglog register https://github.com/rails/rails.git
34
34
 
@@ -60,7 +60,6 @@ I recommend you to use gglog in combination with [Clam.vim](https://github.com/s
60
60
  ## Todo
61
61
 
62
62
  - Improve commit message filter
63
- - Add diff to result of 'show'
64
63
  - Translate Motivation section to English
65
64
 
66
65
  ---
@@ -2,8 +2,6 @@
2
2
  フィーチャ: 登録しているGitリポジトリを確認したい
3
3
 
4
4
  シナリオ: 登録済みのGitリポジトリを一覧できること
5
- 前提 以下のGitリポジトリが登録されている:
6
- | URL |
7
- | https://github.com/snoozer05/gglog.git |
5
+ 前提 テスト用のGitリポジトリ"gglog_test_repository"が登録されている
8
6
  もし list サブコマンドを実行する
9
- ならば 一覧に"gglog"が含まれていること
7
+ ならば 一覧に"gglog_test_repository"が含まれていること
@@ -2,5 +2,11 @@
2
2
  フィーチャ: コミットメッセージに興味のあるGitリポジトリを登録したい
3
3
 
4
4
  シナリオ: Gitリポジトリを登録できること
5
- もし Gitリポジトリ"https://github.com/snoozer05/gglog.git"を登録する
6
- ならば 登録リポジトリに"gglog"が追加されていること
5
+ もし テスト用のGitリポジトリ"gglog_test_repository"を登録する
6
+ ならば 登録リポジトリに"gglog_test_repository"が追加されていること
7
+
8
+ シナリオ: masterブランチのないGitリポジトリも登録できること
9
+ もし テスト用のGitリポジトリ"gglog_test_repository_no_master_branch"を登録する
10
+ ならば 登録リポジトリに"gglog_test_repository_no_master_branch"が追加されていること
11
+
12
+
@@ -2,8 +2,6 @@
2
2
  フィーチャ: 登録しているGitリポジトリのコミットメッセージを検索したい
3
3
 
4
4
  シナリオ: 登録済みのGitリポジトリに含まれるコミットメッセージを検索できること
5
- 前提 以下のGitリポジトリが登録されている:
6
- | URL |
7
- | https://github.com/snoozer05/gglog.git |
8
- もし キーワード".gitignore"で検索を行なう
9
- ならば 検索結果にコミットメッセージ"Add .gitignore"が含まれていること
5
+ 前提 テスト用のGitリポジトリ"gglog_test_repository"が登録されている
6
+ もし キーワード"Initial"で検索を行なう
7
+ ならば 検索結果にコミットメッセージ"Initial commit"が含まれていること
@@ -2,8 +2,10 @@
2
2
  フィーチャ: 登録しているGitリポジトリのコミットメッセージの詳細を閲覧したい
3
3
 
4
4
  シナリオ: 登録済みのGitリポジトリに含まれるコミットメッセージの詳細を確認できること
5
- 前提 以下のGitリポジトリが登録されている:
6
- | URL |
7
- | https://github.com/snoozer05/gglog.git |
8
- もし "gglog a36acabd9495b4cf435752553a8524d9715bc5d9"のコミットメッセージの表示を行なう
9
- ならば 詳細表示に"Add .gitignore"が含まれていること
5
+ 前提 テスト用のGitリポジトリ"gglog_test_repository"が登録されている
6
+ もし "gglog_test_repository 10eec585427e6e55b5ba03786440e5c1be79a906"のコミットメッセージの表示を行なう
7
+ ならば 詳細表示に"Initial commit"が含まれていること
8
+
9
+ シナリオ: show サブコマンド実行時に存在しないリポジトリ名が指定された場合
10
+ もし "gglog_test_repository 10eec585427e6e55b5ba03786440e5c1be79a906"のコミットメッセージの表示を行なう
11
+ ならば 結果表示に"Failed: repository name or sha is incorrect"が含まれていること
@@ -1,4 +1,5 @@
1
1
  #coding: utf-8
2
+
2
3
  前提 /^以下のGitリポジトリが登録されている:$/ do |table|
3
4
  command = Gglog::Command.new([], {"gglog-home" => @gglog_home})
4
5
  table.hashes.each do |row|
@@ -6,6 +7,12 @@
6
7
  end
7
8
  end
8
9
 
10
+ 前提 /^テスト用のGitリポジトリ"(.*?)"が登録されている$/ do |repository_name|
11
+ test_repo = decompress_test_repository(repository_name)
12
+ git_url = File.join(test_repo, "#{repository_name}.git")
13
+ step %Q{Gitリポジトリ"#{git_url}"を登録する}
14
+ end
15
+
9
16
  もし /^キーワード"(.*?)"で検索を行なう$/ do |keyword|
10
17
  run_simple("gglog search #{unescape(keyword)} -h #{@gglog_home}", false)
11
18
  end
@@ -22,18 +29,38 @@ end
22
29
  run_simple("gglog register #{unescape(url)} -h #{@gglog_home}", false)
23
30
  end
24
31
 
25
- ならば /^検索結果にコミットメッセージ"(.*?)"が含まれていること$/ do |expected|
32
+ もし /^テスト用のGitリポジトリ"(.*?)"を登録する$/ do |repository_name|
33
+ step %Q{テスト用のGitリポジトリ"#{repository_name}"が登録されている}
34
+ end
35
+
36
+ もし /^sync サブコマンドを実行する$/ do
37
+ run_simple("gglog sync -h #{@gglog_home}", false)
38
+ end
39
+
40
+ ならば /^結果表示に"(.*?)"が含まれていること$/ do |expected|
26
41
  assert_partial_output(expected, all_output)
27
42
  end
28
43
 
44
+ ならば /^検索結果にコミットメッセージ"(.*?)"が含まれていること$/ do |expected|
45
+ step %Q{結果表示に"#{expected}"が含まれていること}
46
+ end
47
+
29
48
  ならば /^一覧に"(.*?)"が含まれていること$/ do |expected|
30
- assert_partial_output(expected, all_output)
49
+ step %Q{結果表示に"#{expected}"が含まれていること}
31
50
  end
32
51
 
33
52
  ならば /^詳細表示に"(.*?)"が含まれていること$/ do |expected|
34
- assert_partial_output(expected, all_output)
53
+ step %Q{結果表示に"#{expected}"が含まれていること}
35
54
  end
36
55
 
37
56
  ならば /^登録リポジトリに"(.*?)"が追加されていること$/ do |expected|
38
57
  Dir["#{@gglog_home}/repositories/*"].include?("#{@gglog_home}/repositories/#{expected}")
39
58
  end
59
+
60
+ ならば /^"(.*?)"リポジトリの状態が最新になっていること$/ do |repository_name|
61
+ repo = File.join(@gglog_home, "repositories", repository_name)
62
+ Dir.chdir(repo) do
63
+ run_simple("git pull --force --quiet origin HEAD", false)
64
+ end
65
+ assert_partial_output("Already up-to-date.", all_output)
66
+ end
@@ -0,0 +1,14 @@
1
+ #coding: utf-8
2
+ module ArchivedTestRepository
3
+ def archived_test_repository_path(repository_name)
4
+ File.join(File.expand_path(File.dirname(__FILE__)), "data", "#{repository_name}.tar.gz")
5
+ end
6
+
7
+ def decompress_test_repository(repository_name)
8
+ dest_dir = Dir.mktmpdir
9
+ system "tar", "xfz", archived_test_repository_path(repository_name), "-C", dest_dir
10
+ File.join(dest_dir, repository_name)
11
+ end
12
+ end
13
+
14
+ World(ArchivedTestRepository)
@@ -0,0 +1,14 @@
1
+ #language: ja
2
+ フィーチャ: 登録済みのGitリポジトリを最新の状態に更新したい
3
+
4
+ シナリオ: 登録済みのGitリポジトリを更新できること
5
+ 前提 テスト用のGitリポジトリ"gglog_test_repository"を登録する
6
+ もし sync サブコマンドを実行する
7
+ ならば "gglog_test_repository"リポジトリの状態が最新になっていること
8
+
9
+ シナリオ: masterブランチのないGitリポジトリも更新できること
10
+ 前提 テスト用のGitリポジトリ"gglog_test_repository_no_master_branch"を登録する
11
+ もし sync サブコマンドを実行する
12
+ ならば "gglog_test_repository_no_master_branch"リポジトリの状態が最新になっていること
13
+
14
+
@@ -1,5 +1,5 @@
1
1
  #coding: utf-8
2
- require "Gglog/command"
2
+ require "gglog/command"
3
3
 
4
4
  module Gglog
5
5
  end
@@ -58,12 +58,11 @@ module Gglog
58
58
  desc 'show [REPOSITORY_NAME] [SHA]', 'Show commit message'
59
59
  def show(repository_name, sha)
60
60
  repository = Repository.new(repository_path(repository_name))
61
- commit_message = repository.commit_message(sha).tap do |cm|
62
- cm.extend CommitMessageDecorator
63
- end
64
61
 
65
62
  page
66
- say commit_message.display_detail
63
+ say repository.show(sha)
64
+ rescue
65
+ say "Failed: repository name or sha is incorrect"
67
66
  end
68
67
 
69
68
  desc 'sync', 'Sync git repositories of gglog target'
@@ -14,10 +14,6 @@ module Gglog
14
14
  " #{body} #{prefix}"
15
15
  end
16
16
 
17
- def display_detail
18
- "\n#{first_line.bright}\n\n#{body}\n\n"
19
- end
20
-
21
17
  def string_display_width(string)
22
18
  string.each_char.map{|char| char_display_width(char) }.inject(0, &:+)
23
19
  end
@@ -29,15 +29,16 @@ module Gglog
29
29
  end
30
30
  end
31
31
 
32
- def commit_message(sha)
33
- commit = @repo.lookup(sha)
34
- CommitMessage.new_from_commit_object(commit, name)
32
+ def show(sha)
33
+ Dir.chdir(@path) do
34
+ system "git", "show", sha
35
+ end
35
36
  end
36
37
 
37
38
  def pull
38
39
  Dir.chdir(@path) do
39
40
  system "git", "reset", "--hard", "--quiet"
40
- system "git", "pull", "--force", "--quiet", "origin", "master"
41
+ system "git", "pull", "--force", "--quiet", "origin", "HEAD"
41
42
  end
42
43
  end
43
44
 
@@ -1,4 +1,4 @@
1
1
  #coding: utf-8
2
2
  module Gglog
3
- VERSION = '0.0.1'
3
+ VERSION = '0.0.2'
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gglog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-05 00:00:00.000000000 Z
12
+ date: 2012-11-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
16
- requirement: &2182997400 !ruby/object:Gem::Requirement
16
+ requirement: &2154839620 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.16.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2182997400
24
+ version_requirements: *2154839620
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &2182996720 !ruby/object:Gem::Requirement
27
+ requirement: &2154838940 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '1.2'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2182996720
35
+ version_requirements: *2154838940
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rroonga
38
- requirement: &2182996100 !ruby/object:Gem::Requirement
38
+ requirement: &2154837960 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 2.0.6
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *2182996100
46
+ version_requirements: *2154837960
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rugged
49
- requirement: &2182995300 !ruby/object:Gem::Requirement
49
+ requirement: &2154837480 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 0.16.0
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *2182995300
57
+ version_requirements: *2154837480
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rainbow
60
- requirement: &2182994900 !ruby/object:Gem::Requirement
60
+ requirement: &2154837080 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *2182994900
68
+ version_requirements: *2154837080
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: pager
71
- requirement: &2182994440 !ruby/object:Gem::Requirement
71
+ requirement: &2154836400 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *2182994440
79
+ version_requirements: *2154836400
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rake
82
- requirement: &2182993880 !ruby/object:Gem::Requirement
82
+ requirement: &2154835780 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *2182993880
90
+ version_requirements: *2154835780
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: rspec
93
- requirement: &2182993260 !ruby/object:Gem::Requirement
93
+ requirement: &2154835360 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *2182993260
101
+ version_requirements: *2154835360
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: cucumber
104
- requirement: &2182992640 !ruby/object:Gem::Requirement
104
+ requirement: &2154834940 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '0'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *2182992640
112
+ version_requirements: *2154834940
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: aruba
115
- requirement: &2182992220 !ruby/object:Gem::Requirement
115
+ requirement: &2154834500 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,7 +120,7 @@ dependencies:
120
120
  version: '0'
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *2182992220
123
+ version_requirements: *2154834500
124
124
  description: Your partner for finding a good commit message.
125
125
  email:
126
126
  - koji.shimada@enishi-tech.com
@@ -130,6 +130,7 @@ extensions: []
130
130
  extra_rdoc_files: []
131
131
  files:
132
132
  - .gitignore
133
+ - .travis.yml
133
134
  - CHANGELOG
134
135
  - Gemfile
135
136
  - Gemfile.lock
@@ -142,7 +143,11 @@ files:
142
143
  - features/search.feature
143
144
  - features/show.feature
144
145
  - features/step_definitions/gglog_steps.rb
146
+ - features/support/archived_test_repository.rb
147
+ - features/support/data/gglog_test_repository.tar.gz
148
+ - features/support/data/gglog_test_repository_no_master_branch.tar.gz
145
149
  - features/support/env.rb
150
+ - features/sync.feature
146
151
  - gglog.gemspec
147
152
  - lib/gglog.rb
148
153
  - lib/gglog/command.rb
@@ -181,5 +186,9 @@ test_files:
181
186
  - features/search.feature
182
187
  - features/show.feature
183
188
  - features/step_definitions/gglog_steps.rb
189
+ - features/support/archived_test_repository.rb
190
+ - features/support/data/gglog_test_repository.tar.gz
191
+ - features/support/data/gglog_test_repository_no_master_branch.tar.gz
184
192
  - features/support/env.rb
193
+ - features/sync.feature
185
194
  has_rdoc: