class RQRCodeSVG::Image
Public Class Methods
new(qr_code)
click to toggle source
# File lib/rqrcode_svg/image.rb, line 4 def initialize(qr_code) @qr_code = qr_code @sequence = Sequence.new(qr_code) end
Public Instance Methods
render(size)
click to toggle source
# File lib/rqrcode_svg/image.rb, line 9 def render(size) stream = "" block_size = size/@qr_code.module_count.to_f stream += doctype stream += svg_open(size) @sequence.dark_squares_only do |row, column| row_x, row_y = to_coord(size, row), to_coord(size, column) stream += square(row_x, row_y, block_size) end stream += svg_close stream end
Private Instance Methods
doctype()
click to toggle source
# File lib/rqrcode_svg/image.rb, line 28 def doctype %(<?xml version="1.0"?>) end
square(x, y, size)
click to toggle source
# File lib/rqrcode_svg/image.rb, line 44 def square(x, y, size) x, y, size = *[x, y, size].map { |v| v.round(1) } %(<rect x="#{x}" y="#{y}" width="#{size+0.5}" height="#{size+0.5}" />) end
svg_close()
click to toggle source
# File lib/rqrcode_svg/image.rb, line 36 def svg_close %(</svg>) end
svg_open(size)
click to toggle source
# File lib/rqrcode_svg/image.rb, line 32 def svg_open(size) %(<svg width="#{size}" height="#{size}" viewPort="0 0 #{size} #{size}" version="1.1" xmlns="http://www.w3.org/2000/svg">) end
to_coord(size, value)
click to toggle source
# File lib/rqrcode_svg/image.rb, line 40 def to_coord(size, value) size * value / @qr_code.module_count.to_f end