Putting this in only to take it out soon
parent
a6e3faa003
commit
0224856c9a
|
|
@ -0,0 +1,17 @@
|
||||||
|
module Squib
|
||||||
|
module Commands
|
||||||
|
|
||||||
|
module Visitable
|
||||||
|
def accept visitor
|
||||||
|
visitor.visit self
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
class Command
|
||||||
|
def accept visitor
|
||||||
|
raise NotImpelementedError.new
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
module Squib
|
||||||
|
module Commands
|
||||||
|
|
||||||
|
class Font < Command
|
||||||
|
include Visitable
|
||||||
|
attr_accessor :type, :size
|
||||||
|
|
||||||
|
def initialize(type,size, options)
|
||||||
|
@type = type
|
||||||
|
@size = size
|
||||||
|
#no other options yet
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
module Squib
|
||||||
|
module Commands
|
||||||
|
|
||||||
|
class SetFont < Command
|
||||||
|
include Visitable
|
||||||
|
attr_accessor :type, :size, :options
|
||||||
|
|
||||||
|
def initialize(type, size, options)
|
||||||
|
@type = type
|
||||||
|
@size = size
|
||||||
|
#no options yet
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
module Squib
|
||||||
|
#Global queue of commands
|
||||||
|
CMDS = []
|
||||||
|
|
||||||
|
def queue_command(cmd)
|
||||||
|
unless cmd.instance_of? Squib::Commands::Command
|
||||||
|
raise ArgumentError, "Only RockDeck::Commands allowed here"
|
||||||
|
end
|
||||||
|
CMDS << cmd
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
module Squib
|
||||||
|
module Render
|
||||||
|
|
||||||
|
class RenderContext
|
||||||
|
attr_accessor :font #current font we're using
|
||||||
|
attr_accessor :cur #index of the current card rendering
|
||||||
|
attr_accessor :cards #total number of cards we're iterating over
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
module Squib
|
||||||
|
module Visitors
|
||||||
|
|
||||||
|
class BaseVisitor
|
||||||
|
def visit subject
|
||||||
|
method_name = "visit_#{subject.class}".intern
|
||||||
|
send(method_name, subject)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
module Squib
|
||||||
|
module Visitors
|
||||||
|
|
||||||
|
class VerifyVistior < BaseVisitor
|
||||||
|
def visit_Font
|
||||||
|
puts "Verify Font!!"
|
||||||
|
end
|
||||||
|
|
||||||
|
def visit_SetFont
|
||||||
|
puts "Verify SetFont!!"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
Loading…
Reference in New Issue