class HtmlSlicer::Helpers::Slicer
Public Instance Methods
each_relevant_slice() { |slice_proxy(merge, i, last)| ... }
click to toggle source
enumerate each slice providing sliceProxy object as the block parameter Because of performance reason, this doesn't actually enumerate all slices but slices that are seemingly relevant to the paginator. “Relevant” slices are:
-
slices inside the left outer window plus one for showing the gap tag
-
slices inside the inner window plus one on the left plus one on the right for showing the gap tags
-
slices inside the right outer window plus one for showing the gap tag
# File lib/html_slicer/helpers/slicer.rb, line 54 def each_relevant_slice return to_enum(:each_relevant_slice) unless block_given? relevant_slices(@window_options.merge(@options)).each do |i| yield SliceProxy.new(@window_options.merge(@options), i, @last) end end
Also aliased as: each_slice
render(&block)
click to toggle source
render given block as a view template
# File lib/html_slicer/helpers/slicer.rb, line 43 def render(&block) instance_eval &block if @options[:slice_number] > 1 @output_buffer end
slice_tag(slice)
click to toggle source
# File lib/html_slicer/helpers/slicer.rb, line 72 def slice_tag(slice) @last = Slice.new @template, @options.merge(:slice => slice) end
Private Instance Methods
relevant_slices(options)
click to toggle source
# File lib/html_slicer/helpers/slicer.rb, line 63 def relevant_slices(options) left_window_plus_one = 1.upto(options[:left] + 1).to_a right_window_plus_one = (options[:slice_number] - options[:right]).upto(options[:slice_number]).to_a inside_window_plus_each_sides = (options[:current_slice] - options[:window] - 1).upto(options[:current_slice] + options[:window] + 1).to_a (left_window_plus_one + inside_window_plus_each_sides + right_window_plus_one).uniq.sort.reject {|x| (x < 1) || (x > options[:slice_number])} end