rdpl 0.1.0 → 0.2.0
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/.gitignore +1 -0
- data/README.rdoc +101 -1
- data/VERSION +1 -1
- data/lib/elements/barcode.rb +3 -0
- data/lib/elements/bitmapped_text.rb +1 -0
- data/lib/elements/element.rb +29 -9
- data/lib/elements/line.rb +1 -0
- data/lib/elements/lines_and_boxes.rb +5 -3
- data/lib/job.rb +33 -0
- data/lib/label.rb +25 -2
- data/lib/rdpl.rb +4 -2
- data/rdpl.gemspec +81 -0
- data/spec/job_spec.rb +1 -0
- data/spec/label_spec.rb +1 -1
- metadata +5 -4
data/.gitignore
CHANGED
data/README.rdoc
CHANGED
@@ -1,6 +1,106 @@
|
|
1
1
|
= rdpl
|
2
2
|
|
3
|
-
|
3
|
+
Rdpl is a simple gem that abstracts *some* of the DPL (Datamax Programming Language)(TM) concepts. Its main purpose is to simplify the creation of labels to be printed using the Datamax(TM) series of printers.
|
4
|
+
|
5
|
+
It uses a very simple approach to send jobs to the printer. Basically, the printer has to be configured inside CUPS (Rdpl will use <tt>lpr</tt> to print), so it won't work on systems where CUPS is absent.
|
6
|
+
|
7
|
+
== Jobs
|
8
|
+
|
9
|
+
Print jobs are represented through instances of <tt>Rdpl::Job</tt>. A job may contain several labels to be printed and must receive the printer's cups id.
|
10
|
+
|
11
|
+
job = Rdpl::Job.new :printer => "some_printer_id"
|
12
|
+
job.print
|
13
|
+
|
14
|
+
Take a look at the project's rdoc for available options.
|
15
|
+
|
16
|
+
== Labels
|
17
|
+
|
18
|
+
Labels are represented through instances of <tt>Rdpl::Label</tt>. A label may contain several elements, which may be text, barcodes, lines, boxes or other graphical elements.
|
19
|
+
|
20
|
+
job = Rdpl::Job.new :printer => "some_printer_id"
|
21
|
+
label = Rdpl::Label.new(:quantity => 3, :dot_size => 12)
|
22
|
+
label << "some text"
|
23
|
+
label << Rdpl::Barcode.new :data => "123456"
|
24
|
+
job << label
|
25
|
+
job.print
|
26
|
+
|
27
|
+
Labels also accept a block when adding new lines, barcodes, boxes or bitmapped text:
|
28
|
+
|
29
|
+
label = Label.new
|
30
|
+
label.add_line do |line|
|
31
|
+
line.horizontal_width = 12.2
|
32
|
+
line.vertical_width = 14.3
|
33
|
+
line.row_position = 23.4
|
34
|
+
line.column_position = 24.5
|
35
|
+
end
|
36
|
+
|
37
|
+
It'll always yield a new instance of the given element to the block, so you can specify the element's properties. The other available methods to add new elements to the label are <tt>add_barcode</tt>, <tt>add_box</tt> and <tt>add_bitmapped_text</tt>.
|
38
|
+
|
39
|
+
Take a look at the project's rdoc for available options.
|
40
|
+
|
41
|
+
== Elements
|
42
|
+
|
43
|
+
You can add elements to the labels. Elements may be text, barcodes, lines, boxes or text printed with internal bitmapped fonts. Elements may have a rotation angle, row and column positions and so on. Each kind of element may have specific options, check the docs.
|
44
|
+
|
45
|
+
== Barcodes
|
46
|
+
|
47
|
+
Barcodes may be created through the <tt>Rdpl::Element::Barcode</tt> class.
|
48
|
+
|
49
|
+
barcode = Rdpl::Barcode.new(
|
50
|
+
:rotation => 4,
|
51
|
+
:font_id => Rdpl::Barcode::CODE_128,
|
52
|
+
:data => 'SOME DATA 12345',
|
53
|
+
:height => 123,
|
54
|
+
:wide_bar_multiplier => 3,
|
55
|
+
:narrow_bar_multiplier => 4,
|
56
|
+
:row_position => 123,
|
57
|
+
:column_position => 234
|
58
|
+
)
|
59
|
+
|
60
|
+
Take a look at the project's rdoc for available options.
|
61
|
+
|
62
|
+
== Boxes
|
63
|
+
|
64
|
+
Boxes may be created through the <tt>Rdpl::Element::Box</tt> class.
|
65
|
+
|
66
|
+
box = Rdpl::Box.new(
|
67
|
+
:horizontal_width => 12.2,
|
68
|
+
:vertical_width => 14.3,
|
69
|
+
:row_position => 23.4,
|
70
|
+
:column_position => 24.5,
|
71
|
+
:bottom_and_top_thickness => 34.6,
|
72
|
+
:sides_thickness => 45.6
|
73
|
+
)
|
74
|
+
|
75
|
+
Take a look at the project's rdoc for available options.
|
76
|
+
|
77
|
+
== Lines
|
78
|
+
|
79
|
+
Lines may be created through the <tt>Rdpl::Element::Line</tt> class.
|
80
|
+
|
81
|
+
line = Rdpl::Line.new(
|
82
|
+
:horizontal_width => 12.2,
|
83
|
+
:vertical_width => 14.3,
|
84
|
+
:row_position => 23.4,
|
85
|
+
:column_position => 24.5
|
86
|
+
)
|
87
|
+
|
88
|
+
Take a look at the project's rdoc for available options.
|
89
|
+
|
90
|
+
== Text in Bitmapped fonts
|
91
|
+
|
92
|
+
Text elements printed using internal bitmapped fonts may be created through the <tt>Rdpl::Element::BitmappedText</tt> class.
|
93
|
+
|
94
|
+
text = Rdpl::BitmappedText.new(
|
95
|
+
:font_id => 2,
|
96
|
+
:width_multiplier => 2,
|
97
|
+
:height_multiplier => 3,
|
98
|
+
:row_position => 20,
|
99
|
+
:column_position => 30,
|
100
|
+
:data => 'HEY LOOK AT ME'
|
101
|
+
)
|
102
|
+
|
103
|
+
Take a look at the project's rdoc for available options.
|
4
104
|
|
5
105
|
== Note on Patches/Pull Requests
|
6
106
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/lib/elements/barcode.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
module Rdpl
|
2
|
+
# Represents a barcode to be printed.
|
2
3
|
class Barcode
|
3
4
|
include Element
|
4
5
|
|
@@ -12,11 +13,13 @@ module Rdpl
|
|
12
13
|
|
13
14
|
DEFAULT_HEIGHT = 25
|
14
15
|
|
16
|
+
# Sets the barcode height. Valid values go from 0 to 999.
|
15
17
|
def height=(height)
|
16
18
|
raise InvalidBarcodeHeightError unless valid_height_range.include?(height)
|
17
19
|
@height = height
|
18
20
|
end
|
19
21
|
|
22
|
+
# Returns the barcode's height. Defaults to 25.
|
20
23
|
def height
|
21
24
|
@height || DEFAULT_HEIGHT
|
22
25
|
end
|
data/lib/elements/element.rb
CHANGED
@@ -13,10 +13,28 @@ module Rdpl
|
|
13
13
|
class FixedValueError < StandardError; end
|
14
14
|
class InvalidAssigmentError < StandardError; end
|
15
15
|
|
16
|
+
# Initializes a new element. Available options are:
|
17
|
+
# * <tt>:rotation</tt> the element's rotation.
|
18
|
+
# * <tt>:font_id</tt> the element's font id. Can go from 'a' to 'z' or 'A' to 'Z' for barcodes or from '0' to '9' for bitmapped fonts.
|
19
|
+
# * <tt>:data</tt> the data to be printed or encoded, usually some text.
|
20
|
+
# * <tt>:height</tt> the element's height. Can go from 0 to 999 for barcodes or any other value for another kind of element.
|
21
|
+
# * <tt>:row_position</tt> the vertical position of the element inside the label, in hundredths of an inch or tenths of a millimeter.
|
22
|
+
# * <tt>:column_position</tt> the horizontal position of the element inside the label, in hundredths of an inch or tenths of a millimeter.
|
23
|
+
# * <tt>:bottom_and_top_thickness</tt> defines the thickness of bottom and top box edges. Used only for <tt>Rdpl::Element::Box</tt>.
|
24
|
+
# * <tt>:sides_thickness</tt> defines the thickness of the box sides. Used only for <tt>Rdpl::Element::Box</tt>.
|
25
|
+
# * <tt>:width_multiplier</tt>
|
26
|
+
# * <tt>:height_multiplier</tt>
|
16
27
|
def initialize(options = {})
|
17
28
|
options.each_pair { |option, value| self.send "#{option}=", value }
|
18
29
|
end
|
19
30
|
|
31
|
+
# Sets the element's rotation angle. Can be one of the following constants:
|
32
|
+
# * <tt>Rdpl::Element::ROTATION_0_DEGREES</tt>
|
33
|
+
# * <tt>Rdpl::Element::ROTATION_90_DEGREES</tt>
|
34
|
+
# * <tt>Rdpl::Element::ROTATION_180_DEGREES</tt>
|
35
|
+
# * <tt>Rdpl::Element::ROTATION_270_DEGREES</tt>
|
36
|
+
#
|
37
|
+
# Raises <tt>Rdpl::Element::InvalidRotationError</tt> if passed a value different from these constants.
|
20
38
|
def rotation=(rotation)
|
21
39
|
raise InvalidRotationError, rotation unless valid_rotation_range.include?(rotation)
|
22
40
|
@rotation = rotation
|
@@ -28,12 +46,12 @@ module Rdpl
|
|
28
46
|
|
29
47
|
# Sets the element font type. Available types are:
|
30
48
|
#
|
31
|
-
# Type Interpretation
|
32
|
-
# 0-9 Font
|
33
|
-
# A-T Barcode with human readable text
|
34
|
-
# a-z Barcode without human readable text
|
35
|
-
# X Line, box, polygon, circle
|
36
|
-
# Y Image
|
49
|
+
# * Type Interpretation
|
50
|
+
# * 0-9 Font
|
51
|
+
# * A-T Barcode with human readable text
|
52
|
+
# * a-z Barcode without human readable text
|
53
|
+
# * X Line, box, polygon, circle
|
54
|
+
# * Y Image
|
37
55
|
def font_id=(font_id)
|
38
56
|
raise InvalidFontIdError unless valid_font_id_ranges.any? { |range| range.include? font_id }
|
39
57
|
@font_id = font_id
|
@@ -49,27 +67,29 @@ module Rdpl
|
|
49
67
|
@width_multiplier = multiplier
|
50
68
|
end
|
51
69
|
|
70
|
+
# Returns the specified width multiplier. Defaults to 1.
|
52
71
|
def width_multiplier
|
53
72
|
@width_multiplier || 1
|
54
73
|
end
|
55
74
|
|
75
|
+
# Valid values goes from 1 to 9 and A to O (base 25)
|
56
76
|
def height_multiplier=(multiplier)
|
57
77
|
raise InvalidHeightMultiplierError, multiplier unless valid_width_or_height_multiplier?(multiplier)
|
58
78
|
@height_multiplier = multiplier
|
59
79
|
end
|
60
80
|
|
61
|
-
#
|
81
|
+
# Returns the specified height multiplier. Defaults to 1.
|
62
82
|
def height_multiplier
|
63
83
|
@height_multiplier || 1
|
64
84
|
end
|
65
85
|
|
66
|
-
# Used only by barcode and smooth/
|
86
|
+
# Used only by barcode and smooth/scalable fonts, but has to be present as 000
|
67
87
|
# in other elements.
|
68
88
|
def formatted_height
|
69
89
|
'000'
|
70
90
|
end
|
71
91
|
|
72
|
-
# Interpreted in
|
92
|
+
# Interpreted in hundreths of an inch or tenths of millimeters, depending on
|
73
93
|
# the measurement used in the printing job.
|
74
94
|
def row_position=(position)
|
75
95
|
@row_position = position
|
data/lib/elements/line.rb
CHANGED
@@ -5,23 +5,25 @@ module Rdpl
|
|
5
5
|
include Element
|
6
6
|
include Graphic
|
7
7
|
|
8
|
+
# Returns the element's vertical width. Defaults to 0.
|
8
9
|
def vertical_width
|
9
10
|
@vertical_width || 0
|
10
11
|
end
|
11
12
|
|
13
|
+
# Returns the element's horizontal width. Defaults to 0.
|
12
14
|
def horizontal_width
|
13
15
|
@horizontal_width || 0
|
14
16
|
end
|
15
17
|
|
16
|
-
def width_multiplier=(multiplier)
|
18
|
+
def width_multiplier=(multiplier) # :nodoc:
|
17
19
|
raise FixedValueError, 'for lines width multiplier is fixed to 1'
|
18
20
|
end
|
19
21
|
|
20
|
-
def height_multiplier=(multiplier)
|
22
|
+
def height_multiplier=(multiplier) # :nodoc:
|
21
23
|
raise FixedValueError, 'for lines height multiplier is fixed to 1'
|
22
24
|
end
|
23
25
|
|
24
|
-
def font_id
|
26
|
+
def font_id # :nodoc:
|
25
27
|
'X'
|
26
28
|
end
|
27
29
|
|
data/lib/job.rb
CHANGED
@@ -1,6 +1,13 @@
|
|
1
1
|
require 'tempfile'
|
2
2
|
|
3
3
|
module Rdpl
|
4
|
+
# A +Job+ instance represents a print job to be sent to the printer. A print job
|
5
|
+
# may contain a list of instances of Rdpl::Label.
|
6
|
+
#
|
7
|
+
# The default process to send jobs to the printer is configuring the printer in
|
8
|
+
# cups and passing the printer's cups identifier to the constructor. Rdpl will use
|
9
|
+
# this id and issue something like +lpr -P cups_id some_temp_file+. This makes this lib
|
10
|
+
# unusable if you're not on some kind of *nix box.
|
4
11
|
class Job
|
5
12
|
attr_reader :labels, :printer, :state
|
6
13
|
attr_writer :sensor
|
@@ -8,6 +15,17 @@ module Rdpl
|
|
8
15
|
include Commandable
|
9
16
|
include Enumerable
|
10
17
|
|
18
|
+
# Creates a new instance of Rdpl::Job
|
19
|
+
#
|
20
|
+
# Example:
|
21
|
+
#
|
22
|
+
# job = Rdpl::Job.new :printer => "some_cups_id"
|
23
|
+
#
|
24
|
+
# The possible options are:
|
25
|
+
#
|
26
|
+
# * <tt>:printer</tt> the cups id of the printer to be used. This option is required.
|
27
|
+
# * <tt>:sensor</tt> the type of sensor to be used. Can be one of <tt>Rdpl::Sensor::REFLEXIVE</tt> or <tt>Rdpl::Sensor::EDGE</tt>. This is optional and defaults to <tt>Rdpl::Sensor::EDGE</tt>
|
28
|
+
# * <tt>:measurement</tt> the measurement system to be used. Can be one of :inches or :metric. For metric, mm will be used as unit. This is optional and defaults to <tt>:inches</tt>.
|
11
29
|
def initialize(options = {})
|
12
30
|
initialize_options options
|
13
31
|
@contents = ''
|
@@ -15,18 +33,26 @@ module Rdpl
|
|
15
33
|
@labels = []
|
16
34
|
end
|
17
35
|
|
36
|
+
# Yields each <tt>Rdpl::Label</tt> instance contained in this job.
|
18
37
|
def each
|
19
38
|
@labels.each { |label| yield label }
|
20
39
|
end
|
21
40
|
|
41
|
+
# Returns the current sensor type. If no <tt>:sensor</tt> option was specified, defaults
|
42
|
+
# to <tt>Rdpl::Sensor::EDGE</tt>.
|
22
43
|
def sensor; @sensor ||= Sensor::EDGE; end
|
23
44
|
|
45
|
+
# Returns the current measurement system in use.
|
24
46
|
def measurement; @measurement ||= :inches; end
|
25
47
|
|
48
|
+
# Returns <tt>true</tt> if the current measurement system is <tt>:inches</tt>.
|
26
49
|
def in?; measurement == :inches; end
|
27
50
|
|
51
|
+
# Returns <tt>true</tt> if the current measurement system is <tt>:metric</tt>.
|
28
52
|
def mm?; measurement == :metric; end
|
29
53
|
|
54
|
+
# Adds a new <tt>Rdpl::Label</tt> to be printed in this job. After a label in added,
|
55
|
+
# the job will insert a <tt>FEED</tt> command (<tt>STX F <CR><LF></tt>).
|
30
56
|
def <<(label)
|
31
57
|
@labels << label
|
32
58
|
label.job = self
|
@@ -35,10 +61,17 @@ module Rdpl
|
|
35
61
|
end
|
36
62
|
alias :add_label :<<
|
37
63
|
|
64
|
+
# Dumps the contents to be printed to a string.
|
38
65
|
def dump; @contents.dup; end
|
39
66
|
|
67
|
+
# Insert a <tt>FEED</t> command (<tt>STX F <CR><LF></tt>).
|
40
68
|
def feed; command FEED; end
|
41
69
|
|
70
|
+
# Sends the job's contents to the printer. The destination will be the cups
|
71
|
+
# printer id informed in the job's creation.
|
72
|
+
#
|
73
|
+
# The printing process is very simple, Rdpl will create a temp file and issue a <tt>lpr</tt> system
|
74
|
+
# command using the cups printer id and this file.
|
42
75
|
def print
|
43
76
|
tempfile = Tempfile.new 'datamax_label'
|
44
77
|
tempfile << dump
|
data/lib/label.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
module Rdpl
|
2
|
+
# Represents a label to be printed. Labels must me included in an instance of <tt>Rdpl::Job</tt>.
|
2
3
|
class Label
|
3
4
|
attr_reader :state, :quantity
|
4
5
|
attr_writer :job
|
@@ -10,38 +11,60 @@ module Rdpl
|
|
10
11
|
DEFAULT_DOT_SIZE = 11
|
11
12
|
DEFAULT_HEAT = 14
|
12
13
|
|
14
|
+
# Creates a new instance of <tt>Rdpl::Label</tt>
|
15
|
+
#
|
16
|
+
# Available options are:
|
17
|
+
#
|
18
|
+
# * <tt>:heat</tt> the heat setting to be used when printing this label. This is optional and defaults to 14.
|
19
|
+
# * <tt>:dot_size</tt> the dot size to be used when printing this label. This is optional and defaults to 11.
|
20
|
+
# * <tt>:start_of_print</tt> the inicial position to start printing the label. This is optional and has no default value, since this setting depends on the printer model.
|
21
|
+
# * <tt>:quantity</tt> the number of copies of this label to be printed.
|
13
22
|
def initialize(options = {})
|
14
23
|
@contents = ''
|
15
24
|
start options
|
16
25
|
end
|
17
26
|
|
27
|
+
# Dumps this label's contents to a string.
|
18
28
|
def dump
|
19
29
|
@contents.dup
|
20
30
|
end
|
21
31
|
|
32
|
+
# Closes this label for edition. This appends DPL specific commands to the label,
|
33
|
+
# so the printer knows where the printing must end and where another label is started.
|
22
34
|
def end!
|
23
35
|
self << formatted_quantity unless quantity.nil?
|
24
36
|
self << FINISH
|
25
37
|
self.state = :finished
|
26
38
|
end
|
27
39
|
|
28
|
-
def [](arg)
|
40
|
+
def [](arg) # :nodoc:
|
29
41
|
@contents[arg]
|
30
42
|
end
|
31
43
|
|
44
|
+
# Adds a new element to this label.
|
45
|
+
# An element can be one of the following:
|
46
|
+
# * <tt>Rdpl::Barcode</tt>
|
47
|
+
# * <tt>Rdpl::BitmappedText</tt>
|
48
|
+
# * <tt>Rdpl::Box</tt>
|
49
|
+
# * <tt>Rdpl::Line</tt>
|
50
|
+
# * A simple string containing DPL commands
|
32
51
|
def <<(arg)
|
33
52
|
raise EndedElementError unless state == :open
|
34
53
|
@contents << arg.to_s << NEW_LINE
|
35
54
|
end
|
36
55
|
|
56
|
+
# Returns the current dot size.
|
37
57
|
def dot_size
|
38
58
|
@dot_size || DEFAULT_DOT_SIZE
|
39
59
|
end
|
40
60
|
|
61
|
+
# Returns the current heat setting to be used when printing.
|
41
62
|
def heat
|
42
63
|
@heat || DEFAULT_HEAT
|
43
64
|
end
|
44
65
|
|
66
|
+
# Returns <tt>true</tt> if this label's job is setted to use millimeters as measurement unit.
|
67
|
+
# I the label does not have a job yet, it will return <tt>false</tt>.
|
45
68
|
def mm?
|
46
69
|
@job ? @job.mm? : false
|
47
70
|
end
|
@@ -72,9 +95,9 @@ module Rdpl
|
|
72
95
|
def start(options = {})
|
73
96
|
self.state = :open
|
74
97
|
command START
|
98
|
+
options.each_pair { |option, value| self.send("#{option}=", value) }
|
75
99
|
self << formatted_heat
|
76
100
|
self << formatted_dot_size
|
77
|
-
options.each_pair { |option, value| self.send("#{option}=", value) }
|
78
101
|
end
|
79
102
|
|
80
103
|
[:state, :heat, :dot_size, :start_of_print, :quantity].each do |method|
|
data/lib/rdpl.rb
CHANGED
@@ -8,7 +8,7 @@ module Rdpl
|
|
8
8
|
NEW_LINE = CR + LF
|
9
9
|
FEED = 'F'
|
10
10
|
|
11
|
-
module Commandable
|
11
|
+
module Commandable # :nodoc:
|
12
12
|
def command(param)
|
13
13
|
raise EndedElementError if self.state == :finished
|
14
14
|
@contents << STX << param << NEW_LINE
|
@@ -20,8 +20,10 @@ module Rdpl
|
|
20
20
|
EDGE = 'e'
|
21
21
|
end
|
22
22
|
|
23
|
+
# Raised when a job is created without a printer name
|
23
24
|
class MissingPrinterNameError < StandardError; end
|
24
|
-
|
25
|
+
# Raised when inserting a new command to a already closed job.
|
26
|
+
class EndedElementError < StandardError; end
|
25
27
|
end
|
26
28
|
|
27
29
|
require 'job'
|
data/rdpl.gemspec
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{rdpl}
|
8
|
+
s.version = "0.2.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["C\303\241ssio Marques"]
|
12
|
+
s.date = %q{2010-09-24}
|
13
|
+
s.description = %q{RDPL provides a way to create labels for the Datamax™ printers using plain Ruby, through an abstraction of the DPL (Datamax Programming Language)}
|
14
|
+
s.email = %q{cassiommc@gmail.com}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE",
|
17
|
+
"README.rdoc"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".document",
|
21
|
+
".gitignore",
|
22
|
+
".rvmrc",
|
23
|
+
"LICENSE",
|
24
|
+
"README.rdoc",
|
25
|
+
"Rakefile",
|
26
|
+
"VERSION",
|
27
|
+
"lib/elements/barcode.rb",
|
28
|
+
"lib/elements/bitmapped_text.rb",
|
29
|
+
"lib/elements/box.rb",
|
30
|
+
"lib/elements/element.rb",
|
31
|
+
"lib/elements/graphic.rb",
|
32
|
+
"lib/elements/line.rb",
|
33
|
+
"lib/elements/lines_and_boxes.rb",
|
34
|
+
"lib/job.rb",
|
35
|
+
"lib/label.rb",
|
36
|
+
"lib/rdpl.rb",
|
37
|
+
"rdpl.gemspec",
|
38
|
+
"spec/elements/barcode_spec.rb",
|
39
|
+
"spec/elements/bitmapped_text_spec.rb",
|
40
|
+
"spec/elements/box_spec.rb",
|
41
|
+
"spec/elements/line_spec.rb",
|
42
|
+
"spec/job_spec.rb",
|
43
|
+
"spec/label_spec.rb",
|
44
|
+
"spec/rdpl_spec.rb",
|
45
|
+
"spec/shared_examples/element.rb",
|
46
|
+
"spec/shared_examples/lines_and_boxes.rb",
|
47
|
+
"spec/spec.opts",
|
48
|
+
"spec/spec_helper.rb"
|
49
|
+
]
|
50
|
+
s.homepage = %q{http://github.com/cassiomarques/rdpl}
|
51
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
52
|
+
s.require_paths = ["lib"]
|
53
|
+
s.rubygems_version = %q{1.3.7}
|
54
|
+
s.summary = %q{Create Datamax™ labels using Ruby!}
|
55
|
+
s.test_files = [
|
56
|
+
"spec/elements/barcode_spec.rb",
|
57
|
+
"spec/elements/bitmapped_text_spec.rb",
|
58
|
+
"spec/elements/box_spec.rb",
|
59
|
+
"spec/elements/line_spec.rb",
|
60
|
+
"spec/job_spec.rb",
|
61
|
+
"spec/label_spec.rb",
|
62
|
+
"spec/rdpl_spec.rb",
|
63
|
+
"spec/shared_examples/element.rb",
|
64
|
+
"spec/shared_examples/lines_and_boxes.rb",
|
65
|
+
"spec/spec_helper.rb"
|
66
|
+
]
|
67
|
+
|
68
|
+
if s.respond_to? :specification_version then
|
69
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
70
|
+
s.specification_version = 3
|
71
|
+
|
72
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
73
|
+
s.add_development_dependency(%q<rspec>, [">= 1.3.0"])
|
74
|
+
else
|
75
|
+
s.add_dependency(%q<rspec>, [">= 1.3.0"])
|
76
|
+
end
|
77
|
+
else
|
78
|
+
s.add_dependency(%q<rspec>, [">= 1.3.0"])
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
data/spec/job_spec.rb
CHANGED
data/spec/label_spec.rb
CHANGED
@@ -66,7 +66,7 @@ describe Rdpl::Label do
|
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
69
|
-
it "raises Rdpl::EndedElementError if it's ended
|
69
|
+
it "raises Rdpl::EndedElementError if it's ended and we try to add new content" do
|
70
70
|
label = Rdpl::Label.new
|
71
71
|
label.end!
|
72
72
|
lambda do
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdpl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 2
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.2.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- "C\xC3\xA1ssio Marques"
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-09-
|
18
|
+
date: 2010-09-24 00:00:00 -03:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -61,6 +61,7 @@ files:
|
|
61
61
|
- lib/job.rb
|
62
62
|
- lib/label.rb
|
63
63
|
- lib/rdpl.rb
|
64
|
+
- rdpl.gemspec
|
64
65
|
- spec/elements/barcode_spec.rb
|
65
66
|
- spec/elements/bitmapped_text_spec.rb
|
66
67
|
- spec/elements/box_spec.rb
|