veewee-templates-updater 1.0.0

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