mark_version 0.0.0 → 0.1.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f35e7c74b39b1c809626c10952f61ff295245575
4
- data.tar.gz: 15bdcf1e538f11949b1ad67066b5fab113a137a9
3
+ metadata.gz: 7e59137ca71ad5cba33dc35cbe58abf30062fac3
4
+ data.tar.gz: 230fd695e36fcd59f46091a9d65b46501851d2b8
5
5
  SHA512:
6
- metadata.gz: a8cf25e4603c898e339805a1e24fa4ade50e73bd26afc9f4d4f695029dd03d9a1ae85a98216c158acd0c1c31af192baf3eace958bd9b2566f8615e63ed689b7c
7
- data.tar.gz: a0a20eb179613d13a763fa63b64b3702a0e9227f7daf160c459959053af7ad2780e156f0a968f48dcc88532129afc8d10c34a33cd6276a00abcc4aedfcc38f86
6
+ metadata.gz: c6c341a76be0de9213f186936bfa012eb3b943cecf714cc5347025ee5187b02ebfc76a1ea5cabfaf5e929078b9166d8daf3f7d39ef765e3776fa23351fcbdffe
7
+ data.tar.gz: f5a03479bd0d03dcd42bea28e09009e181d1e57b4653bb1f727e58822444ecc445edb4e53dfa449e419104347bd81f17242ecc539b1c71d947217d990ea153cc
data/.gitignore CHANGED
@@ -1,5 +1,6 @@
1
1
  *.gem
2
2
  *.rbc
