labels 0.0.3

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.
@@ -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