resource_packer 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/resource_packer.rb +41 -0
  2. metadata +46 -0
@@ -0,0 +1,41 @@
1
+ require 'mime/types'
2
+
3
+ class ResourcePacker
4
+
5
+ def initialize
6
+ @out = ""
7
+ end
8
+
9
+ def add_file filename
10
+ mime_type = MIME::Types.type_for(filename)
11
+ name = filename.split("/").last
12
+ @out += encode [mime_type.last.to_s.length].pack("N")
13
+ @out += encode [mime_type.last].pack("A*")
14
+ @out += encode [name.length].pack("N")
15
+ @out += encode [name].pack("A*")
16
+ @out += encode [File.size(filename)].pack("N")
17
+ @out += encode File.read(filename)
18
+ end
19
+
20
+ def encode data
21
+ data.force_encoding("ASCII-8BIT")
22
+ end
23
+
24
+ def add_files files
25
+ files.each do filename
26
+ add_file filename
27
+ end
28
+ end
29
+
30
+ def add_dir home_dir
31
+ Dir.foreach( home_dir ) do |dir|
32
+ next if dir == "." || dir == ".."
33
+ add_file "#{home_dir}/#{dir}"
34
+ end
35
+ end
36
+
37
+ def pack
38
+ @out
39
+ end
40
+
41
+ end
metadata ADDED
@@ -0,0 +1,46 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: resource_packer
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Karim Mansour
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2015-02-28 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: A small resources packer between the server and the browser
15
+ email: senegalo@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/resource_packer.rb
21
+ homepage: https://github.com/senegalo/resource_packer
22
+ licenses:
23
+ - MIT
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ required_rubygems_version: !ruby/object:Gem::Requirement
35
+ none: false
36
+ requirements:
37
+ - - ! '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ requirements: []
41
+ rubyforge_project:
42
+ rubygems_version: 1.8.25
43
+ signing_key:
44
+ specification_version: 3
45
+ summary: Resource Packer
46
+ test_files: []