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 +1 -0
- data/CHANGELOG.md +6 -0
- data/README.md +29 -0
- data/bin/veewee-templates-update +5 -0
- data/lib/veewee-templates-updater.rb +64 -0
- data/veewee-templates-updater.gemspec +21 -0
- metadata +113 -0
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
*.gem
|
data/CHANGELOG.md
ADDED
data/README.md
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
[](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,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
|
+
|