brocade 1.0.1 → 1.0.2

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/README.md CHANGED
@@ -53,6 +53,17 @@ Now you get this:
53
53
  # deletes barcode image.
54
54
 
55
55
 
56
+ ## 'Advanced' Usage
57
+
58
+ You can pass options to Brocade to control the PNG it generates. For example:
59
+
60
+ class Item < ActiveRecord::Base
61
+ has_barcode :margin => 5, :height => 40
62
+ end
63
+
64
+ These options are passed through to Barby's [PNG Outputter][pngout]. Note that setting the width makes no difference.
65
+
66
+
56
67
  ## Installation.
57
68
 
58
69
  Install as a gem. In your `config.rb`:
@@ -101,3 +112,4 @@ Copyright (c) 2010 Andy Stewart. See LICENSE for details.
101
112
  [barby]: http://github.com/toretore/barby
102
113
  [paperclip]: http://github.com/thoughtbot/paperclip
103
114
  [png]: http://seattlerb.rubyforge.org/png/
115
+ [pngout]: http://github.com/toretore/barby/blob/master/lib/barby/outputter/png_outputter.rb#L58
data/Rakefile CHANGED
@@ -1,56 +1,15 @@
1
- require 'rubygems'
2
- require 'rake'
3
-
4
- begin
5
- require 'jeweler'
6
- Jeweler::Tasks.new do |gem|
7
- gem.name = "brocade"
8
- gem.summary = %Q{Generates barcodes for Rails ActiveRecord models.}
9
- gem.email = "boss@airbladesoftware.com"
10
- gem.homepage = "http://github.com/airblade/brocade"
11
- gem.authors = ["Andy Stewart"]
12
- gem.add_dependency 'barby'
13
- # Use v1.1.0 of png because 1.2.0 causes problems.
14
- # http://groups.google.com/group/ruby-barby/browse_thread/thread/03a082f9a1202106
15
- gem.add_dependency 'png', '1.1.0'
16
- gem.add_development_dependency "thoughtbot-shoulda", ">= 0"
17
- # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
18
- end
19
- Jeweler::GemcutterTasks.new
20
- rescue LoadError
21
- puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
22
- end
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
23
3
 
24
4
  require 'rake/testtask'
25
- Rake::TestTask.new(:test) do |test|
26
- test.libs << 'lib' << 'test'
27
- test.pattern = 'test/**/test_*.rb'
28
- test.verbose = true
29
- end
30
5
 
31
- begin
32
- require 'rcov/rcovtask'
33
- Rcov::RcovTask.new do |test|
34
- test.libs << 'test'
35
- test.pattern = 'test/**/test_*.rb'
36
- test.verbose = true
37
- end
38
- rescue LoadError
39
- task :rcov do
40
- abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
41
- end
6
+ desc 'Test the brocade plugin.'
7
+ Rake::TestTask.new(:test) do |t|
8
+ t.libs << 'lib'
9
+ t.libs << 'test'
10
+ t.pattern = 'test/**/*_test.rb'
11
+ t.verbose = true
42
12
  end
43
13
 
44
- task :test => :check_dependencies
45
-
14
+ desc 'Default: run unit tests.'
46
15
  task :default => :test
47
-
48
- require 'rake/rdoctask'
49
- Rake::RDocTask.new do |rdoc|
50
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
51
-
52
- rdoc.rdoc_dir = 'rdoc'
53
- rdoc.title = "brocade #{version}"
54
- rdoc.rdoc_files.include('README*')
55
- rdoc.rdoc_files.include('lib/**/*.rb')
56
- end
data/brocade.gemspec ADDED
@@ -0,0 +1,21 @@
1
+ $LOAD_PATH.unshift 'lib'
2
+ require 'brocade/version'
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = 'brocade'
6
+ s.version = Brocade::VERSION
7
+ s.summary = 'Generates barcodes for Rails ActiveRecord models.'
8
+ s.description = s.summary
9
+ s.homepage = 'http://github.com/airblade/brocade'
10
+ s.authors = ['Andy Stewart']
11
+ s.email = 'boss@airbladesoftware.com'
12
+ s.files = %w[ LICENSE README.md Rakefile brocade.gemspec ]
13
+ s.files += %w[ init.rb install.rb ]
14
+ s.files += Dir.glob("lib/**/*")
15
+ s.test_files = Dir.glob("test/**/*")
16
+ s.require_path = 'lib'
17
+
18
+ s.add_dependency 'barby', '0.3.2'
19
+ s.add_dependency 'png', '1.1.0' # Note problems with 1.2.0.
20
+ end
21
+
data/install.rb CHANGED
@@ -1 +1 @@
1
- puts 'Thank you for installing Brocade. You can visit http://github.com/airblade/brocade to read the documentation.'
1
+ puts 'You have chosen wisely.'
@@ -11,7 +11,11 @@ module Brocade
11
11
  end
12
12
 
13
13
  module ClassMethods
14
- def has_barcode
14
+ def has_barcode(options = {})
15
+ cattr_accessor :options
16
+ self.options = options
17
+
18
+ # Lazily load.
15
19
  send :include, InstanceMethods
16
20
 
17
21
  after_create :create_barcode
@@ -20,6 +24,8 @@ module Brocade
20
24
  end
21
25
  end
22
26
 
27
+ # Wrap the methods below in a module so we can include them
28
+ # only in the ActiveRecord models which declare `has_brocade`.
23
29
  module InstanceMethods
