liszt 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. data/.gitignore +7 -3
  2. data/Gemfile +1 -0
  3. data/Gemfile.lock +9 -2
  4. data/Gemfile.rails2 +8 -0
  5. data/Gemfile.rails2.lock +45 -0
  6. data/Rakefile +32 -1
  7. data/lib/liszt/{list.rb → redis_list.rb} +12 -7
  8. data/lib/liszt/version.rb +1 -1
  9. data/lib/liszt.rb +28 -8
  10. data/test/dummy_2.3/Rakefile +10 -0
  11. data/test/dummy_2.3/app/controllers/application_controller.rb +10 -0
  12. data/test/dummy_2.3/app/models/group.rb +2 -0
  13. data/test/dummy_2.3/app/models/person.rb +3 -0
  14. data/test/dummy_2.3/config/boot.rb +114 -0
  15. data/test/dummy_2.3/config/database.yml +22 -0
  16. data/test/dummy_2.3/config/environment.rb +43 -0
  17. data/test/dummy_2.3/config/environments/development.rb +17 -0
  18. data/test/dummy_2.3/config/environments/test.rb +28 -0
  19. data/test/dummy_2.3/config/initializers/backtrace_silencers.rb +7 -0
  20. data/test/dummy_2.3/config/initializers/bundler.rb +4 -0
  21. data/test/dummy_2.3/config/initializers/cookie_verification_secret.rb +7 -0
  22. data/test/dummy_2.3/config/initializers/inflections.rb +10 -0
  23. data/test/{dummy → dummy_2.3}/config/initializers/mime_types.rb +0 -0
  24. data/test/dummy_2.3/config/initializers/new_rails_defaults.rb +21 -0
  25. data/test/dummy_2.3/config/initializers/session_store.rb +15 -0
  26. data/test/dummy_2.3/config/locales/en.yml +5 -0
  27. data/test/dummy_2.3/config/routes.rb +43 -0
  28. data/test/dummy_2.3/db/migrate/20110922194432_create_people.rb +15 -0
  29. data/test/dummy_2.3/db/migrate/20110922194512_create_groups.rb +12 -0
  30. data/test/dummy_2.3/db/schema.rb +27 -0
  31. data/test/dummy_2.3/db/seeds.rb +7 -0
  32. data/test/dummy_2.3/script/about +4 -0
  33. data/test/dummy_2.3/script/console +3 -0
  34. data/test/dummy_2.3/script/dbconsole +3 -0
  35. data/test/dummy_2.3/script/destroy +3 -0
  36. data/test/dummy_2.3/script/generate +3 -0
  37. data/test/dummy_2.3/script/performance/benchmarker +3 -0
  38. data/test/dummy_2.3/script/performance/profiler +3 -0
  39. data/test/dummy_2.3/script/plugin +3 -0
  40. data/test/dummy_2.3/script/runner +3 -0
  41. data/test/dummy_2.3/script/server +3 -0
  42. data/test/dummy_2.3/test/fixtures/groups.yml +12 -0
  43. data/test/dummy_2.3/test/fixtures/people.yml +59 -0
  44. data/test/{dummy → dummy_3.1}/Rakefile +0 -0
  45. data/test/{dummy → dummy_3.1}/app/controllers/application_controller.rb +0 -0
  46. data/test/{dummy/app/mailers → dummy_3.1/app/models}/.gitkeep +0 -0
  47. data/test/dummy_3.1/app/models/group.rb +2 -0
  48. data/test/dummy_3.1/app/models/person.rb +3 -0
  49. data/test/{dummy → dummy_3.1}/config/application.rb +3 -0
  50. data/test/{dummy → dummy_3.1}/config/boot.rb +0 -0
  51. data/test/{dummy → dummy_3.1}/config/database.yml +0 -0
  52. data/test/{dummy → dummy_3.1}/config/environment.rb +0 -0
  53. data/test/{dummy → dummy_3.1}/config/environments/development.rb +0 -0
  54. data/test/{dummy → dummy_3.1}/config/environments/test.rb +0 -0
  55. data/test/{dummy → dummy_3.1}/config/initializers/backtrace_silencers.rb +0 -0
  56. data/test/{dummy → dummy_3.1}/config/initializers/inflections.rb +0 -0
  57. data/test/dummy_3.1/config/initializers/mime_types.rb +5 -0
  58. data/test/{dummy → dummy_3.1}/config/initializers/secret_token.rb +0 -0
  59. data/test/{dummy → dummy_3.1}/config/initializers/session_store.rb +0 -0
  60. data/test/{dummy → dummy_3.1}/config/initializers/wrap_parameters.rb +0 -0
  61. data/test/{dummy → dummy_3.1}/config/locales/en.yml +0 -0
  62. data/test/{dummy → dummy_3.1}/config/routes.rb +0 -0
  63. data/test/{dummy → dummy_3.1}/config.ru +0 -0
  64. data/test/dummy_3.1/db/migrate/20110922194058_create_people.rb +11 -0
  65. data/test/dummy_3.1/db/migrate/20110922194126_create_groups.rb +8 -0
  66. data/test/dummy_3.1/db/schema.rb +29 -0
  67. data/test/{dummy/app/models → dummy_3.1/lib/assets}/.gitkeep +0 -0
  68. data/test/{dummy/lib/assets → dummy_3.1/log}/.gitkeep +0 -0
  69. data/test/{dummy → dummy_3.1}/script/rails +0 -0
  70. data/test/dummy_3.1/test/fixtures/groups.yml +12 -0
  71. data/test/dummy_3.1/test/fixtures/people.yml +59 -0
  72. data/test/liszt_test.rb +118 -2
  73. data/test/redis.conf +2 -0
  74. data/test/redis_list_test.rb +168 -0
  75. data/test/test_helper.rb +39 -2
  76. metadata +141 -73
  77. data/test/dummy/app/assets/javascripts/application.js +0 -7
  78. data/test/dummy/app/assets/stylesheets/application.css +0 -7
  79. data/test/dummy/app/helpers/application_helper.rb +0 -2
  80. data/test/dummy/app/views/layouts/application.html.erb +0 -14
  81. data/test/dummy/config/environments/production.rb +0 -51
  82. data/test/dummy/log/.gitkeep +0 -0
  83. data/test/dummy/public/404.html +0 -26
  84. data/test/dummy/public/422.html +0 -26
  85. data/test/dummy/public/500.html +0 -26
  86. data/test/dummy/public/favicon.ico +0 -0
