All users of rqrcode are highly recomended to upgrade to version 0.5.5 ore later!
0.10.1 (Feb 11, 2016)
- Changed so that gem wont include images and tests.
0.10.0 (Feb 11, 2016)
- Merged as_ansi by Andy Brody
0.9.0 (Jan 3, 2016)
- Added support for auto selecting qrcode size up to level 40. (only worked up to level 10 before)
- Added numeric support during auto selection of qrcode mode.
0.8.1 (Jan 3, 2016)
- Remove active support specific
present?
. - Fix so that all tests are run.
0.8.0 (Dec 18, 2015)
- Added numeric QR code support
- Dropped Ruby v1.8 support
rQRCode is a library for encoding QR Codes in Ruby. It has a simple interface with all the standard qrcode options. It was adapted from the Javascript library by Kazuhiko Arase.
Let's clear up some rQRCode stuff.
- rQRCode is a ruby only library It requires no native libraries. Just Ruby!
- It is an encoding library. You can't decode QR codes with it.
- The interface is simple and assumes you just want to encode a string into a QR code
- QR code is trademarked by Denso Wave inc
You may get the latest stable version from Rubygems.
gem install rqrcode
require 'rqrcode'
qrcode = RQRCode::QRCode.new("http://github.com/")
image = qrcode.as_png
svg = qrcode.as_svg
html = qrcode.as_html
string = qrcode.as_ansi
string = qrcode.to_s
The SVG renderer will produce a stand-alone SVG as a String
qrcode = RQRCode::QRCode.new("http://github.com/")
# With default options specified explicitly
svg = qrcode.as_svg(offset: 0, color: '000',
shape_rendering: 'crispEdges',
module_size: 11)
The ANSI renderer will produce as a string with ANSI color codes.
qrcode = RQRCode::QRCode.new("http://github.com/")
# With default options specified explicitly
svg = qrcode.as_ansi_(light: "\033[47m", dark: "\033[40m",
fill_character: ' ',
quiet_zone_size: 4)
The library can produce a PNG. Result will be a ChunkyPNG::Image
instance.
qrcode = RQRCode::QRCode.new("http://github.com/")
# With default options specified explicitly
png = qrcode.as_png(
resize_gte_to: false,
resize_exactly_to: false,
fill: 'white',
color: 'black',
size: 120,
border_modules: 4,
module_px_size: 6,
file: nil # path to write
)
IO.write("/tmp/github-qrcode.png", png.to_s)
@qr = RQRCode::QRCode.new( 'https://github.com/whomwah/rqrcode', :size => 4, :level => :h )
<%= raw @qr.as_html %>
table {
border-width: 0;
border-style: none;
border-color: #0000ff;
border-collapse: collapse;
}
td {
border-left: solid 10px #000;
padding: 0;
margin: 0;
width: 0px;
height: 10px;
}
td.black { border-color: #000; }
td.white { border-color: #fff; }
qr = RQRCode::QRCode.new( 'my string to generate', :size => 4, :level => :h )
puts qr.to_s
Output:
xxxxxxx x x x x x xx xxxxxxx
x x xxx xxxxxx xxx x x
x xxx x xxxxx x xx x xxx x
... etc
qr = RQRCode::QRCode.new( 'my string to generate', :size => 4, :level => :h )
qr.modules.each do |row|
row.each do |col|
print col ? "X" : " "
end
print "\n"
end
Sometimes you may want to specify the QR code mode explicitly.
It is done via the mode
option. Allowed values are: number
, alphanumeric
and byte_8bit
.
qr = RQRCode::QRCode.new( '1234567890', :size => 2, :level => :m, :mode => :number )
http://www.rubydoc.info/gems/rqrcode
- wikipedia:: http://en.wikipedia.org/wiki/QR_Code
- Denso-Wave website:: http://www.denso-wave.com/qrcode/index-e.html
- kaywa:: http://qrcode.kaywa.com
Original author: Duncan Robertson
Special thanks to the following people for submitting patches:
- Andy Brody
- Chris Mowforth
- Daniel Schierbeck
- Gioele Barabucci
- Ken Collins
- Rob la Lau
- Tore Darell
- Vladislav Gorodetskiy
- Fork the project
- Send a pull request
- Don't touch the .gemspec, I'll do that when I release a new version
MIT License (http://www.opensource.org/licenses/mit-license.html)