veewee-templates-updater 1.0.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.
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ *.gem
data/CHANGELOG.md ADDED
@@ -0,0 +1,6 @@
1
+ # Changelog
2
+
3
+ ## 1.0.0
4
+ date: 2012-05-23
5
+
6
+ - initial release
data/README.md ADDED
@@ -0,0 +1,29 @@
1
+ [![Dependency Status](https://gemnasium.com/mpapis/veewee-templates-updater.png)](https://gemnasium.com/mpapis/veewee-templates-updater)
2
+
3
+ # Veewee templates updater
4
+
5
+ Easily update templates in the installed veewee gem.
6
+
7
+ ## Installation
8
+
9
+ gem install veewee-templates-updater
10
+
11
+ ## Usage
12
+
13
+ veewee-templates-update
14
+
15
+ ## Uninstallation
16
+
17
+ gem uninstall veewee-templates-updater
18
+
19
+ ## TODO
20
+
21
+ - Add tests
22
+
23
+ ## Development / Testing
24
+
25
+ Fork, clone, edit, test `ruby -Ilib/ bin/veewee-templates-update`, commit, push, open a pull request.
26
+
27
+ ## Author
28
+
29
+ - Michal Papis <mpapis@gmail.com>
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'veewee-templates-updater'
4
+
5
+ VeeweeTemplatesUpdater.new.run
@@ -0,0 +1,64 @@
1
+ require 'archive/tar/minitar'
2
+ require 'fileutils'
3
+ require 'open-uri'
4
+ require 'zlib'
5
+
6
+ class VeeweeTemplatesUpdater
7
+ def veewee_spec
8
+ @veewee_spec ||=
9
+ if Gem::Specification.respond_to?(:find_by_name)
10
+ Gem::Specification.find_by_name("veewee")
11
+ else
12
+ Gem.source_index.find_name("veewee").last
13
+ end
14
+ end
15
+
16
+ def veewee_target(source)
17
+ # Remove the github project dir name it contains sha
18
+ source.gsub!(/^[^\/]*\//,"")
19
+ # Build path to local file/dir
20
+ File.join(veewee_spec.full_gem_path,source)
21
+ end
22
+
23
+ def veewee_tarball_url
24
+ "https://github.com/jedi4ever/veewee/tarball/master"
25
+ end
26
+
27
+ def handle_entry(entry)
28
+ if entry.file?
29
+ File.open(veewee_target(entry.name),"w") do |target|
30
+ while body = entry.read
31
+ target.write(body)
32
+ end
33
+ end
34
+ else
35
+ FileUtils.mkdir_p veewee_target(entry.name)
36
+ end
37
+ end
38
+
39
+ def parse_archive res
40
+ printf "Extracting: "
41
+ Zlib::GzipReader.open(res.path) do |tgz|
42
+ last_entry_name = ""
43
+ Archive::Tar::Minitar::Reader.open(tgz).each do |entry|
44
+ # handle only templates
45
+ next unless entry.name =~ /^[^\/]*\/templates\/([^\/]*)\/.*$/
46
+ # print name of template only for first path found
47
+ printf "#{$1} " if last_entry_name != $1
48
+ last_entry_name = $1
49
+ # mkdir / unpack
50
+ handle_entry entry
51
+ end
52
+ end
53
+ printf "\n"
54
+ end
55
+
56
+ def run
57
+ veewee_spec || raise("Could not find veewee gem, install it first.")
58
+ puts "Veewee: #{veewee_spec.full_gem_path}"
59
+ puts "Downloading: #{veewee_tarball_url}"
60
+ open(veewee_tarball_url) do |res|
61
+ parse_archive res
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- encoding: utf-8 -*-
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "veewee-templates-updater"
6
+ s.version = "1.0.0"
7
+ s.author = "Michal Papis"
8
+ s.email = "mpapis@gmail.com"
9
+ s.homepage = "https://github.com/mpapis/veewee-templates-updater"
10
+ s.summary =
11
+ s.description = %q{Veewee templates updater. Easily update templates in the installed veewee gem.}
12
+
13
+ s.files = `git ls-files`.split("\n")
14
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
15
+ s.executables = %w( veewee-templates-update )
16
+
17
+ s.add_dependency "veewee", ">= 0.2.3"
18
+ s.add_dependency "archive-tar-minitar"
19
+
20
+ s.add_development_dependency "dtf"
21
+ end
metadata ADDED
@@ -0,0 +1,113 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: veewee-templates-updater
3
+ version: !ruby/object:Gem::Version
4
+ hash: 23
5
+ prerelease:
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 0
10
+ version: 1.0.0
11
+ platform: ruby
12
+ authors:
13
+ - Michal Papis
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2012-05-23 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: veewee
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 17
29
+ segments:
30
+ - 0
31
+ - 2
32
+ - 3
33
+ version: 0.2.3
34
+ type: :runtime
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ name: archive-tar-minitar
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ hash: 3
45
+ segments:
46
+ - 0
47
+ version: "0"
48
+ type: :runtime
49
+ version_requirements: *id002
50
+ - !ruby/object:Gem::Dependency
51
+ name: dtf
52
+ prerelease: false
53
+ requirement: &id003 !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ hash: 3
59
+ segments:
60
+ - 0
61
+ version: "0"
62
+ type: :development
63
+ version_requirements: *id003
64
+ description: Veewee templates updater. Easily update templates in the installed veewee gem.
65
+ email: mpapis@gmail.com
66
+ executables:
67
+ - veewee-templates-update
68
+ extensions: []
69
+
70
+ extra_rdoc_files: []
71
+
72
+ files:
73
+ - .gitignore
74
+ - CHANGELOG.md
75
+ - README.md
76
+ - bin/veewee-templates-update
77
+ - lib/veewee-templates-updater.rb
78
+ - veewee-templates-updater.gemspec
79
+ homepage: https://github.com/mpapis/veewee-templates-updater
80
+ licenses: []
81
+
82
+ post_install_message:
83
+ rdoc_options: []
84
+
85
+ require_paths:
86
+ - lib
87
+ required_ruby_version: !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ hash: 3
93
+ segments:
94
+ - 0
95
+ version: "0"
96
+ required_rubygems_version: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ hash: 3
102
+ segments:
103
+ - 0
104
+ version: "0"
105
+ requirements: []
106
+
107
+ rubyforge_project:
108
+ rubygems_version: 1.8.24
109
+ signing_key:
110
+ specification_version: 3
111
+ summary: Veewee templates updater. Easily update templates in the installed veewee gem.
112
+ test_files: []
113
+