rdpl 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|