lib/parsley-store.rb in parsley-store-0.1.0 vs lib/parsley-store.rb in parsley-store-0.1.1
- old
+ new
@@ -6,23 +6,27 @@
#database numbers for Redis
LOCAL = 1
SLAVE = 2
def initialize
- @parser = ScientificNameParser.new
+ @parser = ScientificNameParser.new(local_db = LOCAL, slave_db = SLAVE)
@local = Redis.new
- @local.select(LOCAL)
+ @local.select(local_db)
+ # slave replication is not set up yet, so I comment it out
+ # @slave = Redis.new
+ # @slave.select(slave_db)
end
- def parse(scientific_name)
+ def parse(scientific_name, fast = false)
stored = @local.get(scientific_name)
- return stored if stored
+ return (fast ? Marshal.load(stored) : JSON.load(stored)) if stored
begin
parsed = @parser.parse(scientific_name)
rescue
@parser = ScientificNameParser.new
parsed = @parser.parse(scientific_name)
end
- @local.set scientific_name, parsed
+ serialized = fast ? Marshal.dump(parsed) : parsed.to_json
+ @local.set scientific_name, serialized
parsed
end
end