gitv 0.0.1

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,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 51080d1d563e7231538ddc5a5c3f72d315442318
4
+ data.tar.gz: a0215abb0d6e0ea494659b25a7299fa505297931
5
+ SHA512:
6
+ metadata.gz: 3982a4b73cb8efe2a199d9987427d4235c1c1be7b0a8d5d672f0fb6fe82c2056d9ce9f26297395a48ed180a6bb393d8e0643e9f98ab65637b096e9867ca7b711
7
+ data.tar.gz: c4b7c7ddaeaa682dcd8cc00e1c3a579f3b8b6d29b7046e0eea8759830dc1cf99f4d778f2a993477e15db54bf4aeb0b289924eeaacab5d15b030a5aa269d23d0a
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'colorize'
4
+ require_relative '../lib/gitv'
5
+
6
+ begin
7
+ case ARGV[0]
8
+ when 'help', '--help', '-h'
9
+ puts "Usage [help|--help|-h] [source root] [cached version file]"
10
+ when 'version', '--version', '-v'
11
+ puts GitV.new( File.join( File.dirname(__FILE__), '..' ) ).version
12
+ else
13
+ puts GitV.new( ARGV[0], ARGV[1] ).version
14
+ end
15
+ rescue => e
16
+ STDERR.puts
17
+ STDERR.puts "ERROR: #{e}".red
18
+ STDERR.puts
19
+ end
@@ -0,0 +1 @@
1
+ 0.0.1
@@ -0,0 +1 @@
1
+ require_relative 'gitv/gitv'
@@ -0,0 +1,38 @@
1
+ class GitV
2
+ def initialize(src_root = nil, version_file = nil)
3
+ @src_root = src_root || Dir.pwd
4
+ @version_file = version_file || File.join( 'lib', 'data', 'version' )
5
+ @abs_version_file = File.join( @src_root, @version_file )
6
+ end
7
+
8
+ def version
9
+ @ver ||= retrieve_info
10
+ end
11
+
12
+ def cache
13
+ FileUtils.rm_rf( @abs_version_file )
14
+ FileUtils.mkdir_p( File.dirname( @abs_version_file ) )
15
+ File.write( @abs_version_file, version )
16
+
17
+ @version_file
18
+ end
19
+
20
+ private
21
+
22
+ def retrieve_info
23
+ File.directory?( File.join( @src_root, '.git' ) ) ? git_version : cached_version
24
+ end
25
+
26
+ def cached_version
27
+ File.read( @abs_version_file )
28
+ end
29
+
30
+ def git_version
31
+ v = %x(git describe --tags --dirty)
32
+ if m = v.match( /^v([0-9]+)\.([0-9]+)\.([0-9]+)(.*)$/ )
33
+ "#{m[1]}.#{m[2]}.#{m[3]}#{m[4].gsub( '-', '.' )}"
34
+ else
35
+ raise "Failed to parse version string #{v}"
36
+ end
37
+ end
38
+ end
metadata ADDED
@@ -0,0 +1,122 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gitv
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Dmitry Fleytman
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-04-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: colorize
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.8.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.8.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: travis
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.8'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 1.8.2
37
+ type: :development
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '1.8'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 1.8.2
47
+ - !ruby/object:Gem::Dependency
48
+ name: rubygems-tasks
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '0.2'
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 0.2.4
57
+ type: :development
58
+ prerelease: false
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "~>"
62
+ - !ruby/object:Gem::Version
63
+ version: '0.2'
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: 0.2.4
67
+ - !ruby/object:Gem::Dependency
68
+ name: rake
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '11.2'
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: 11.2.2
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '11.2'
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: 11.2.2
87
+ description: Yet another gem for versioning based on git tags
88
+ email: rbld-devel@rbld.io
89
+ executables:
90
+ - gitv
91
+ extensions: []
92
+ extra_rdoc_files: []
93
+ files:
94
+ - bin/gitv
95
+ - lib/data/version
96
+ - lib/gitv.rb
97
+ - lib/gitv/gitv.rb
98
+ homepage: http://rbld.io/
99
+ licenses:
100
+ - Apache-2.0
101
+ metadata: {}
102
+ post_install_message:
103
+ rdoc_options: []
104
+ require_paths:
105
+ - lib
106
+ required_ruby_version: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: 2.0.0
111
+ required_rubygems_version: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: '0'
116
+ requirements: []
117
+ rubyforge_project:
118
+ rubygems_version: 2.6.11
119
+ signing_key:
120
+ specification_version: 4
121
+ summary: gitv-0.0.1
122
+ test_files: []