Skip to content

Instantly share code, notes, and snippets.

@bradpauly
bradpauly / custom_file_store.rb
Created August 12, 2012 22:37
simple file store for rails sessions
module ActionDispatch
module Session
class CustomFileStore < ActionDispatch::Session::AbstractStore
def get_session(env, session_id)
session_data = {}
session_id ||= generate_sid
File.open(tmp_file(session_id),'r') do |f|
data = f.read
session_data = ::Marshal.load(data) unless data.empty?
end rescue nil
require "minitest/autorun"
require "minitest/spec"
class Pager
def initialize(results:, rows_per_page:)
@results = results
@rows_per_page = rows_per_page
end
def total_pages
# Controller
recipes = Recipe.all
@pager = Pager.new(results: recipes, rows_per_page: 10, page: 1)
# ERB template
<% @pager.rows.each do |row| %>
<%= row.name %>
<% end %>
# Assuming we have 33 rows.
pager = Pager.new(rows: rows, rows_per_page: 10)
pager.rows(1) # The first 10 rows
pager.rows(2) # The next 10 rows
pager.rows(3) # The next 10 rows
pager.rows(4) # The last 3 rows
require "minitest/autorun"
require "minitest/spec"
require "ostruct"
class Pager
def initialize(rows:, rows_per_page:)
@rows = rows
@rows_per_page = rows_per_page
end
require "minitest/autorun"
require "minitest/spec"
class Pager
def initialize(rows:, rows_per_page:)
@rows = rows
@rows_per_page = rows_per_page
end
def total_pages
> rows_per_page = 10
=> 10
> total_rows = 33
=> 33
> total_rows/rows_per_page
=> 3
> total_rows/rows_per_page.to_f
require "minitest/autorun"
require "minitest/spec"
class Pager
def initialize(total_rows:, rows_per_page:)
@total_rows = total_rows
@rows_per_page = rows_per_page
end
def total_pages
class Configuration
def method_missing(name)
self.class.instance_variable_get("@#{name}")
end
def self.set(name, value)
instance_variable_set("@#{name}", value)
end
def self.default(name, value)
```ruby
class Foo; end
```