labels 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,144 @@
1
+ # A RubyGem for creating mailing, shipping, address, barcode and other labels and rendering as PDF's.
2
+ #
3
+ # Author:: Aaron Wright (mailto:acwrightdesign@gmail.com)
4
+ # Copyright:: Copyright (c) 2012 Infinite Token LLC
5
+ # License:: MIT License
6
+
7
+ require 'nokogiri'
8
+
9
+ module Labels
10
+ module XML
11
+
12
+ # This class builds an XML representation of the given Labels::Document
13
+ class Builder
14
+
15
+ # The document instance
16
+ attr_accessor :document
17
+
18
+ # Creates a new Labels::XML::Builder instance
19
+ def initialize(document=nil)
20
+ @document = document
21
+ end
22
+
23
+ # Returns the XML document
24
+ def xml
25
+ unless @document.nil?
26
+ builder = Nokogiri::XML::Builder.new do |xml|
27
+ xml.doc.create_internal_subset(
28
+ 'label',
29
+ nil,
30
+ 'label.dtd'
31
+ )
32
+ xml.label {
33
+ xml.paper(
34
+ :title => @document.paper.title) {
35
+ xml.width @document.paper.width
36
+ xml.height @document.paper.height
37
+ }
38
+ xml.template(
39
+ :title => @document.template.title,
40
+ :description => @document.template.description,
41
+ :manufacturer => @document.template.manufacturer,
42
+ :category => @document.template.category,
43
+ :visible => @document.template.visible) {
44
+ xml.width @document.template.width
45
+ xml.height @document.template.height
46
+ xml.columns @document.template.columns
47
+ xml.rows @document.template.rows
48
+ xml.send(:'left-margin', @document.template.left_margin)
49
+ xml.send(:'right-margin', @document.template.right_margin)
50
+ xml.send(:'top-margin', @document.template.top_margin)
51
+ xml.send(:'bottom-margin', @document.template.bottom_margin)
52
+ xml.send(:'horizontal-gutter', @document.template.horizontal_gutter)
53
+ xml.send(:'vertical-gutter', @document.template.vertical_gutter)
54
+ xml.elliptical @document.template.elliptical ? 'true' : 'false'
55
+ xml.send(:'corner-radius', @document.template.corner_radius)
56
+ }
57
+ xml.layers {
58
+ @document.layers.each do |layer|
59
+ xml.layer(
60
+ :title => layer.title,
61
+ :type => layer.type,
62
+ :locked => layer.locked,
63
+ :visible => layer.visible,
64
+ :resizable => layer.resizable) {
65
+ xml.x layer.x
66
+ xml.y layer.y
67
+ xml.z layer.z
68
+ xml.width layer.width
69
+ xml.height layer.height
70
+ xml.alpha layer.alpha
71
+ xml.rotation layer.rotation
72
+ xml.content layer.content
73
+
74
+ case layer.type
75
+ when 'shape'
76
+ xml.elliptical layer.elliptical ? 'true' : 'false'
77
+ xml.send(:'corner-radius', layer.corner_radius)
78
+ xml.fill layer.fill ? 'true' : 'false'
79
+ xml.stroke layer.stroke ? 'true' : 'false'
80
+ xml.send(:'fill-color', layer.fill_color)
81
+ xml.send(:'stroke-color', layer.stroke_color)
82
+ xml.send(:'stroke-weight', layer.stroke_color)
83
+ when 'text'
84
+ xml.send(:'font-family', layer.font_family)
85
+ xml.send(:'font-size', layer.font_size)
86
+ xml.send(:'font-color', layer.font_color)
87
+ xml.bold layer.bold ? 'true' : 'false'
88
+ xml.italic layer.italic ? 'true' : 'false'
89
+ xml.underline layer.underline ? 'true' : 'false'
90
+ xml.justification layer.justification
91
+ when 'image'
92
+ xml.fit layer.fit ? 'true' : 'false'
93
+ xml.stretch layer.stretch ? 'true' : 'false'
94
+ when 'barcode'
95
+ xml.symbology layer.symbology
96
+ xml.send(:'bar-width', layer.bar_width)
97
+ xml.send(:'bar-height', layer.bar_height)
98
+ xml.send(:'color', layer.color)
99
+ xml.send(:'caption-height', layer.caption_height)
100
+ xml.send(:'caption-size', layer.caption_size)
101
+ xml.captioned layer.captioned ? 'true' : 'false'
102
+ when 'date'
103
+ xml.send(:'font-family', layer.font_family)
104
+ xml.send(:'font-size', layer.font_size)
105
+ xml.send(:'font-color', layer.font_color)
106
+ xml.bold layer.bold ? 'true' : 'false'
107
+ xml.italic layer.italic ? 'true' : 'false'
108
+ xml.underline layer.underline ? 'true' : 'false'
109
+ xml.justification layer.justification
110
+ xml.format layer.format
111
+ end
112
+ }
113
+ end
114
+ }
115
+ xml.data {
116
+ @document.data.each do |item|
117
+ xml.item {
118
+ item.each do |key, value|
119
+ case value
120
+ when Fixnum
121
+ xml.key value, :name => key, :type => 'integer'
122
+ when Float
123
+ xml.key value, :name => key, :type => 'float'
124
+ when Time
125
+ xml.key value.iso8601, :name => key, :type => 'date'
126
+ when TrueClass
127
+ xml.key 'true', :name => key, :type => 'boolean'
128
+ when FalseClass
129
+ xml.key 'false', :name => key, :type => 'boolean'
130
+ else
131
+ xml.key value, :name => key, :type => 'string'
132
+ end
133
+ end
134
+ }
135
+ end
136
+ }
137
+ }
138
+ end
139
+ builder.to_xml
140
+ end
141
+ end
142
+ end
143
+ end
144
+ end
@@ -0,0 +1,163 @@
1
+ # A RubyGem for creating mailing, shipping, address, barcode and other labels and rendering as PDF's.
2
+ #
3
+ # Author:: Aaron Wright (mailto:acwrightdesign@gmail.com)
4
+ # Copyright:: Copyright (c) 2012 Infinite Token LLC
5
+ # License:: MIT License
6
+
7
+ require 'time'
8
+ require 'nokogiri'
9
+
10
+ require 'core_ext/string'
11
+
12
+ require 'labels/document'
13
+ require 'labels/paper'
14
+ require 'labels/template'
15
+ require 'labels/shape'
16
+ require 'labels/text'
17
+ require 'labels/image'
18
+ require 'labels/barcode'
19
+ require 'labels/date'
20
+
21
+ module Labels
22
+ module XML
23
+
24
+ # This class parses a Labels XML document and creates a returns an
25
+ # instantiated Labels::Document instance from the XML
26
+ class Parser
27
+ class << self
28
+
29
+ # Parses the provided XML into a Labels::Document instance
30
+ def parse(xml)
31
+ doc = Nokogiri::XML(xml)
32
+
33
+ if doc.nil? || doc.root.nil?
34
+ return nil
35
+ end
36
+
37
+ root_node = doc.root
38
+ paper_node = root_node.at_xpath('paper')
39
+ template_node = root_node.at_xpath('template')
40
+ layer_nodes = root_node.xpath('layers/layer')
41
+ item_nodes = root_node.xpath('data/item')
42
+
43
+ unless paper_node.nil?
44
+ paper = Labels::Paper.new({
45
+ :title => paper_node['title'],
46
+ :width => (paper_node.at_xpath('width').text.to_f unless paper_node.at_xpath('width').nil?),
47
+ :height => (paper_node.at_xpath('height').text.to_f unless paper_node.at_xpath('height').nil?)
48
+ })
49
+ end
50
+
51
+ unless template_node.nil?
52
+ template = Labels::Template.new({
53
+ :title => template_node['title'],
54
+ :description => template_node['description'],
55
+ :manufacturer => template_node['manufacturer'],
56
+ :category => template_node['category'],
57
+ :visible => template_node['visible'].to_bool,
58
+ :width => (template_node.at_xpath('width').text.to_f unless template_node.at_xpath('width').nil?),
59
+ :height => (template_node.at_xpath('height').text.to_f unless template_node.at_xpath('height').nil?),
60
+ :columns => (template_node.at_xpath('columns').text.to_i unless template_node.at_xpath('columns').nil?),
61
+ :rows => (template_node.at_xpath('rows').text.to_i unless template_node.at_xpath('rows').nil?),
62
+ :left_margin => (template_node.at_xpath('left-margin').text.to_f unless template_node.at_xpath('left-margin').nil?),
63
+ :right_margin => (template_node.at_xpath('right-margin').text.to_f unless template_node.at_xpath('right-margin').nil?),
64
+ :top_margin => (template_node.at_xpath('top-margin').text.to_f unless template_node.at_xpath('top-margin').nil?),
65
+ :bottom_margin => (template_node.at_xpath('bottom-margin').text.to_f unless template_node.at_xpath('bottom-margin').nil?),
66
+ :horizontal_gutter => (template_node.at_xpath('horizontal-gutter').text.to_f unless template_node.at_xpath('horizontal-gutter').nil?),
67
+ :vertical_gutter => (template_node.at_xpath('vertical-gutter').text.to_f unless template_node.at_xpath('vertical-gutter').nil?),
68
+ :elliptical => (template_node.at_xpath('elliptical').text.to_bool unless template_node.at_xpath('elliptical').nil?),
69
+ :corner_radius => (template_node.at_xpath('corner-radius').text.to_f unless template_node.at_xpath('corner-radius').nil?)
70
+ })
71
+ end
72
+
73
+ unless layer_nodes.nil?
74
+ layers = []
75
+ layer_nodes.each do |layer_node|
76
+ layer_type = layer_node['type']
77
+
78
+ case layer_type
79
+ when 'shape'
80
+ layer = Labels::Shape.new({
81
+ :corner_radius => (layer_node.at_xpath('corner-radius').text.to_f unless layer_node.at_xpath('corner-radius').nil?),
82
+ :elliptical => (layer_node.at_xpath('elliptical').text.to_bool unless layer_node.at_xpath('elliptical').nil?),
83
+ :fill => (layer_node.at_xpath('fill').text.to_bool unless layer_node.at_xpath('fill').nil?),
84
+ :stroke => (layer_node.at_xpath('stroke').text.to_bool unless layer_node.at_xpath('stroke').nil?),
85
+ :fill_color => (layer_node.at_xpath('fill-color').text unless layer_node.at_xpath('fill-color').nil?),
86
+ :stroke_color => (layer_node.at_xpath('stroke-color').text unless layer_node.at_xpath('stroke-color').nil?),
87
+ :stroke_weight => (layer_node.at_xpath('stroke-weight').text.to_f unless layer_node.at_xpath('stroke-weight').nil?)
88
+ })
89
+ when 'text'
90
+ layer = Labels::Text.new({
91
+ :font_family => (layer_node.at_xpath('font-family').text unless layer_node.at_xpath('font-family').nil?),
92
+ :font_size => (layer_node.at_xpath('font-size').text.to_f unless layer_node.at_xpath('font-size').nil?),
93
+ :font_color => (layer_node.at_xpath('font-color').text unless layer_node.at_xpath('font-color').nil?),
94
+ :bold => (layer_node.at_xpath('bold').text.to_bool unless layer_node.at_xpath('bold').nil?),
95
+ :italic => (layer_node.at_xpath('italic').text.to_bool unless layer_node.at_xpath('italic').nil?),
96
+ :underline => (layer_node.at_xpath('underline').text.to_bool unless layer_node.at_xpath('underline').nil?),
97
+ :justification => (layer_node.at_xpath('justification').text unless layer_node.at_xpath('justification').nil?)
98
+ })
99
+ when 'image'
100
+ layer = Labels::Image.new({
101
+ :fit => (layer_node.at_xpath('fit').text.to_bool unless layer_node.at_xpath('fit').nil?),
102
+ :stretch => (layer_node.at_xpath('stretch').text.to_bool unless layer_node.at_xpath('stretch').nil?),
103
+ })
104
+ when 'barcode'
105
+ layer = Labels::Barcode.new({
106
+ :symbology => (layer_node.at_xpath('symbology').text unless layer_node.at_xpath('symbology').nil?),
107
+ :bar_width => (layer_node.at_xpath('bar-width').text.to_i unless layer_node.at_xpath('bar-width').nil?),
108
+ :bar_height => (layer_node.at_xpath('bar-height').text.to_i unless layer_node.at_xpath('bar-height').nil?),
109
+ :color => (layer_node.at_xpath('color').text unless layer_node.at_xpath('color').nil?),
110
+ :caption_height => (layer_node.at_xpath('caption-height').text.to_i unless layer_node.at_xpath('caption-height').nil?),
111
+ :caption_size => (layer_node.at_xpath('caption-size').text.to_i unless layer_node.at_xpath('caption-size').nil?),
112
+ :captioned => (layer_node.at_xpath('captioned').text.to_bool unless layer_node.at_xpath('captioned').nil?),
113
+ })
114
+ when 'date'
115
+ layer = Labels::Date.new({
116
+ :font_family => (layer_node.at_xpath('font-family').text unless layer_node.at_xpath('font-family').nil?),
117
+ :font_size => (layer_node.at_xpath('font-size').text.to_f unless layer_node.at_xpath('font-size').nil?),
118
+ :font_color => (layer_node.at_xpath('font-color').text unless layer_node.at_xpath('font-color').nil?),
119
+ :bold => (layer_node.at_xpath('bold').text.to_bool unless layer_node.at_xpath('bold').nil?),
120
+ :italic => (layer_node.at_xpath('italic').text.to_bool unless layer_node.at_xpath('italic').nil?),
121
+ :underline => (layer_node.at_xpath('underline').text.to_bool unless layer_node.at_xpath('underline').nil?),
122
+ :justification => (layer_node.at_xpath('justification').text unless layer_node.at_xpath('justification').nil?),
123
+ :format => (layer_node.at_xpath('format').text unless layer_node.at_xpath('format').nil?)
124
+ })
125
+ end
126
+
127
+ layer.title = layer_node['title']
128
+ layer.type = layer_node['type']
129
+ layer.column = layer_node['column']
130
+ layer.locked = layer_node['locked'].to_bool
131
+ layer.visible = layer_node['visible'].to_bool
132
+ layer.resizable = layer_node['resizable'].to_bool
133
+ layer.x = layer_node.at_xpath('x').text.to_f unless layer_node.at_xpath('x').nil?
134
+ layer.y = layer_node.at_xpath('y').text.to_f unless layer_node.at_xpath('y').nil?
135
+ layer.z = layer_node.at_xpath('z').text.to_f unless layer_node.at_xpath('z').nil?
136
+ layer.width = layer_node.at_xpath('width').text.to_f unless layer_node.at_xpath('width').nil?
137
+ layer.height = layer_node.at_xpath('height').text.to_f unless layer_node.at_xpath('height').nil?
138
+ layer.alpha = layer_node.at_xpath('alpha').text.to_f unless layer_node.at_xpath('alpha').nil?
139
+ layer.rotation = layer_node.at_xpath('rotation').text.to_f unless layer_node.at_xpath('rotation').nil?
140
+ layer.content = layer_node.at_xpath('content').text unless layer_node.at_xpath('content').nil?
141
+
142
+ layers.push(layer)
143
+ end
144
+ end
145
+
146
+ unless item_nodes.nil?
147
+ data = []
148
+ item_nodes.each do |item_node|
149
+ item = {}
150
+ keys_node = item_node.xpath('key')
151
+ keys_node.each do |key_node|
152
+ item[key_node['name']] = key_node.text
153
+ end
154
+ data.push(item)
155
+ end
156
+ end
157
+
158
+ Labels::Document.new(paper, template, layers, data)
159
+ end
160
+ end
161
+ end
162
+ end
163
+ end
data/lib/labels.rb ADDED
@@ -0,0 +1,27 @@
1
+ # A RubyGem for creating mailing, shipping, address, barcode and other labels and rendering as PDF's.
2
+ #
3
+ # Author:: Aaron Wright (mailto:acwrightdesign@gmail.com)
4
+ # Copyright:: Copyright (c) 2012 Infinite Token LLC
5
+ # License:: MIT License
6
+
7
+ require 'labels/version'
8
+ require 'labels/xml/parser'
9
+
10
+ module Labels
11
+
12
+ # This is a helper class for Labels library.
13
+ class << self
14
+
15
+ # Opens a new XML file at given path and parses and returns a Labels::Document instance
16
+ def open(path)
17
+ unless path.nil?
18
+ Labels::XML::Parser.parse(IO.read(path)) if File.exist? path
19
+ end
20
+ end
21
+
22
+ # Parses the given XML string and returns a Labels::Document instance
23
+ def parse(xml)
24
+ Labels::XML::Parser.parse(xml)
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,17 @@
1
+ # A RubyGem for creating mailing, shipping, address, barcode and other labels and rendering as PDF's.
2
+ #
3
+ # Author:: Aaron Wright (mailto:acwrightdesign@gmail.com)
4
+ # Copyright:: Copyright (c) 2012 Infinite Token LLC
5
+ # License:: MIT License
6
+
7
+ require 'spec_helper'
8
+ require 'labels/barcode'
9
+
10
+ describe Labels::Barcode do
11
+ describe "#new" do
12
+ end
13
+
14
+ describe "#run" do
15
+
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # A RubyGem for creating mailing, shipping, address, barcode and other labels and rendering as PDF's.
2
+ #
3
+ # Author:: Aaron Wright (mailto:acwrightdesign@gmail.com)
4
+ # Copyright:: Copyright (c) 2012 Infinite Token LLC
5
+ # License:: MIT License
6
+
7
+ require 'spec_helper'
8
+ require 'labels/date'
9
+
10
+ describe Labels::Date do
11
+ describe "#new" do
12
+ end
13
+
14
+ describe "#run" do
15
+
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # A RubyGem for creating mailing, shipping, address, barcode and other labels and rendering as PDF's.
2
+ #
3
+ # Author:: Aaron Wright (mailto:acwrightdesign@gmail.com)
4
+ # Copyright:: Copyright (c) 2012 Infinite Token LLC
5
+ # License:: MIT License
6
+
7
+ require 'spec_helper'
8
+ require 'labels/document'
9
+
10
+ describe Labels::Document do
11
+ describe "#new" do
12
+ end
13
+
14
+ describe "#run" do
15
+
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # A RubyGem for creating mailing, shipping, address, barcode and other labels and rendering as PDF's.
2
+ #
3
+ # Author:: Aaron Wright (mailto:acwrightdesign@gmail.com)
4
+ # Copyright:: Copyright (c) 2012 Infinite Token LLC
5
+ # License:: MIT License
6
+
7
+ require 'spec_helper'
8
+ require 'labels/element'
9
+
10
+ describe Labels::Element do
11
+ describe "#new" do
12
+ end
13
+
14
+ describe "#run" do
15
+
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # A RubyGem for creating mailing, shipping, address, barcode and other labels and rendering as PDF's.
2
+ #
3
+ # Author:: Aaron Wright (mailto:acwrightdesign@gmail.com)
4
+ # Copyright:: Copyright (c) 2012 Infinite Token LLC
5
+ # License:: MIT License
6
+
7
+ require 'spec_helper'
8
+ require 'labels/exec'
9
+
10
+ describe Labels::Exec do
11
+ describe "#new" do
12
+ end
13
+
14
+ describe "#run" do
15
+
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # A RubyGem for creating mailing, shipping, address, barcode and other labels and rendering as PDF's.
2
+ #
3
+ # Author:: Aaron Wright (mailto:acwrightdesign@gmail.com)
4
+ # Copyright:: Copyright (c) 2012 Infinite Token LLC
5
+ # License:: MIT License
6
+
7
+ require 'spec_helper'
8
+ require 'labels/image'
9
+
10
+ describe Labels::Image do
11
+ describe "#new" do
12
+ end
13
+
14
+ describe "#run" do
15
+
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # A RubyGem for creating mailing, shipping, address, barcode and other labels and rendering as PDF's.
2
+ #
3
+ # Author:: Aaron Wright (mailto:acwrightdesign@gmail.com)
4
+ # Copyright:: Copyright (c) 2012 Infinite Token LLC
5
+ # License:: MIT License
6
+
7
+ require 'spec_helper'
8
+ require 'labels/layer'
9
+
10
+ describe Labels::Layer do
11
+ describe "#new" do
12
+ end
13
+
14
+ describe "#run" do
15
+
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # A RubyGem for creating mailing, shipping, address, barcode and other labels and rendering as PDF's.
2
+ #
3
+ # Author:: Aaron Wright (mailto:acwrightdesign@gmail.com)
4
+ # Copyright:: Copyright (c) 2012 Infinite Token LLC
5
+ # License:: MIT License
6
+
7
+ require 'spec_helper'
8
+ require 'labels/paper'
9
+
10
+ describe Labels::Paper do
11
+ describe "#new" do
12
+ end
13
+
14
+ describe "#run" do
15
+
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # A RubyGem for creating mailing, shipping, address, barcode and other labels and rendering as PDF's.
2
+ #
3
+ # Author:: Aaron Wright (mailto:acwrightdesign@gmail.com)
4
+ # Copyright:: Copyright (c) 2012 Infinite Token LLC
5
+ # License:: MIT License
6
+
7
+ require 'spec_helper'
8
+ require 'labels/pdf/builder'
9
+
10
+ describe Labels::PDF::Builder do
11
+ describe "#new" do
12
+ end
13
+
14
+ describe "#run" do
15
+
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # A RubyGem for creating mailing, shipping, address, barcode and other labels and rendering as PDF's.
2
+ #
3
+ # Author:: Aaron Wright (mailto:acwrightdesign@gmail.com)
4
+ # Copyright:: Copyright (c) 2012 Infinite Token LLC
5
+ # License:: MIT License
6
+
7
+ require 'spec_helper'
8
+ require 'labels/shape'
9
+
10
+ describe Labels::Shape do
11
+ describe "#new" do
12
+ end
13
+
14
+ describe "#run" do
15
+
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # A RubyGem for creating mailing, shipping, address, barcode and other labels and rendering as PDF's.
2
+ #
3
+ # Author:: Aaron Wright (mailto:acwrightdesign@gmail.com)
4
+ # Copyright:: Copyright (c) 2012 Infinite Token LLC
5
+ # License:: MIT License
6
+
7
+ require 'spec_helper'
8
+ require 'labels/template'
9
+
10
+ describe Labels::Template do
11
+ describe "#new" do
12
+ end
13
+
14
+ describe "#run" do
15
+
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # A RubyGem for creating mailing, shipping, address, barcode and other labels and rendering as PDF's.
2
+ #
3
+ # Author:: Aaron Wright (mailto:acwrightdesign@gmail.com)
4
+ # Copyright:: Copyright (c) 2012 Infinite Token LLC
5
+ # License:: MIT License
6
+
7
+ require 'spec_helper'
8
+ require 'labels/text'
9
+
10
+ describe Labels::Text do
11
+ describe "#new" do
12
+ end
13
+
14
+ describe "#run" do
15
+
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # A RubyGem for creating mailing, shipping, address, barcode and other labels and rendering as PDF's.
2
+ #
3
+ # Author:: Aaron Wright (mailto:acwrightdesign@gmail.com)
4
+ # Copyright:: Copyright (c) 2012 Infinite Token LLC
5
+ # License:: MIT License
6
+
7
+ require 'spec_helper'
8
+ require 'labels/xml/builder'
9
+
10
+ describe Labels::XML::Builder do
11
+ describe "#new" do
12
+ end
13
+
14
+ describe "#run" do
15
+
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # A RubyGem for creating mailing, shipping, address, barcode and other labels and rendering as PDF's.
2
+ #
3
+ # Author:: Aaron Wright (mailto:acwrightdesign@gmail.com)
4
+ # Copyright:: Copyright (c) 2012 Infinite Token LLC
5
+ # License:: MIT License
6
+
7
+ require 'spec_helper'
8
+ require 'labels/xml/parser'
9
+
10
+ describe Labels::XML::Parser do
11
+ describe "#new" do
12
+ end
13
+
14
+ describe "#run" do
15
+
16
+ end
17
+ end
@@ -0,0 +1,14 @@
1
+ # A RubyGem for creating mailing, shipping, address, barcode and other labels and rendering as PDF's.
2
+ #
3
+ # Author:: Aaron Wright (mailto:acwrightdesign@gmail.com)
4
+ # Copyright:: Copyright (c) 2012 Infinite Token LLC
5
+ # License:: MIT License
6
+
7
+ require 'spec_helper'
8
+ require 'labels'
9
+
10
+ describe Labels do
11
+ it 'should return correct version' do
12
+ Labels::VERSION == Labels::VERSION
13
+ end
14
+ end
@@ -0,0 +1,23 @@
1
+ # A RubyGem for creating mailing, shipping, address, barcode and other labels and rendering as PDF's.
2
+ #
3
+ # Author:: Aaron Wright (mailto:acwrightdesign@gmail.com)
4
+ # Copyright:: Copyright (c) 2012 Infinite Token LLC
5
+ # License:: MIT License
6
+
7
+ # This file was generated by the `rspec --init` command. Conventionally, all
8
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
9
+ # Require this file using `require "spec_helper"` to ensure that it is only
10
+ # loaded once.
11
+ #
12
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
13
+ RSpec.configure do |config|
14
+ config.treat_symbols_as_metadata_keys_with_true_values = true
15
+ config.run_all_when_everything_filtered = true
16
+ config.filter_run :focus
17
+
18
+ # Run specs in random order to surface order dependencies. If you find an
19
+ # order dependency and want to debug it, you can fix the order by providing
20
+ # the seed, which is printed after each run.
21
+ # --seed 1234
22
+ config.order = 'random'
23
+ end