lib/keynote.rb in keynote-0.0.1 vs lib/keynote.rb in keynote-0.1.0

- old
+ new

@@ -6,12 +6,21 @@ require "keynote/controller" require "keynote/helper" require "keynote/railtie" require "keynote/cache" +# Keynote is a library for defining and instantiating presenters, +# objects that encapsulate view logic. +# +# @see file:README.md module Keynote class << self + # @return [Boolean] When `use_caching` is enabled, repeatedly invoking + # the same presenter with the same parameters will always return the + # same object. This is disabled by default for now. + attr_accessor :use_caching + # Create or retrieve a presenter wrapping zero or more objects. # # The first parameter is a Rails view context, but you'll usually access # this method through `Keynote::Helper#present`, # `Keynote::Controller#present`, or `Keynote::Presenter#present`, all of @@ -45,11 +54,15 @@ name = objects.shift else name = presenter_name_from_object(objects[0]) end - Cache.fetch(name, view, *objects) do + if Keynote.use_caching + Cache.fetch(name, view, *objects) do + presenter_from_name(name).new(view, *objects) + end + else presenter_from_name(name).new(view, *objects) end end private @@ -60,6 +73,8 @@ def presenter_from_name(name) "#{name.to_s.camelize}Presenter".constantize end end + + Keynote.use_caching = false end