bowie 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a93c5966ff401a6ac099e9192367aa9e26d625dd
4
- data.tar.gz: ccb727e7ce5aa2bfbda88994ab303c2c11995b43
3
+ metadata.gz: 8c182a6f7349ab0663779585067e40a2aab576b3
4
+ data.tar.gz: e56ac3de3987bf09947200d3e6b8cc81466639c6
5
5
  SHA512:
6
- metadata.gz: bfcfe4277d62a487aef6026d8f8b622959b911a2b267b5d178a6e4babe4cc8fbd5d38f2047a777805896291b5dfec5e4dc00a98203acb9a0ed10e49c156255f6
7
- data.tar.gz: b2625bc045740b78d6eeb40ad04d755d5d7900efded6c65b700c0904313fdbf3ded3ebf921cf650ddf7cb24ef1bfc4f6d62b704ae6eaffb128a80d956ba33b3f
6
+ metadata.gz: f7f3cf3b0cc084f746f9701290d20cb618542edb7e940c995457aaf51497f334435ce264907a31c4e62bef93c9f4fef6a1bf8fd3be2634c64eafc750fd584896
7
+ data.tar.gz: 9d0dfaddf0102d2385b7f9354bf8f07d265fca280945934341eb73c2a159f62c100edefec835e55108b60fe9697f5c299acc24c1d818250ccb53d5c7bfbbaa63
@@ -1,10 +1,11 @@
1
1
  require "bowie/version"
2
- require "bowie/utils"
3
2
  require "yaml"
4
3
  require "open-uri"
5
4
  require "fileutils"
6
5
  require "git"
7
6
  require "logger"
7
+ require "bowie/utils"
8
+ require "bowie/semver"
8
9
 
9
10
  module Bowie
10
11
 
@@ -0,0 +1,85 @@
1
+ class Semver
2
+ include Comparable
3
+
4
+ attr_reader :major, :minor, :patch
5
+
6
+ def initialize *s
7
+ case s.length
8
+ when 0
9
+ @major = 0
10
+ @minor = 0
11
+ @patch = 0
12
+ when 1
13
+ if valid? s[0]
14
+ v = (parse_version s[0]).split '.'
15
+ @major = Integer v[0]
16
+ @minor = Integer v[1]
17
+ @patch = Integer v[2]
18
+ else
19
+ p 'error'
20
+ end
21
+ else
22
+ p 'error'
23
+ end
24
+ end
25
+
26
+ def to_s opts = {}
27
+ opts[:v]? "v#{@major}.#{minor}.#{patch}" : "#{@major}.#{minor}.#{patch}"
28
+ end
29
+
30
+ def bump *type
31
+ case type.length
32
+ when 0
33
+ @patch = @patch + 1
34
+ when 1
35
+ case type[0]
36
+ when :major
37
+ @major = @major + 1
38
+ when :minor
39
+ @minor = @minor + 1
40
+ when :patch
41
+ @patch = @patch + 1
42
+ else
43
+ p 'error'
44
+ end
45
+ else
46
+ p 'error'
47
+ end
48
+ end
49
+
50
+ def <=>(other)
51
+ case self.major <=> other.major
52
+ when 1
53
+ return 1
54
+ when -1
55
+ return -1
56
+ when 0
57
+ case self.minor <=> other.minor
58
+ when 1
59
+ return 1
60
+ when -1
61
+ return -1
62
+ when 0
63
+ case self.patch <=> other.patch
64
+ when 1
65
+ return 1
66
+ when -1
67
+ return -1
68
+ when 0
69
+ return 0
70
+ end
71
+ end
72
+ end
73
+ end
74
+
75
+ private
76
+ # read a version string in the form x.x.x or vx.x.x and always return it in the form x.x.x
77
+ def parse_version(string)
78
+ string[0] == "v" ? string[1..-1] : string
79
+ end
80
+
81
+ # return true if [string] is a valid semantic version in the form x.x.x or vx.x.x
82
+ def valid?(string)
83
+ (/^v?\d+.\d+.\d+$/ =~ string)? true : false
84
+ end
85
+ end
@@ -12,5 +12,15 @@ module Bowie
12
12
  result
13
13
  end
14
14
 
15
+ # Parse the name of a package in the form name#version
16
+ def self.parse_song_name(s)
17
+ s.split("#")[0]
18
+ end
19
+
20
+ # Parse the version of a package in the form name#version
21
+ def self.parse_song_version(s)
22
+ s.split("#")[1]
23
+ end
24
+
15
25
  end
16
26
  end
@@ -1,3 +1,3 @@
1
1
  module Bowie
2
- VERSION = "0.3.1"
2
+ VERSION = "0.3.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bowie
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrea Moretti
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-11 00:00:00.000000000 Z
11
+ date: 2013-11-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -82,6 +82,7 @@ files:
82
82
  - bin/bowie
83
83
  - bowie.gemspec
84
84
  - lib/bowie.rb
85
+ - lib/bowie/semver.rb
85
86
  - lib/bowie/utils.rb
86
87
  - lib/bowie/version.rb
87
88
  homepage: http://axyz.github.io/bowie/