lablr 0.0.1
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.tar.gz.sig +0 -0
- data/Manifest +9 -0
- data/README.textile +37 -0
- data/Rakefile +12 -0
- data/assets/layouts/label.html.erb +8 -0
- data/assets/templates/_avery_5163.erb +41 -0
- data/init.rb +1 -0
- data/lablr-0.0.1.gemspec +35 -0
- data/lablr.gemspec +35 -0
- data/lib/lablr.rb +93 -0
- data/test.rb +9 -0
- metadata +119 -0
- metadata.gz.sig +0 -0
data.tar.gz.sig
ADDED
Binary file
|
data/Manifest
ADDED
data/README.textile
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
h1. Lablr
|
2
|
+
|
3
|
+
Lablr is a Ruby Gem for generating printable labels in a variety of formats(pdf, html, etc.) and templates.
|
4
|
+
|
5
|
+
h2. Supported Label Templates
|
6
|
+
|
7
|
+
The following templates are supported by Lablr:
|
8
|
+
|
9
|
+
* Avery 5163/5963
|
10
|
+
|
11
|
+
h2. Requirements
|
12
|
+
|
13
|
+
Lablr uses HTMLDOC and the htmldoc gem to generate pdf files. You need to install HTMLDOC like so:
|
14
|
+
|
15
|
+
<pre>
|
16
|
+
sudo apt-get install
|
17
|
+
</pre>
|
18
|
+
|
19
|
+
Then install the htmldoc gem:
|
20
|
+
<pre>
|
21
|
+
sudo gem install htmldoc
|
22
|
+
</pre>
|
23
|
+
|
24
|
+
h2. Installation
|
25
|
+
<pre>
|
26
|
+
gem install Lablr
|
27
|
+
</pre>
|
28
|
+
|
29
|
+
h2. Usage
|
30
|
+
|
31
|
+
<pre>
|
32
|
+
# Generate PDF Label Sheet
|
33
|
+
Lablr.generate_labels(:template => :avery_5163, :format => :pdf, :content => "Test Label!")
|
34
|
+
|
35
|
+
# Generate PDF and write to file
|
36
|
+
Lablr.generate_labels(:template => :avery_5163, :format => :pdf, :content => "Test Label!", :to_file => "x.pdf")
|
37
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
require 'echoe'
|
4
|
+
|
5
|
+
Echoe.new('lablr', '0.0.1') do |p|
|
6
|
+
p.description = "A Ruby Gem for generating printable labels in a variety of formats(pdf, html, etc.) and templates."
|
7
|
+
p.url = "https://github.com/hulihanapplications/Lablr"
|
8
|
+
p.author = "Hulihan Applications"
|
9
|
+
p.email = "dave@hulihanapplications.com"
|
10
|
+
p.ignore_pattern = ["tmp/*", "script/*"]
|
11
|
+
p.runtime_dependencies = ["htmldoc >=0.2.3"]
|
12
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
<%
|
2
|
+
options ||= Hash.new
|
3
|
+
options[:cell_width] ||= 320
|
4
|
+
options[:cell_height] ||= 172
|
5
|
+
options[:spacer_center_width] ||= 15
|
6
|
+
options[:title_1] ||= ""
|
7
|
+
options[:title_2] ||= ""
|
8
|
+
options[:title_3] ||= ""
|
9
|
+
options[:notes_1] ||= ""
|
10
|
+
options[:notes_2] ||= ""
|
11
|
+
options[:notes_3] ||= ""
|
12
|
+
options[:img] ||= ""
|
13
|
+
%>
|
14
|
+
<div class="sheet">
|
15
|
+
<table <%= self.style[:border] ? "border=1" : "border=0" %> align=center>
|
16
|
+
<% for i in (0..4) %>
|
17
|
+
<tr>
|
18
|
+
<!--
|
19
|
+
<td width=9>
|
20
|
+
|
21
|
+
</td>
|
22
|
+
-->
|
23
|
+
<td <%= "width=#{options[:cell_width]} height=#{options[:cell_height]}" %> valign=top>
|
24
|
+
<%#= "#{options[:cell_width]}x#{options[:cell_height]}" %>
|
25
|
+
<%= self.content %>
|
26
|
+
</td>
|
27
|
+
<td <%= "width=#{options[:spacer_center_width]}" %>>
|
28
|
+
|
29
|
+
</td>
|
30
|
+
<td <%= "width=#{options[:cell_width]} height=#{options[:cell_height]}" %> valign=top>
|
31
|
+
<%= self.content %>
|
32
|
+
</td>
|
33
|
+
<!--
|
34
|
+
<td width=9>
|
35
|
+
|
36
|
+
</td>
|
37
|
+
-->
|
38
|
+
</tr>
|
39
|
+
<% end %>
|
40
|
+
</table>
|
41
|
+
</div>
|
data/init.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "lablr.rb"
|
data/lablr-0.0.1.gemspec
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{lablr}
|
5
|
+
s.version = "0.0.1"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Hulihan Applications"]
|
9
|
+
s.cert_chain = ["/aqpwr/.ssl/gem/gem-public_cert.pem"]
|
10
|
+
s.date = %q{2010-11-22}
|
11
|
+
s.description = %q{A Ruby Gem for generating printable labels in a variety of formats(pdf, html, etc.) and templates.}
|
12
|
+
s.email = %q{dave@hulihanapplications.com}
|
13
|
+
s.extra_rdoc_files = ["README.textile", "lib/lablr.rb"]
|
14
|
+
s.files = ["README.textile", "Rakefile", "assets/layouts/label.html.erb", "assets/templates/_avery_5163.erb", "init.rb", "lablr-0.0.1.gemspec", "lib/lablr.rb", "test.rb", "Manifest", "lablr.gemspec"]
|
15
|
+
s.homepage = %q{https://github.com/hulihanapplications/Lablr}
|
16
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Lablr", "--main", "README.textile"]
|
17
|
+
s.require_paths = ["lib"]
|
18
|
+
s.rubyforge_project = %q{lablr}
|
19
|
+
s.rubygems_version = %q{1.3.7}
|
20
|
+
s.signing_key = %q{/aqpwr/.ssl/gem/gem-private_key.pem}
|
21
|
+
s.summary = %q{A Ruby Gem for generating printable labels in a variety of formats(pdf, html, etc.) and templates.}
|
22
|
+
|
23
|
+
if s.respond_to? :specification_version then
|
24
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
25
|
+
s.specification_version = 3
|
26
|
+
|
27
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
28
|
+
s.add_runtime_dependency(%q<htmldoc>, [">= 0.2.3"])
|
29
|
+
else
|
30
|
+
s.add_dependency(%q<htmldoc>, [">= 0.2.3"])
|
31
|
+
end
|
32
|
+
else
|
33
|
+
s.add_dependency(%q<htmldoc>, [">= 0.2.3"])
|
34
|
+
end
|
35
|
+
end
|
data/lablr.gemspec
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{lablr}
|
5
|
+
s.version = "0.0.1"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Hulihan Applications"]
|
9
|
+
s.cert_chain = ["/aqpwr/.ssl/gem/gem-public_cert.pem"]
|
10
|
+
s.date = %q{2010-11-22}
|
11
|
+
s.description = %q{A Ruby Gem for generating printable labels in a variety of formats(pdf, html, etc.) and templates.}
|
12
|
+
s.email = %q{dave@hulihanapplications.com}
|
13
|
+
s.extra_rdoc_files = ["README.textile", "lib/lablr.rb"]
|
14
|
+
s.files = ["README.textile", "Rakefile", "assets/layouts/label.html.erb", "assets/templates/_avery_5163.erb", "init.rb", "lablr-0.0.1.gemspec", "lib/lablr.rb", "test.rb", "Manifest", "lablr.gemspec"]
|
15
|
+
s.homepage = %q{https://github.com/hulihanapplications/Lablr}
|
16
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Lablr", "--main", "README.textile"]
|
17
|
+
s.require_paths = ["lib"]
|
18
|
+
s.rubyforge_project = %q{lablr}
|
19
|
+
s.rubygems_version = %q{1.3.7}
|
20
|
+
s.signing_key = %q{/aqpwr/.ssl/gem/gem-private_key.pem}
|
21
|
+
s.summary = %q{A Ruby Gem for generating printable labels in a variety of formats(pdf, html, etc.) and templates.}
|
22
|
+
|
23
|
+
if s.respond_to? :specification_version then
|
24
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
25
|
+
s.specification_version = 3
|
26
|
+
|
27
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
28
|
+
s.add_runtime_dependency(%q<htmldoc>, [">= 0.2.3"])
|
29
|
+
else
|
30
|
+
s.add_dependency(%q<htmldoc>, [">= 0.2.3"])
|
31
|
+
end
|
32
|
+
else
|
33
|
+
s.add_dependency(%q<htmldoc>, [">= 0.2.3"])
|
34
|
+
end
|
35
|
+
end
|
data/lib/lablr.rb
ADDED
@@ -0,0 +1,93 @@
|
|
1
|
+
require "htmldoc"
|
2
|
+
require "erb"
|
3
|
+
|
4
|
+
module Lablr
|
5
|
+
def self.GEM_ROOT
|
6
|
+
return File.join(File.dirname(File.join(__FILE__)), "..")
|
7
|
+
end
|
8
|
+
|
9
|
+
class Template # templates define label layout(with erb) and rendering
|
10
|
+
attr_accessor :erb, :name, :content, :style
|
11
|
+
#@erb_template = nil
|
12
|
+
#@name = nil
|
13
|
+
|
14
|
+
def initialize(options = {})
|
15
|
+
@erb = options[:erb] ||= nil
|
16
|
+
@name = options[:name] ||= nil
|
17
|
+
@content = options[:content] ||= "No Content Set"
|
18
|
+
@style = options[:style] ||= TemplateStyle.new
|
19
|
+
@erb = ERB.new(File.read(File.join(Lablr.GEM_ROOT, "assets", "templates", "_" + @name.to_s + ".erb")))
|
20
|
+
end
|
21
|
+
|
22
|
+
def getBinding # make binding accessible to pass into erb
|
23
|
+
return binding()
|
24
|
+
end
|
25
|
+
|
26
|
+
# You can Render this template by
|
27
|
+
end
|
28
|
+
|
29
|
+
class TemplateStyle # visual styles for Templates
|
30
|
+
attr_accessor :options
|
31
|
+
|
32
|
+
def initialize(options = {})
|
33
|
+
# Set defaults
|
34
|
+
options[:borders] = true if options[:borders].nil? # border around labels
|
35
|
+
|
36
|
+
@options = options
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.generate_labels(options = {})
|
41
|
+
options[:format] ||= :pdf
|
42
|
+
options[:template] ||= :avery_5163
|
43
|
+
options[:content] ||= "No Content Set"
|
44
|
+
options[:style] ||= TemplateStyle.new
|
45
|
+
options[:to_file] ||= nil # to a specific file
|
46
|
+
|
47
|
+
template = Lablr::Template.new(:name => options[:template].to_s, :content => options[:content], :style => options[:style])
|
48
|
+
rendered_template = template.erb.result(template.getBinding) # render erb template
|
49
|
+
#puts data
|
50
|
+
if options[:format] == :pdf
|
51
|
+
data = Lablr.render_to_pdf(rendered_template)
|
52
|
+
elsif options[:format] == :html
|
53
|
+
data = rendered_template
|
54
|
+
end
|
55
|
+
#puts rendered_template
|
56
|
+
if options[:to_file] # write to file
|
57
|
+
file = File.basename(options[:to_file], "." + options[:format].to_s) + "." + options[:format].to_s
|
58
|
+
File.open(file, "w"){|f| f.write(data)}
|
59
|
+
return "Labels written to #{File.basename(file)}"
|
60
|
+
else # return data
|
61
|
+
return data
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
def self.render_to_pdf(html) # create a pdf
|
68
|
+
#data = render_to_string(options)
|
69
|
+
pdf = PDF::HTMLDoc.new
|
70
|
+
pdf.set_option :bodycolor, :white
|
71
|
+
pdf.set_option :toc, false
|
72
|
+
pdf.set_option :portrait, true
|
73
|
+
pdf.set_option :links, false
|
74
|
+
pdf.set_option :webpage, true
|
75
|
+
pdf.set_option :top, '0cm'
|
76
|
+
pdf.set_option :left, '0cm'
|
77
|
+
pdf.set_option :right, '0cm'
|
78
|
+
pdf.set_option :bottom, '0cm'
|
79
|
+
pdf.footer ".1."
|
80
|
+
pdf << html
|
81
|
+
pdf.generate
|
82
|
+
end
|
83
|
+
|
84
|
+
module VERSION #:nodoc:
|
85
|
+
MAJOR = 0
|
86
|
+
MINOR = 0
|
87
|
+
TINY = 1
|
88
|
+
|
89
|
+
STRING = [MAJOR, MINOR, TINY].join(".")
|
90
|
+
end
|
91
|
+
|
92
|
+
|
93
|
+
end
|
data/test.rb
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
require "rubygems"
|
2
|
+
require "lablr"
|
3
|
+
|
4
|
+
#puts Lablr.GEM_ROOT
|
5
|
+
# template = Lablr::Template.new(:name => "avery_5163", :content => "Testing...")
|
6
|
+
#puts template.erb.result(template.getBinding)
|
7
|
+
|
8
|
+
#puts Lablr.generate_labels(:template => :avery_5163, :format => :pdf, :content => "Test Label!")
|
9
|
+
puts Lablr.generate_labels(:template => :avery_5163, :format => :pdf, :content => "Test Label!", :to_file => "x.pdf", :style => {:border => false})
|
metadata
ADDED
@@ -0,0 +1,119 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: lablr
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Hulihan Applications
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain:
|
17
|
+
- |
|
18
|
+
-----BEGIN CERTIFICATE-----
|
19
|
+
MIIDRjCCAi6gAwIBAgIBADANBgkqhkiG9w0BAQUFADBJMQ0wCwYDVQQDDARkYXZl
|
20
|
+
MSMwIQYKCZImiZPyLGQBGRYTaHVsaWhhbmFwcGxpY2F0aW9uczETMBEGCgmSJomT
|
21
|
+
8ixkARkWA2NvbTAeFw0xMDExMjIyMTUxMzNaFw0xMTExMjIyMTUxMzNaMEkxDTAL
|
22
|
+
BgNVBAMMBGRhdmUxIzAhBgoJkiaJk/IsZAEZFhNodWxpaGFuYXBwbGljYXRpb25z
|
23
|
+
MRMwEQYKCZImiZPyLGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
24
|
+
CgKCAQEAxNMbIxxvKYHyRV6qUmCMQQqY8+b4bFJ3k941sTxeDv0hNnfABz73wrHV
|
25
|
+
q1v0iUaNN7EgniQhH2hA0xmEIcHWWeJJ0eomYJbcWdR1Vmx3qr8OZf4bRhtcINOY
|
26
|
+
S/wBQ32vwwDnwpqbNT5SejwEzO5GhLThMwtEF8CkTCCNPIxa5JekTY5zLjUjGXHk
|
27
|
+
Wkxe2sHYoME2vGF2GBsMZcA0DdaNR5YfhMPpZ1BplUMKe4JFiOJvY/yxSPhQZLWk
|
28
|
+
ai3ZjeZ7V1gUq8cUucV//Fb64q2BqmfRAyb1aTKkZk039ynDQ6Nr8QGzfTmyEgcQ
|
29
|
+
1QgrtaBZ+Rgx0D2eOfqP5uVrpQeGNQIDAQABozkwNzAJBgNVHRMEAjAAMAsGA1Ud
|
30
|
+
DwQEAwIEsDAdBgNVHQ4EFgQU1dpUE4OmQ+15s1dn///kQpx9NlMwDQYJKoZIhvcN
|
31
|
+
AQEFBQADggEBAEHWCFdnW9OMbuIvJsCEHHG/4GDpxgVrzf+FEhnQ9c929wE6nbLN
|
32
|
+
9J5Aktbxw6GBBnNTUJr5NBz6xk31F9esUUxER+pN8UqFuOlGwDVxjvPzflUgD0A4
|
33
|
+
r7vlAKMk3trBD5nMIJKoW02RK2SElrjdjq8K/FMGcGIl1kXWs+lePPh9WE0iFL7D
|
34
|
+
R252y/PK8xRlA0qwJAz6BG78k8DJnkUNwgZI4FHrjIL1bnH9aJQBsVSYqrv+1Hgx
|
35
|
+
WCa1RP53Lsw2rCM/m9V8FUNo8ens2QC1LgDx44DgmnmziCXOVtTGFN8BOgWLeu7A
|
36
|
+
b2yC21SpXEO7VfhMU2RwQVMVJ9x87DpKoko=
|
37
|
+
-----END CERTIFICATE-----
|
38
|
+
|
39
|
+
date: 2010-11-22 00:00:00 -07:00
|
40
|
+
default_executable:
|
41
|
+
dependencies:
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: htmldoc
|
44
|
+
prerelease: false
|
45
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
46
|
+
none: false
|
47
|
+
requirements:
|
48
|
+
- - ">="
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
hash: 17
|
51
|
+
segments:
|
52
|
+
- 0
|
53
|
+
- 2
|
54
|
+
- 3
|
55
|
+
version: 0.2.3
|
56
|
+
type: :runtime
|
57
|
+
version_requirements: *id001
|
58
|
+
description: A Ruby Gem for generating printable labels in a variety of formats(pdf, html, etc.) and templates.
|
59
|
+
email: dave@hulihanapplications.com
|
60
|
+
executables: []
|
61
|
+
|
62
|
+
extensions: []
|
63
|
+
|
64
|
+
extra_rdoc_files:
|
65
|
+
- README.textile
|
66
|
+
- lib/lablr.rb
|
67
|
+
files:
|
68
|
+
- README.textile
|
69
|
+
- Rakefile
|
70
|
+
- assets/layouts/label.html.erb
|
71
|
+
- assets/templates/_avery_5163.erb
|
72
|
+
- init.rb
|
73
|
+
- lablr-0.0.1.gemspec
|
74
|
+
- lib/lablr.rb
|
75
|
+
- test.rb
|
76
|
+
- Manifest
|
77
|
+
- lablr.gemspec
|
78
|
+
has_rdoc: true
|
79
|
+
homepage: https://github.com/hulihanapplications/Lablr
|
80
|
+
licenses: []
|
81
|
+
|
82
|
+
post_install_message:
|
83
|
+
rdoc_options:
|
84
|
+
- --line-numbers
|
85
|
+
- --inline-source
|
86
|
+
- --title
|
87
|
+
- Lablr
|
88
|
+
- --main
|
89
|
+
- README.textile
|
90
|
+
require_paths:
|
91
|
+
- lib
|
92
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
93
|
+
none: false
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
hash: 3
|
98
|
+
segments:
|
99
|
+
- 0
|
100
|
+
version: "0"
|
101
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
102
|
+
none: false
|
103
|
+
requirements:
|
104
|
+
- - ">="
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
hash: 11
|
107
|
+
segments:
|
108
|
+
- 1
|
109
|
+
- 2
|
110
|
+
version: "1.2"
|
111
|
+
requirements: []
|
112
|
+
|
113
|
+
rubyforge_project: lablr
|
114
|
+
rubygems_version: 1.3.7
|
115
|
+
signing_key:
|
116
|
+
specification_version: 3
|
117
|
+
summary: A Ruby Gem for generating printable labels in a variety of formats(pdf, html, etc.) and templates.
|
118
|
+
test_files: []
|
119
|
+
|
metadata.gz.sig
ADDED
Binary file
|