3
+ **/*.swp
3
4
  /.config
4
5
  /coverage/
5
6
  /InstalledFiles
data/bin/version ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'mark_version'
4
+
5
+ MarkVersionCli.start(ARGV)
data/lib/mark_version.rb CHANGED
@@ -1 +1,2 @@
1
1
  require 'mark_version/version_file.rb'
2
+ require 'mark_version/mark_version_cli.rb'
@@ -0,0 +1,85 @@
1
+ require 'thor'
2
+
3
+ class MarkVersionCli < Thor
4
+ default_task :show
5
+
6
+ desc 'init', 'initialize the project to start tracking it\'s version'
7
+ def init
8
+ VersionFile.new.init
9
+ commit
10
+ tag
11
+ end
12
+
13
+ desc 'patch', 'create a new patch-level (n.n.X) release'
14
+ def patch
15
+ VersionFile.new.patch
16
+ commit
17
+ tag
18
+ end
19
+
20
+ desc 'minor', 'create a new minor-level (n.X.n) release'
21
+ def minor
22
+ VersionFile.new.minor
23
+ commit
24
+ tag
25
+ end
26
+
27
+ desc 'major', 'create a new major-level (X.n.n) release'
28
+ def major
29
+ VersionFile.new.major
30
+ commit
31
+ tag
32
+ end
33
+
34
+ desc 'minor_release_candidate', 'create a new minor-level (n.X.n-RC1) release candidate'
35
+ def minor_release_candidate
36
+ VersionFile.new.minor_release_candidate
37
+ commit
38
+ tag
39
+ end
40
+
41
+ desc 'major_release_candidate', 'create a new major-level (X.n.n-RC1) release candidate'
42
+ def major_release_candidate
43
+ VersionFile.new.major_release_candidate
44
+ commit
45
+ tag
46
+ end
47
+
48
+ desc 'increment_release_candidate', 'increments the current release candidate (n.n.n-RCX)'
49
+ def increment_release_candidate
50
+ VersionFile.new.increment_release_candidate
51
+ commit
52
+ tag
53
+ end
54
+
55
+ desc 'release', 'releases the current release candidate (n.n.n)'
56
+ def release
57
+ VersionFile.new.release
58
+ commit
59
+ tag
60
+ end
61
+
62
+ desc 'show', "print the current version level from the VERSION file"
63
+ def show
64
+ puts version
65
+ end
66
+
67
+ no_commands {
68
+ def version
69
+ VersionFile.new.version
70
+ end
71
+
72
+ def file_name
73
+ VersionFile.new.file_name
74
+ end
75
+
76
+ def commit
77
+ system("git add #{file_name}")
78
+ system("git commit -m 'To version #{version}'")
79
+ end
80
+
81
+ def tag
82
+ system("git tag #{version} -a -m \"Release version #{version}\"")
83
+ end
84
+ }
85
+ end
@@ -2,14 +2,29 @@ class VersionFile
2
2
  attr_reader :file_name
3
3
 
4
4
  def initialize(file_name = 'VERSION')
5
- fail "Version file '#{file_name}' does not exist." unless File.file?(file_name)
6
5
  @file_name = file_name
7
- @version_file = open(file_name, 'r+')
8
6
  end
9
7
 
10
- def version
8
+ def init
9
+ fail 'Project already initialized.' if file_exists?
10
+ @version_file = open(file_name, 'w')
11
+ @version_file.rewind
12
+ @version_file.puts('0.0.0')
13
+ @version_file.print(revision)
11
14
  @version_file.rewind
15
+ @version_file.close
16
+ version
17
+ end
18
+
19
+ def file_exists?
20
+ File.file?(file_name)
21
+ end
22
+
23
+ def version
24
+ fail "Version file '#{file_name}' does not exist." unless file_exists?
25
+ @version_file = open(file_name, 'r+')
12
26
  version = @version_file.readline.chomp
27
+ @version_file.close
13
28
  version
14
29
  end
15
30
 
@@ -109,10 +124,11 @@ class VersionFile
109
124
  end
110
125
 
111
126
  def write(version)
112
- @version_file.rewind
127
+ fail "Version file '#{file_name}' does not exist." unless file_exists?
128
+ @version_file = open(file_name, 'r+')
113
129
  @version_file.puts(version)
114
130
  @version_file.print(revision)
115
- @version_file.rewind
131
+ @version_file.close
116
132
  version
117
133
  end
118
134
  end
data/mark_version.gemspec CHANGED
@@ -1,11 +1,12 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'mark_version'
3
- s.version = '0.0.0'
3
+ s.version = '0.1.0'
4
4
  s.date = '2015-05-30'
5
5
  s.summary = 'A tool for recording the version of a ruby application.'
6
6
  s.authors = ['Grayden Smith']
7
7
  s.email = 'grayden@tech-vision.ca'
8
8
  s.files = `git ls-files`.split($/)
9
+ s.executables << 'version'
9
10
  s.homepage = 'http://graydens.ca'
10
11
  s.license = 'MIT'
11
12
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mark_version
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Grayden Smith
@@ -26,7 +26,8 @@ dependencies:
26
26
  version: '3.2'
27
27
  description:
28
28
  email: grayden@tech-vision.ca
29
- executables: []
29
+ executables:
30
+ - version
30
31
  extensions: []
31
32
  extra_rdoc_files: []
32
33
  files:
@@ -34,9 +35,10 @@ files:
34
35
  - ".rspec"
35
36
  - LICENSE
36
37
  - README.md
38
+ - bin/version
37
39
  - lib/mark_version.rb
40
+ - lib/mark_version/mark_version_cli.rb
38
41
  - lib/mark_version/version_file.rb
39
- - lib/tasks/mark_version.rake
40
42
  - mark_version.gemspec
41
43
  - spec/fixtures/version_file.txt
42
44
  - spec/version_file_spec.rb
@@ -1,80 +0,0 @@
1
- namespace :version do
2
- def version
3
- VersionFile.new.version
4
- end
5
-
6
- def file_name
7
- VersionFile.new.file_name
8
- end
9
-
10
- def commit
11
- system("git add #{file_name}")
12
- system("git commit -m 'To version #{version}'")
13
- end
14
-
15
- def tag
16
- system("git tag #{version} -a -m \"Release version #{version}\"")
17
- end
18
-
19
- desc "create a new patch-level (n.n.X) release"
20
-
21
- task :patch => :environment do
22
- VersionFile.new.patch
23
- commit
24
- tag
25
- end
26
-
27
- desc "create a new minor-level (n.X.n) release"
28
-
29
- task :minor => :environment do
30
- VersionFile.new.minor
31
- commit
32
- tag
33
- end
34
-
35
- desc "create a new major-level (X.n.n) release"
36
-
37
- task :major => :environment do
38
- VersionFile.new.major
39
- commit
40
- tag
41
- end
42
-
43
- desc "create a new minor-level (n.X.n-RC1) release candidate"
44
-
45
- task :minor_release_candidate => :environment do
46
- VersionFile.new.minor_release_candidate
47
- commit
48
- tag
49
- end
50
-
51
- desc "create a new major-level (X.n.n-RC1) release candidate"
52
-
53
- task :major_release_candidate => :environment do
54
- VersionFile.new.major_release_candidate
55
- commit
56
- tag
57
- end
58
-
59
- desc "increments the current release candidate (n.n.n-RCX)"
60
-
61
- task :increment_release_candidate => :environment do
62
- VersionFile.new.increment_release_candidate
63
- commit
64
- tag
65
- end
66
-
67
- desc "releases the current release candidate (n.n.n)"
68
-
69
- task :release => :environment do
70
- VersionFile.new.release
71
- commit
72
- tag
73
- end
74
-
75
- desc "print the current version level from the VERSION file"
76
-
77
- task :show => :environment do
78
- puts version
79
- end
80
- end