semver 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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