data/.gitignore CHANGED
@@ -2,9 +2,13 @@
2
2
  log/*.log
3
3
  pkg/
4
4
  doc/
5
- test/dummy/db/*.sqlite3
6
- test/dummy/log/*.log
7
- test/dummy/tmp/
5
+ test/dummy_2.3/db/*.sqlite3
6
+ test/dummy_2.3/log/*.log
7
+ test/dummy_2.3/tmp/
8
+ test/dummy_3.1/db/*.sqlite3
9
+ test/dummy_3.1/log/*.log
10
+ test/dummy_3.1/tmp/
8
11
  .yardoc/
9
12
  .rvmrc
10
13
  /tags
14
+ /dump.rdb
data/Gemfile CHANGED
@@ -2,6 +2,7 @@ source "http://rubygems.org"
2
2
 
3
3
  gem 'rails', '3.1.0'
4
4
  gem 'sqlite3'
5
+ gem 'shoulda-context'
5
6
 
6
7
  # Specify your gem's dependencies in has_rank.gemspec
7
8
  gemspec
data/Gemfile.lock CHANGED
@@ -1,7 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- liszt (0.0.1)
4
+ liszt (0.0.3)
5
+ rails (>= 2.3.2)
5
6
  redis
6
7
 
7
8
  GEM
@@ -73,9 +74,11 @@ GEM
73
74
  rake (>= 0.8.7)
74
75
  rdoc (~> 3.4)
75
76
  thor (~> 0.14.6)
76
- rake (0.8.7)
77
+ rake (0.9.2)
78
+ rdiscount (1.6.8)
77
79
  rdoc (3.9.4)
78
80
  redis (2.2.2)
81
+ shoulda-context (1.0.0.beta1)
79
82
  sprockets (2.0.0)
80
83
  hike (~> 1.2)
81
84
  rack (~> 1.0)
@@ -87,6 +90,7 @@ GEM
87
90
  polyglot
88
91
  polyglot (>= 0.3.1)
89
92
  tzinfo (0.3.29)
93
+ yard (0.7.2)
90
94
 
91
95
  PLATFORMS
92
96
  ruby
@@ -94,4 +98,7 @@ PLATFORMS
94
98
  DEPENDENCIES
95
99
  liszt!
96
100
  rails (= 3.1.0)
101
+ rdiscount
102
+ shoulda-context
97
103
  sqlite3
104
+ yard
data/Gemfile.rails2 ADDED
@@ -0,0 +1,8 @@
1
+ source "http://rubygems.org"
2
+
3
+ gem 'rails', '2.3.14'
4
+ gem 'sqlite3'
5
+ gem 'shoulda-context'
6
+
7
+ # Specify your gem's dependencies in has_rank.gemspec
8
+ gemspec
@@ -0,0 +1,45 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ liszt (0.0.3)
5
+ rails (>= 2.3.2)
6
+ redis
7
+
8
+ GEM
9
+ remote: http://rubygems.org/
10
+ specs:
11
+ actionmailer (2.3.14)
12
+ actionpack (= 2.3.14)
13
+ actionpack (2.3.14)
14
+ activesupport (= 2.3.14)
15
+ rack (~> 1.1.0)
16
+ activerecord (2.3.14)
17
+ activesupport (= 2.3.14)
18
+ activeresource (2.3.14)
19
+ activesupport (= 2.3.14)
20
+ activesupport (2.3.14)
21
+ rack (1.1.2)
22
+ rails (2.3.14)
23
+ actionmailer (= 2.3.14)
24
+ actionpack (= 2.3.14)
25
+ activerecord (= 2.3.14)
26
+ activeresource (= 2.3.14)
27
+ activesupport (= 2.3.14)
28
+ rake (>= 0.8.3)
29
+ rake (0.9.2)
30
+ rdiscount (1.6.8)
31
+ redis (2.2.2)
32
+ shoulda-context (1.0.0.beta1)
33
+ sqlite3 (1.3.4)
34
+ yard (0.7.2)
35
+
36
+ PLATFORMS
37
+ ruby
38
+
39
+ DEPENDENCIES
40
+ liszt!
41
+ rails (= 2.3.14)
42
+ rdiscount
43
+ shoulda-context
44
+ sqlite3
45
+ yard
data/Rakefile CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  require 'bundler/gem_tasks'
4
4
 
5
+ desc "Install gems for Rails 2.3.14 and Rails 3.1.0"
6
+ task :install_bundle do
7
+ system "bundle install --gemfile Gemfile"
8
+ system "bundle install --gemfile Gemfile.rails2"
9
+ end
10
+
5
11
  begin
6
12
  require 'yard'
7
13
  YARD::Rake::YardocTask.new
@@ -17,4 +23,29 @@ Rake::TestTask.new(:test) do |t|
17
23
  t.verbose = false
18
24
  end
19
25
 
20
- task :default => :test
26
+ def execute(cmd)
27
+ Dir.chdir "test/dummy_2.3"
28
+ system "env RAILS_ENV=test BUNDLE_GEMFILE=../../Gemfile.rails2 bundle exec #{cmd}"
29
+ Dir.chdir "../dummy_3.1"
30
+ system "env RAILS_ENV=test BUNDLE_GEMFILE=../../Gemfile bundle exec #{cmd}"
31
+ Dir.chdir "../.."
32
+ end
33
+
34
+ desc "Create and migrate the test databases for Rails 2.3.14 and Rails 3.1.0"
35
+ task :set_up_test_dbs do
36
+ execute "rake db:create"
37
+ execute "rake db:migrate"
38
+ end
39
+
40
+ desc "Open console in Rails 2.3.14 app"
41
+ task :console_rails_2 do
42
+ Dir.chdir("test/dummy_2.3")
43
+ system("env RAILS_ENV=test BUNDLE_GEMFILE=../../Gemfile.rails2 bundle exec script/console")
44
+ end
45
+
46
+ desc "Run tests on Rails 2.3.14"
47
+ task :test_rails_2 do
48
+ system("env BUNDLE_GEMFILE=Gemfile.rails2 bundle exec rake test")
49
+ end
50
+
51
+ task :default => [:test, :test_rails_2]
@@ -1,15 +1,20 @@
1
1
  module Liszt
2
- class List
2
+ class RedisList
3
3
  # @param [String] key The Redis key associated with this list.
4
4
  def initialize(key)
5
5
  @key = key
6
6
  end
7
7
 
8
+ # Completely delete the list from Redis, leaving no marker.
9
+ def uninitialize
10
+ redis.del(@key)
11
+ end
12
+
8
13
  # Remove existing list items and repopulate the list with the given ids
9
14
  # (in the given order).
10
15
  # @param [Array<Fixnum>] ids
11
16
  # @return [Array<Fixnum>]
12
- def clear_and_populate!(ids, &block)
17
+ def clear_and_populate!(ids)
13
18
  redis.multi do
14
19
  clear
15
20
  # reverse and unshift to avoid touching the marker
@@ -21,7 +26,7 @@ module Liszt
21
26
  # Has the list been initialized?
22
27
  # @return [Boolean]
23
28
  def initialized?
24
- !length.nil?
29
+ redis.exists(@key)
25
30
  end
26
31
 
27
32
  # Does the list currently include this id?
@@ -181,17 +186,17 @@ module Liszt
181
186
  def with_lock
182
187
  start_time = Time.now
183
188
  until get_lock
184
- sleep 0.25
185
- raise "Timed out!" if (Time.now - start_time) > 2.0
189
+ sleep 0.2
190
+ raise "Timed out!" if (Time.now - start_time) > 10
186
191
  end
187
192
  yield
188
193
  ensure
189
194
  release_lock
190
195
  end
191
196
 
192
- def get_lock
197
+ def get_lock(timeout=lock_expiration_time)
193
198
  if redis.setnx(lock_key, true)
194
- redis.expire(lock_key, lock_expiration_time)
199
+ redis.expire(lock_key, timeout)
195
200
  true
196
201
  else
197
202
  false
data/lib/liszt/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Liszt
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/liszt.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require "liszt/version"
2
2
  require "liszt/instantizeable"
3
- require "liszt/list"
3
+ require "liszt/redis_list"
4
4
 
5
5
  module Liszt
6
6
  mattr_accessor :redis
@@ -11,10 +11,17 @@ module Liszt
11
11
  # currently support re-sorting lists when a scope changes. The assumption is
12
12
  # that attributes used as scopes won't change after creation.
13
13
  #
14
+ # The other major limitation at the moment is that scopes can't be <tt>nil</tt>.
15
+ # If a record has nil for a scope value, its associated list will never have
16
+ # any items in it.
17
+ #
14
18
  # @param [Hash] options
15
19
  # @option options [Symbol, Array] :scope The attribute or attributes to use
16
20
  # as list constraints.
17
21
  # @option options [Hash] :conditions Any extra constraints to impose.
22
+ # @option options [Proc] :sort_by A lambda to pass into initialize_list! the first
23
+ # time an item is added to an uninitialized list. It has the same semantics as
24
+ # <tt>Enumerable#sort_by</tt>.
18
25
  def acts_as_liszt(options = {})
19
26
  extend Instantizeable
20
27
  extend ClassMethods
@@ -28,8 +35,9 @@ module Liszt
28
35
  options.reverse_merge! :conditions => {}, :scope => []
29
36
 
30
37
  @liszt_conditions = options[:conditions]
31
- @liszt_scope = Array(options[:scope]).sort
38
+ @liszt_scope = Array(options[:scope]).sort_by(&:to_s)
32
39
  @liszt_query = nil
40
+ @liszt_sort_by = options[:sort_by]
33
41
  end
34
42
 
35
43
  module ClassMethods
@@ -42,7 +50,11 @@ module Liszt
42
50
  ids = if block_given?
43
51
  objects.sort_by(&block).map(&:id)
44
52
  else
45
- objects.map(&:id).sort.reverse
53
+ if @liszt_sort_by
54
+ objects.sort_by(&@liszt_sort_by).map(&:id)
55
+ else
56
+ objects.map(&:id).sort.reverse
57
+ end
46
58
  end
47
59
 
48
60
  ordered_list(obj).clear_and_populate!(ids)
@@ -50,7 +62,7 @@ module Liszt
50
62
  end
51
63
 
52
64
  def ordered_list(obj={})
53
- Liszt::List.new(liszt_key(obj))
65
+ Liszt::RedisList.new(liszt_key(obj))
54
66
  end
55
67
 
56
68
  def ordered_list_initialized?(obj={})
@@ -69,8 +81,8 @@ module Liszt
69
81
  if double_check
70
82
  objs = find(:all, :conditions => liszt_query(obj))
71
83
  real_ids = objs.map(&:id)
72
- if real_ids != ids
73
- unlisted_ids = real_ids - ids
84
+ unlisted_ids = real_ids - ids
85
+ if unlisted_ids.count > 0
74
86
  ids = ordered_list(obj).clear_and_populate!(unlisted_ids + ids)
75
87
  end
76
88
  else
@@ -135,8 +147,16 @@ module Liszt
135
147
  end
136
148
 
137
149
  def add_to_list
138
- if meets_list_conditions?
139
- ordered_list.unshift(self)
150
+ if ordered_list_initialized?
151
+ if meets_list_conditions?
152
+ ordered_list.unshift(self.id)
153
+ end
154
+ else
155
+ if @liszt_sort_by
156
+ initialize_list!(&@liszt_sort_by)
157
+ else
158
+ initialize_list!
159
+ end
140
160
  end
141
161
  true
142
162
  end
@@ -0,0 +1,10 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require(File.join(File.dirname(__FILE__), 'config', 'boot'))
5
+
6
+ require 'rake'
7
+ require 'rake/testtask'
8
+ require 'rake/rdoctask'
9
+
10
+ require 'tasks/rails'
@@ -0,0 +1,10 @@
1
+ # Filters added to this controller apply to all controllers in the application.
2
+ # Likewise, all the methods added will be available for all controllers.
3
+
4
+ class ApplicationController < ActionController::Base
5
+ helper :all # include all helpers, all the time
6
+ protect_from_forgery # See ActionController::RequestForgeryProtection for details
7
+
8
+ # Scrub sensitive parameters from your log
9
+ # filter_parameter_logging :password
10
+ end
@@ -0,0 +1,2 @@
1
+ class Group < ActiveRecord::Base
2
+ end
@@ -0,0 +1,3 @@
1
+ class Person < ActiveRecord::Base
2
+ acts_as_liszt :scope => [:group_id, :is_male]
3
+ end
@@ -0,0 +1,114 @@
1
+ # Don't change this file!
2
+ # Configure your app in config/environment.rb and config/environments/*.rb
3
+
4
+ RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
5
+
6
+ module Rails
7
+ class << self
8
+ def boot!
9
+ unless booted?
10
+ preinitialize
11
+ pick_boot.run
12
+ end
13
+ end
14
+
15
+ def booted?
16
+ defined? Rails::Initializer
17
+ end
18
+
19
+ def pick_boot
20
+ (vendor_rails? ? VendorBoot : GemBoot).new
21
+ end
22
+
23
+ def vendor_rails?
24
+ File.exist?("#{RAILS_ROOT}/vendor/rails")
25
+ end
26
+
27
+ def preinitialize
28
+ load(preinitializer_path) if File.exist?(preinitializer_path)
29
+ end
30
+
31
+ def preinitializer_path
32
+ "#{RAILS_ROOT}/config/preinitializer.rb"
33
+ end
34
+ end
35
+
36
+ class Boot
37
+ def run
38
+ load_initializer
39
+ Rails::Initializer.run(:set_load_path)
40
+ end
41
+ end
42
+
43
+ class VendorBoot < Boot
44
+ def load_initializer
45
+ require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer"
46
+ Rails::Initializer.run(:install_gem_spec_stubs)
47
+ Rails::GemDependency.add_frozen_gem_path
48
+ end
49
+ end
50
+
51
+ class GemBoot < Boot
52
+ def load_initializer
53
+ self.class.load_rubygems
54
+ load_rails_gem
55
+ require 'initializer'
56
+ end
57
+
58
+ def load_rails_gem
59
+ if version = self.class.gem_version
60
+ gem 'rails', version
61
+ else
62
+ gem 'rails'
63
+ end
64
+ rescue Gem::LoadError => load_error
65
+ if load_error.message =~ /Could not find RubyGem rails/
66
+ STDERR.puts %(Missing the Rails #{version} gem. Please `gem install -v=#{version} rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.)
67
+ exit 1
68
+ else
69
+ raise
70
+ end
71
+ end
72
+
73
+ class << self
74
+ def rubygems_version
75
+ Gem::RubyGemsVersion rescue nil
76
+ end
77
+
78
+ def gem_version
79
+ if defined? RAILS_GEM_VERSION
80
+ RAILS_GEM_VERSION
81
+ elsif ENV.include?('RAILS_GEM_VERSION')
82
+ ENV['RAILS_GEM_VERSION']
83
+ else
84
+ parse_gem_version(read_environment_rb)
85
+ end
86
+ end
87
+
88
+ def load_rubygems
89
+ min_version = '1.3.2'
90
+ require 'rubygems'
91
+ unless rubygems_version >= min_version
92
+ $stderr.puts %Q(Rails requires RubyGems >= #{min_version} (you have #{rubygems_version}). Please `gem update --system` and try again.)
93
+ exit 1
94
+ end
95
+
96
+ rescue LoadError
97
+ $stderr.puts %Q(Rails requires RubyGems >= #{min_version}. Please install RubyGems and try again: http://rubygems.rubyforge.org)
98
+ exit 1
99
+ end
100
+
101
+ def parse_gem_version(text)
102
+ $1 if text =~ /^[^#]*RAILS_GEM_VERSION\s*=\s*["']([!~<>=]*\s*[\d.]+)["']/
103
+ end
104
+
105
+ private
106
+ def read_environment_rb
107
+ File.read("#{RAILS_ROOT}/config/environment.rb")
108
+ end
109
+ end
110
+ end
111
+ end
112
+
113
+ # All that for this:
114
+ Rails.boot!
@@ -0,0 +1,22 @@
1
+ # SQLite version 3.x
2
+ # gem install sqlite3-ruby (not necessary on OS X Leopard)
3
+ development:
4
+ adapter: sqlite3
5
+ database: db/development.sqlite3
6
+ pool: 5
7
+ timeout: 5000
8
+
9
+ # Warning: The database defined as "test" will be erased and
10
+ # re-generated from your development database when you run "rake".
11
+ # Do not set this db to the same as development or production.
12
+ test:
13
+ adapter: sqlite3
14
+ database: db/test.sqlite3
15
+ pool: 5
16
+ timeout: 5000
17
+
18
+ production:
19
+ adapter: sqlite3
20
+ database: db/production.sqlite3
21
+ pool: 5
22
+ timeout: 5000
@@ -0,0 +1,43 @@
1
+ # Be sure to restart your server when you modify this file
2
+
3
+ # Specifies gem version of Rails to use when vendor/rails is not present
4
+ RAILS_GEM_VERSION = '2.3.14' unless defined? RAILS_GEM_VERSION
5
+
6
+ # Bootstrap the Rails environment, frameworks, and default configuration
7
+ require File.join(File.dirname(__FILE__), 'boot')
8
+
9
+ Rails::Initializer.run do |config|
10
+ # Settings in config/environments/* take precedence over those specified here.
11
+ # Application configuration should go into files in config/initializers
12
+ # -- all .rb files in that directory are automatically loaded.
13
+
14
+ # Add additional load paths for your own custom dirs
15
+ # config.autoload_paths += %W( #{RAILS_ROOT}/extras )
16
+
17
+ # Specify gems that this application depends on and have them installed with rake gems:install
18
+ # config.gem "bj"
19
+ # config.gem "hpricot", :version => '0.6', :source => "http://code.whytheluckystiff.net"
20
+ # config.gem "sqlite3-ruby", :lib => "sqlite3"
21
+ # config.gem "aws-s3", :lib => "aws/s3"
22
+
23
+ # Only load the plugins named here, in the order given (default is alphabetical).
24
+ # :all can be used as a placeholder for all plugins not explicitly named
25
+ # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
26
+
27
+ # Skip frameworks you're not going to use. To use Rails without a database,
28
+ # you must remove the Active Record framework.
29
+ # config.frameworks -= [ :active_record, :active_resource, :action_mailer ]
30
+
31
+ # Activate observers that should always be running
32
+ # config.active_record.observers = :cacher, :garbage_collector, :forum_observer
33
+
34
+ # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
35
+ # Run "rake -D time" for a list of tasks for finding time zone names.
36
+ config.time_zone = 'UTC'
37
+
38
+ # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
39
+ # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}')]
40
+ # config.i18n.default_locale = :de
41
+ end
42
+
43
+ Liszt.redis = Redis.new(:host => "localhost", :port => "10001")
@@ -0,0 +1,17 @@
1
+ # Settings specified here will take precedence over those in config/environment.rb
2
+
3
+ # In the development environment your application's code is reloaded on
4
+ # every request. This slows down response time but is perfect for development
5
+ # since you don't have to restart the webserver when you make code changes.
6
+ config.cache_classes = false
7
+
8
+ # Log error messages when you accidentally call methods on nil.
9
+ config.whiny_nils = true
10
+
11
+ # Show full error reports and disable caching
12
+ config.action_controller.consider_all_requests_local = true
13
+ config.action_view.debug_rjs = true
14
+ config.action_controller.perform_caching = false
15
+
16
+ # Don't care if the mailer can't send
17
+ config.action_mailer.raise_delivery_errors = false
@@ -0,0 +1,28 @@
1
+ # Settings specified here will take precedence over those in config/environment.rb
2
+
3
+ # The test environment is used exclusively to run your application's
4
+ # test suite. You never need to work with it otherwise. Remember that
5
+ # your test database is "scratch space" for the test suite and is wiped
6
+ # and recreated between test runs. Don't rely on the data there!
7
+ config.cache_classes = true
8
+
9
+ # Log error messages when you accidentally call methods on nil.
10
+ config.whiny_nils = true
11
+
12
+ # Show full error reports and disable caching
13
+ config.action_controller.consider_all_requests_local = true
14
+ config.action_controller.perform_caching = false
15
+ config.action_view.cache_template_loading = true
16
+
17
+ # Disable request forgery protection in test environment
18
+ config.action_controller.allow_forgery_protection = false
19
+
20
+ # Tell Action Mailer not to deliver emails to the real world.
21
+ # The :test delivery method accumulates sent emails in the
22
+ # ActionMailer::Base.deliveries array.
23
+ config.action_mailer.delivery_method = :test
24
+
25
+ # Use SQL instead of Active Record's schema dumper when creating the test database.
26
+ # This is necessary if your schema can't be completely dumped by the schema dumper,
27
+ # like if you have constraints or database-specific column types
28
+ # config.active_record.schema_format = :sql
@@ -0,0 +1,7 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
4
+ # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
5
+
6
+ # You can also remove all the silencers if you're trying do debug a problem that might steem from framework code.
7
+ # Rails.backtrace_cleaner.remove_silencers!
@@ -0,0 +1,4 @@
1
+ Bundler.require
2
+ require 'redis'
3
+ require 'liszt'
4
+ require 'shoulda-context'
@@ -0,0 +1,7 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Your secret key for verifying the integrity of signed cookies.
4
+ # If you change this key, all old signed cookies will become invalid!
5
+ # Make sure the secret is at least 30 characters and all random,
6
+ # no regular words or you'll be exposed to dictionary attacks.
7
+ ActionController::Base.cookie_verifier_secret = 'e1e07ce996758305fbf99d89d2319082ab582c3e0b4f070d79533a43b1e09abf8ad8f18c809e565d0ade3186fa030b412d77f92bd49a6736a52cbbcba5a0358a';
@@ -0,0 +1,10 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Add new inflection rules using the following format
4
+ # (all these examples are active by default):
5
+ # ActiveSupport::Inflector.inflections do |inflect|
6
+ # inflect.plural /^(ox)$/i, '\1en'
7
+ # inflect.singular /^(ox)en/i, '\1'
8
+ # inflect.irregular 'person', 'people'
9
+ # inflect.uncountable %w( fish sheep )
10
+ # end
@@ -0,0 +1,21 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # These settings change the behavior of Rails 2 apps and will be defaults
4
+ # for Rails 3. You can remove this initializer when Rails 3 is released.
5
+
6
+ if defined?(ActiveRecord)
7
+ # Include Active Record class name as root for JSON serialized output.
8
+ ActiveRecord::Base.include_root_in_json = true
9
+
10
+ # Store the full class name (including module namespace) in STI type column.
11
+ ActiveRecord::Base.store_full_sti_class = true
12
+ end
13
+
14
+ ActionController::Routing.generate_best_match = false
15
+
16
+ # Use ISO 8601 format for JSON serialized times and dates.
17
+ ActiveSupport.use_standard_json_time_format = true
18
+
19
+ # Don't escape HTML entities in JSON, leave that for the #json_escape helper.
20
+ # if you're including raw json in an HTML page.
21
+ ActiveSupport.escape_html_entities_in_json = false
@@ -0,0 +1,15 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Your secret key for verifying cookie session data integrity.
4
+ # If you change this key, all old sessions will become invalid!
5
+ # Make sure the secret is at least 30 characters and all random,
6
+ # no regular words or you'll be exposed to dictionary attacks.
7
+ ActionController::Base.session = {
8
+ :key => '_dummy_2.3_session',
9
+ :secret => '619392db010b8f2f53e05d969fddcf8fc241a5a6b16d084982f46c4c26d671ad3693435cef5272083db46d2c5ff962964ff643d14c3548bc2cb4086720c3b145'
10
+ }
11
+
12
+ # Use the database for sessions instead of the cookie-based default,
13
+ # which shouldn't be used to store highly confidential information
14
+ # (create the session table with "rake db:sessions:create")
15
+ # ActionController::Base.session_store = :active_record_store
@@ -0,0 +1,5 @@
1
+ # Sample localization file for English. Add more files in this directory for other locales.
2
+ # See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
3
+
4
+ en:
5
+ hello: "Hello world"