app-version-git 0.0.3 → 0.0.4

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.3
1
+ 0.0.4
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "app-version-git"
8
- s.version = "0.0.3"
8
+ s.version = "0.0.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Ondrej Bartas"]
12
- s.date = "2012-03-21"
12
+ s.date = "2012-07-31"
13
13
  s.description = "Show version number based on git commit counts and enable to show change log from commit messages"
14
14
  s.email = "ondrej@bartas.cz"
15
15
  s.extra_rdoc_files = [
@@ -5,10 +5,22 @@ require 'git'
5
5
 
6
6
  class AppVersion
7
7
  def initialize path
8
- path = File.expand_path(File.dirname(path))
9
- @git = Git.open(path)
8
+ @git = Git.open(get_path path)
10
9
  end
11
10
 
11
+ def get_path path
12
+ path = File.expand_path(File.dirname(path))
13
+ path = path.split("/")
14
+ while path.size > 0
15
+ if File.exists?(File.join(path, ".git"))
16
+ return File.join(path)
17
+ else
18
+ path = path[0..-2]
19
+ end
20
+ end
21
+ raise ArgumentError, "Git repository couldn't be found in your path"
22
+ end
23
+
12
24
  def version
13
25
  log_count = @git.log(99999).size
14
26
  patch = log_count % 10
@@ -19,7 +31,7 @@ class AppVersion
19
31
 
20
32
  def changelog count = 40
21
33
  @git.log(count).collect{|l|
22
- { :date => l.date, :author => l.committer.name, :message => l.message }
34
+ { :sha => l.sha, :date => l.date, :author => l.committer.name, :message => l.message }
23
35
  }
24
36
  end
25
37
 
@@ -3,11 +3,28 @@ require 'helper'
3
3
  class TestAppVersionGit < Test::Unit::TestCase
4
4
  should "return valid format of version" do
5
5
  @app = AppVersion.new(__FILE__)
6
- assert /\d\.\d.\d/ =~ @app.version
6
+ assert /\d\.\d.\d/ =~ @app.version, "version should match \\d.\\d.\\d regular"
7
7
  end
8
+
8
9
  should "hash with commit messages" do
9
10
  @app = AppVersion.new(__FILE__)
10
- assert @app.changelog.is_a?(Array)
11
- assert @app.changelog.first.is_a?(Hash)
11
+ assert @app.changelog.is_a?(Array), "change log should be array"
12
+ assert @app.changelog.first.is_a?(Hash), "commit should be hash"
13
+ assert @app.changelog.first.has_key?(:sha), "should have sha"
14
+ assert @app.changelog.first.has_key?(:author), "should have author"
15
+ assert @app.changelog.first.has_key?(:date), "should have date"
16
+ assert @app.changelog.first.has_key?(:message), "should have message"
17
+ end
18
+
19
+ should "get path to git repo" do
20
+ assert_nothing_raised do
21
+ AppVersion.new(__FILE__)
22
+ end
23
+ end
24
+
25
+ should "not get path to git repo and raise exception" do
26
+ assert_raise ArgumentError do
27
+ AppVersion.new(File.join(File.expand_path(__FILE__).split("/")[0..-4]))
28
+ end
12
29
  end
13
30
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: app-version-git
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
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-03-21 00:00:00.000000000 Z
12
+ date: 2012-07-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: git
16
- requirement: &70219108305840 !ruby/object:Gem::Requirement
16
+ requirement: &70171200894600 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70219108305840
24
+ version_requirements: *70171200894600
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: shoulda
27
- requirement: &70219108304860 !ruby/object:Gem::Requirement
27
+ requirement: &70171200893400 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70219108304860
35
+ version_requirements: *70171200893400
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rdoc
38
- requirement: &70219108320040 !ruby/object:Gem::Requirement
38
+ requirement: &70171200891860 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '3.12'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70219108320040
46
+ version_requirements: *70171200891860
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
- requirement: &70219108319000 !ruby/object:Gem::Requirement
49
+ requirement: &70171200890420 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.0.0
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70219108319000
57
+ version_requirements: *70171200890420
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: jeweler
60
- requirement: &70219108318220 !ruby/object:Gem::Requirement
60
+ requirement: &70171200905620 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.8.3
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70219108318220
68
+ version_requirements: *70171200905620
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rcov
71
- requirement: &70219108317140 !ruby/object:Gem::Requirement
71
+ requirement: &70171200904920 !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: :development
78
78
  prerelease: false
79
- version_requirements: *70219108317140
79
+ version_requirements: *70171200904920
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: turn
82
- requirement: &70219108316440 !ruby/object:Gem::Requirement
82
+ requirement: &70171200904100 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: 0.8.2
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70219108316440
90
+ version_requirements: *70171200904100
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: ansi
93
- requirement: &70219108315640 !ruby/object:Gem::Requirement
93
+ requirement: &70171200903400 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
@@ -98,7 +98,7 @@ dependencies:
98
98
  version: 1.2.5
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70219108315640
101
+ version_requirements: *70171200903400
102
102
  description: Show version number based on git commit counts and enable to show change
103
103
  log from commit messages
104
104
  email: ondrej@bartas.cz
@@ -133,7 +133,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
133
133
  version: '0'
134
134
  segments:
135
135
  - 0
136
- hash: -3896247096244613594
136
+ hash: -2852965649254568985
137
137
  required_rubygems_version: !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements: