semver 0.1.0 → 0.2.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.
Files changed (6) hide show
  1. data/.semver +2 -2
  2. data/README.md +5 -1
  3. data/bin/semver +11 -10
  4. data/lib/semver.rb +6 -3
  5. data/semver.gemspec +1 -1
  6. metadata +3 -3
data/.semver CHANGED
@@ -1,5 +1,5 @@
1
1
  ---
2
+ :patch: "0"
2
3
  :special: ""
3
4
  :major: "0"
4
- :minor: "1"
5
- :patch: "0"
5
+ :minor: "2"
data/README.md CHANGED
@@ -18,11 +18,15 @@ use it
18
18
  quickstart for ruby
19
19
  -------------------
20
20
  require 'semver'
21
- v = SemVer.find
21
+ v = SemVer.find
22
22
  v.major # => "0"
23
23
  v.major.next!
24
24
  v.major # => "1"
25
25
  v.format "%M.%m.%p" # => "1.1.0"
26
26
  v.save
27
27
 
28
+ git integration
29
+ ---------------
30
+ % git config --global alias.semtag '!git tag -a $(semver tag) -m "tagging $(semver tag)"'
31
+
28
32
  [Franco Lazzarino](mailto:flazzarino@gmail.com)
data/bin/semver CHANGED
@@ -2,8 +2,10 @@
2
2
 
3
3
  require 'semver'
4
4
 
5
+ class CommandError < StandardError; end
6
+
5
7
  begin
6
- command = ARGV.shift or raise "no command given"
8
+ command = ARGV.shift or raise CommandError, "no command given"
7
9
 
8
10
  case command
9
11
  when /^init(ialize)?$/
@@ -14,13 +16,13 @@ begin
14
16
 
15
17
  when /^inc(rement)?$/
16
18
  version = SemVer.find
17
- dimension = ARGV.shift or raise "required: major | minor | patch"
19
+ dimension = ARGV.shift or raise CommandError, "required: major | minor | patch"
18
20
 
19
21
  case dimension
20
22
  when 'major' then version.major.next!
21
23
  when 'minor' then version.minor.next!
22
24
  when 'patch' then version.patch.next!
23
- else raise "#{dimension} is invalid: major | minor | patch"
25
+ else raise CommandError, "#{dimension} is invalid: major | minor | patch"
24
26
  end
25
27
 
26
28
  version.special = ''
@@ -28,13 +30,13 @@ begin
28
30
 
29
31
  when /^spe(cial)?$/
30
32
  version = SemVer.find
31
- special_str = ARGV.shift or raise "required: an arbitrary string (beta, alfa, romeo, etc)"
33
+ special_str = ARGV.shift or raise CommandError, "required: an arbitrary string (beta, alfa, romeo, etc)"
32
34
  version.special = special_str
33
35
  version.save
34
36
 
35
37
  when 'format'
36
38
  version = SemVer.find
37
- format_str = ARGV.shift or raise "required: format string"
39
+ format_str = ARGV.shift or raise CommandError, "required: format string"
38
40
  version.format format_str
39
41
 
40
42
  when 'tag'
@@ -50,18 +52,17 @@ init[ialze] # initialize semantic version tracking
50
52
  inc[rement] major | minor | patch # increment a specific version number
51
53
  spe[cial] [STRING] # set a special version suffix
52
54
  format # printf like format: %M, %m, %p, %s
53
- tag # equivalenti to format 'v%M.%m.%p%s'
55
+ tag # equivalent to format 'v%M.%m.%p%s'
54
56
  help
55
57
 
56
- PLEASE READ http://semver.org
58
+ PLEASE READ http://semver.org
57
59
  HELP
58
60
 
59
- else raise "invalid command #{command}"
61
+ else raise CommandError, "invalid command #{command}"
60
62
  end
61
63
 
62
- rescue => e
64
+ rescue CommandError, NoSemVerError => e
63
65
  puts e.message
64
- puts e.backtrace
65
66
  puts "#{$0} help for more info"
66
67
  exit 1
67
68
  end
data/lib/semver.rb CHANGED
@@ -1,9 +1,11 @@
1
+ class NoSemVerError < StandardError; end
2
+
1
3
  class SemVer
2
4
 
3
5
  FILE_NAME = '.semver'
4
6
 
5
7
  def SemVer.find dir=nil
6
- v = SemVer.new
8
+ v = SemVer.new
7
9
  v.load
8
10
  v
9
11
  end
@@ -17,8 +19,9 @@ class SemVer
17
19
 
18
20
  loop do
19
21
 
20
- if Dir[FILE_NAME].empty?
21
- return nil if File.expand_path(path) == '/'
22
+ if File.dirname(File.expand_path(path)) == '/'
23
+ raise NoSemVerError, "#{dir} is not semantic versioned"
24
+ elsif Dir[FILE_NAME].empty?
22
25
  path = File.join '..', path
23
26
  next
24
27
  else
data/semver.gemspec CHANGED
@@ -4,7 +4,7 @@ Gem::Specification.new do |spec|
4
4
  spec.name = "semver"
5
5
  spec.version = SemVer.find.format '%M.%m.%p'
6
6
  spec.summary = "Semantic Versioning"
7
- spec.description = "maintain versions as per http://semver.rog"
7
+ spec.description = "maintain versions as per http://semver.org"
8
8
  spec.email = "flazzarino@gmail.com"
9
9
  spec.authors = ["Francesco Lazzarino"]
10
10
  spec.homepage = 'http://github.com/flazz/semver'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: semver
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Francesco Lazzarino
@@ -9,11 +9,11 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-02-13 00:00:00 -05:00
12
+ date: 2010-04-20 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
16
- description: maintain versions as per http://semver.rog
16
+ description: maintain versions as per http://semver.org
17
17
  email: flazzarino@gmail.com
18
18
  executables:
19
19
  - semver