24
30
  # Returns the name of the method (as a symbol) to call to get the
25
31
  # data to be barcoded.
@@ -33,18 +39,21 @@ module Brocade
33
39
  :code128
34
40
  end
35
41
 
36
- def create_barcode
42
+ def create_barcode(opts = {})
37
43
  barcode = Barby::Code128B.new send(barcodable)
38
44
  path = barcode_path
39
45
  FileUtils.mkdir_p File.dirname(path)
40
46
  File.open(path, 'wb') do |f|
41
- f.write barcode.to_png
47
+ # Barby's PNG Outputter defaults to a margin of 10px and height of 100px.
48
+ # NOTE: setting the width makes no difference.
49
+ # http://github.com/toretore/barby/blob/master/lib/barby/outputter/png_outputter.rb
50
+ f.write barcode.to_png(self.class.options.merge(opts))
42
51
  end
43
52
  FileUtils.chmod 0644, path
44
53
  end
45
54
 
46
- def update_barcode
47
- create_barcode if changed.include? barcodable
55
+ def update_barcode(opts = {})
56
+ create_barcode(opts) if changed.include? barcodable
48
57
  end
49
58
 
50
59
  def destroy_barcode
@@ -0,0 +1,3 @@
1
+ module Brocade
2
+ VERSION = '1.0.2'
3
+ end
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brocade
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ hash: 19
5
+ prerelease: false
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 2
10
+ version: 1.0.2
5
11
  platform: ruby
6
12
  authors:
7
13
  - Andy Stewart
@@ -9,59 +15,59 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2010-03-10 00:00:00 +00:00
18
+ date: 2010-10-28 00:00:00 +01:00
13
19
  default_executable:
14
20
  dependencies:
15
21
  - !ruby/object:Gem::Dependency
16
22
  name: barby
17
23
  type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
24
+ prerelease: false
25
+ version_requirements: &id001 !ruby/object:Gem::Requirement
26
+ none: false
20
27
  requirements:
21
- - - ">="
28
+ - - "="
22
29
  - !ruby/object:Gem::Version
23
- version: "0"
24
- version:
30
+ hash: 23
31
+ segments:
32
+ - 0
33
+ - 3
34
+ - 2
35
+ version: 0.3.2
36
+ requirement: *id001
25
37
  - !ruby/object:Gem::Dependency
26
38
  name: png
27
39
  type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
40
+ prerelease: false
41
+ version_requirements: &id002 !ruby/object:Gem::Requirement
42
+ none: false
30
43
  requirements:
31
44
  - - "="
32
45
  - !ruby/object:Gem::Version
46
+ hash: 19
47
+ segments:
48
+ - 1
49
+ - 1
50
+ - 0
33
51
  version: 1.1.0
34
- version:
35
- - !ruby/object:Gem::Dependency
36
- name: thoughtbot-shoulda
37
- type: :development
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- version: "0"
44
- version:
45
- description:
52
+ requirement: *id002
53
+ description: Generates barcodes for Rails ActiveRecord models.
46
54
  email: boss@airbladesoftware.com
47
55
  executables: []
48
56
 
49
57
  extensions: []
50
58
 
51
- extra_rdoc_files:
52
- - LICENSE
53
- - README.md
59
+ extra_rdoc_files: []
60
+
54
61
  files:
55
- - .document
56
- - .gitignore
57
62
  - LICENSE
58
63
  - README.md
59
64
  - Rakefile
60
- - VERSION
65
+ - brocade.gemspec
61
66
  - init.rb
62
67
  - install.rb
63
- - lib/brocade.rb
64
68
  - lib/brocade/has_barcode.rb
69
+ - lib/brocade/version.rb
70
+ - lib/brocade.rb
65
71
  - test/helper.rb
66
72
  - test/test_brocade.rb
67
73
  has_rdoc: true
@@ -69,26 +75,32 @@ homepage: http://github.com/airblade/brocade
69
75
  licenses: []
70
76
 
71
77
  post_install_message:
72
- rdoc_options:
73
- - --charset=UTF-8
78
+ rdoc_options: []
79
+
74
80
  require_paths:
75
81
  - lib
76
82
  required_ruby_version: !ruby/object:Gem::Requirement
83
+ none: false
77
84
  requirements:
78
85
  - - ">="
79
86
  - !ruby/object:Gem::Version
87
+ hash: 3
88
+ segments:
89
+ - 0
80
90
  version: "0"
81
- version:
82
91
  required_rubygems_version: !ruby/object:Gem::Requirement
92
+ none: false
83
93
  requirements:
84
94
  - - ">="
85
95
  - !ruby/object:Gem::Version
96
+ hash: 3
97
+ segments:
98
+ - 0
86
99
  version: "0"
87
- version:
88
100
  requirements: []
89
101
 
90
102
  rubyforge_project:
91
- rubygems_version: 1.3.5
103
+ rubygems_version: 1.3.7
92
104
  signing_key:
93
105
  specification_version: 3
94
106
  summary: Generates barcodes for Rails ActiveRecord models.
data/.document DELETED
@@ -1,5 +0,0 @@
1
- README.rdoc
2
- lib/**/*.rb
3
- bin/*
4
- features/**/*.feature
5
- LICENSE
data/.gitignore DELETED
@@ -1,21 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
-
21
- ## PROJECT::SPECIFIC
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 1.0.1