# File lib/cell/caching.rb, line 20
      def cache(state, *args, &block)
        options = args.last.is_a?(Hash) ? args.pop : {} # I have to admit, Array#extract_options is a brilliant tool.

        conditional_procs[state] = Declarative::Option(options.delete(:if) || true, instance_exec: true)
        version_procs[state]     = Declarative::Option(args.first || block, instance_exec: true)
        cache_options[state]     = Declarative::Options(options, instance_exec: true)
      end