bowie 0.3.2 → 0.3.3

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: 8c182a6f7349ab0663779585067e40a2aab576b3
4
- data.tar.gz: e56ac3de3987bf09947200d3e6b8cc81466639c6
3
+ metadata.gz: 2a1627386c87e3785efd62c3c32e9a2e05a89863
4
+ data.tar.gz: 961ca9b6ee29c6a7db3ce15a50741119b83985b2
5
5
  SHA512:
6
- metadata.gz: f7f3cf3b0cc084f746f9701290d20cb618542edb7e940c995457aaf51497f334435ce264907a31c4e62bef93c9f4fef6a1bf8fd3be2634c64eafc750fd584896
7
- data.tar.gz: 9d0dfaddf0102d2385b7f9354bf8f07d265fca280945934341eb73c2a159f62c100edefec835e55108b60fe9697f5c299acc24c1d818250ccb53d5c7bfbbaa63
6
+ metadata.gz: 2b17b0c8664ad75cf4b12ca14b3a5799096e4f35382530075ea8be0d2fa50f4e0d388e844ae0800466171a071a3330cc1e400aa8433435b1fc2a7eeb0eb07eda
7
+ data.tar.gz: 15b9cac6ae41dca43c96b1c60c882c3cb2f1c4c8fe2fe009758c986938ed8c082151ce984608113def20924d444fafd2c90d09f305d0f252920f61af737dfc89
@@ -8,10 +8,6 @@ require "bowie/utils"
8
8
  require "bowie/semver"
9
9
 
10
10
  module Bowie
11
-
12
- @songs
13
- @local_songs
14
- @local_lyrics
15
11
 
16
12
  # Retrive the online registry of available songs
17
13
  def self.get_songs
@@ -63,15 +59,31 @@ module Bowie
63
59
 
64
60
  if songs.length > 0
65
61
  songs.each do |song|
66
- name = @songs[song]['name']
67
- url = @songs[song]['url']
62
+ name = Utils.parse_song_name song
63
+ version = Semver.new(Utils.parse_song_version song)
64
+ url = @songs[name]['url']
68
65
  path = "bowie_songs/#{name}"
69
66
 
70
- FileUtils.mkdir_p(path)
71
- Git.clone(url, path)
67
+ if File.directory? path
68
+ self.update(name)
69
+ else
70
+ FileUtils.mkdir_p(path)
71
+ Git.clone(url, path)
72
+ if version.major != nil
73
+ g = Git.open(path)
74
+ begin
75
+ g.checkout(version.to_s)
76
+ rescue
77
+ begin
78
+ g.checkout(version.to_s :v => true)
79
+ rescue
80
+ end
81
+ end
82
+ end
83
+ end
72
84
 
73
- unless @local_songs.include? song
74
- @local_songs.push song
85
+ unless @local_songs.include? name or @local_songs.include? name+'#'+version.to_s
86
+ version.major ? @local_songs.push(name+'#'+version.to_s) : @local_songs.push(name)
75
87
  end
76
88
  File.open("songs.yml", "w"){|f| YAML.dump(@local_songs, f)}
77
89
  end
@@ -86,12 +98,17 @@ module Bowie
86
98
  @local_songs = self.get_local_songs
87
99
 
88
100
  songs.each do |song|
89
- name = @songs[song]['name']
101
+ name = Utils.parse_song_name song
102
+ version = Semver.new(Utils.parse_song_version song)
90
103
  path = "bowie_songs/#{name}"
91
104
 
92
105
  FileUtils.rm_rf(path) # use remove_entry_secure for security reasons?
93
106
 
94
- @local_songs.delete song
107
+ if version.major != nil
108
+ @local_songs.delete "#{name}##{version}"
109
+ else
110
+ @local_songs.delete_if {|el| not (el =~ /^#{name}#/).nil?}
111
+ end
95
112
  File.open("songs.yml", "w"){|f| YAML.dump(@local_songs, f)}
96
113
  end
97
114
  end
@@ -103,12 +120,27 @@ module Bowie
103
120
 
104
121
  if songs.length > 0
105
122
  songs.each do |song|
106
- name = @songs[song]['name']
123
+ name = Utils.parse_song_name song
124
+ version = Semver.new(Utils.parse_song_version song)
107
125
  path = "bowie_songs/#{name}"
108
126
 
109
127
  g = Git.open(path, :log => Logger.new(STDOUT))
110
128
  g.reset_hard('HEAD')
111
129
  g.pull
130
+ unless version.major.nil?
131
+ begin
132
+ g.checkout(version.to_s)
133
+ rescue
134
+ begin
135
+ g.checkout(version.to_s :v => true)
136
+ rescue
137
+ end
138
+ end
139
+ end
140
+ @local_songs.delete name
141
+ @local_songs.delete_if {|el| not (el =~ /^#{name}#/).nil?}
142
+ version.major ? @local_songs.push(name+'#'+version.to_s) : @local_songs.push(name)
143
+ File.open("songs.yml", "w"){|f| YAML.dump(@local_songs, f)}
112
144
  end
113
145
  else
114
146
  @local_songs.each {|song| self.update(song)}
@@ -16,15 +16,19 @@ class Semver
16
16
  @minor = Integer v[1]
17
17
  @patch = Integer v[2]
18
18
  else
19
- p 'error'
19
+ false
20
20
  end
21
21
  else
22
- p 'error'
22
+ false
23
23
  end
24
24
  end
25
25
 
26
26
  def to_s opts = {}
27
- opts[:v]? "v#{@major}.#{minor}.#{patch}" : "#{@major}.#{minor}.#{patch}"
27
+ if(@major.nil? or @minor.nil? or patch.nil?)
28
+ return ""
29
+ else
30
+ opts[:v]? "v#{@major}.#{@minor}.#{@patch}" : "#{@major}.#{@minor}.#{@patch}"
31
+ end
28
32
  end
29
33
 
30
34
  def bump *type
@@ -1,3 +1,5 @@
1
+ require "git"
2
+
1
3
  module Bowie
2
4
  module Utils
3
5
 
@@ -22,5 +24,14 @@ module Bowie
22
24
  s.split("#")[1]
23
25
  end
24
26
 
27
+ def self.get_git_tags(path)
28
+ result = Array.new
29
+ g = Git.open(path)
30
+ g.tags.each do |tag|
31
+ result.push tag.name
32
+ end
33
+ return result
34
+ end
35
+
25
36
  end
26
37
  end
@@ -1,3 +1,3 @@
1
1
  module Bowie
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.3"
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.2
4
+ version: 0.3.3
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-12 00:00:00.000000000 Z
11
+ date: 2013-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler