listable 0.1.3 → 0.1.4

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.
data/Gemfile CHANGED
@@ -1,14 +1,19 @@
1
1
  source "http://rubygems.org"
2
2
  # Add dependencies required to use your gem here.
3
3
  # Example:
4
- # gem "activesupport", ">= 2.3.5"
4
+ gem "activesupport", ">= 3.2"
5
+ gem "activerecord", ">= 3.2"
5
6
 
6
7
  # Add dependencies to develop your gem here.
7
8
  # Include everything needed to run rake, tests, features, etc.
8
9
  group :development do
10
+ gem "test-unit", "~> 2.5.4"
9
11
  gem "shoulda", ">= 0"
10
12
  gem "rdoc", "~> 3.12"
11
13
  gem "bundler", "~> 1.2.3"
12
14
  gem "jeweler", "~> 1.8.4"
13
15
  gem "simplecov", ">= 0"
16
+ gem "sqlite3"
17
+ gem "pg"
18
+ gem "mysql2"
14
19
  end
@@ -1,11 +1,21 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
+ activemodel (3.2.11)
5
+ activesupport (= 3.2.11)
6
+ builder (~> 3.0.0)
7
+ activerecord (3.2.11)
8
+ activemodel (= 3.2.11)
9
+ activesupport (= 3.2.11)
10
+ arel (~> 3.0.2)
11
+ tzinfo (~> 0.3.29)
4
12
  activesupport (3.2.11)
5
13
  i18n (~> 0.6)
6
14
  multi_json (~> 1.0)
15
+ arel (3.0.2)
7
16
  bourne (1.1.2)
8
17
  mocha (= 0.10.5)
18
+ builder (3.0.4)
9
19
  git (1.2.5)
10
20
  i18n (0.6.1)
11
21
  jeweler (1.8.4)
@@ -18,6 +28,8 @@ GEM
18
28
  mocha (0.10.5)
19
29
  metaclass (~> 0.0.1)
20
30
  multi_json (1.5.0)
31
+ mysql2 (0.3.11)
32
+ pg (0.14.1)
21
33
  rake (10.0.3)
22
34
  rdoc (3.12)
23
35
  json (~> 1.4)
@@ -32,13 +44,22 @@ GEM
32
44
  multi_json (~> 1.0)
33
45
  simplecov-html (~> 0.7.1)
34
46
  simplecov-html (0.7.1)
47
+ sqlite3 (1.3.7)
48
+ test-unit (2.5.4)
49
+ tzinfo (0.3.35)
35
50
 
36
51
  PLATFORMS
37
52
  ruby
38
53
 
39
54
  DEPENDENCIES
55
+ activerecord (>= 3.2)
56
+ activesupport (>= 3.2)
40
57
  bundler (~> 1.2.3)
41
58
  jeweler (~> 1.8.4)
59
+ mysql2
60
+ pg
42
61
  rdoc (~> 3.12)
43
62
  shoulda
44
63
  simplecov
64
+ sqlite3
65
+ test-unit (~> 2.5.4)
data/Rakefile CHANGED
@@ -34,14 +34,6 @@ Rake::TestTask.new(:test) do |test|
34
34
  test.verbose = true
35
35
  end
36
36
 
37
- # require 'simplecov/rcovtask'
38
- # Rcov::RcovTask.new do |test|
39
- # test.libs << 'test'
40
- # test.pattern = 'test/**/test_*.rb'
41
- # test.verbose = true
42
- # test.rcov_opts << '--exclude "gems/*"'
43
- # end
44
-
45
37
  task :default => :test
46
38
 
47
39
  require 'rdoc/task'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.3
1
+ 0.1.4
@@ -38,13 +38,22 @@ module Listable
38
38
  end
39
39
  end
40
40
 
41
- class ActiveRecord::Base
42
- include Listable
43
- include Listable::Querying
41
+ ActiveRecord::Base.send :include, Listable
42
+ ActiveRecord::Base.send :include, Listable::Querying
43
+
44
+ ActiveRecord::ConnectionAdapters::AbstractAdapter.send :include, Listable::ConnectionAdapters::SchemaStatements
45
+
46
+ if defined?(Rails)
47
+ # Extending connection adapters when lazily loaded by Rails
48
+ require 'listable/railtie'
49
+ else
50
+ require 'active_record/connection_adapters/sqlite_adapter'
51
+ require 'active_record/connection_adapters/postgresql_adapter'
52
+ require 'active_record/connection_adapters/mysql2_adapter'
53
+
54
+ # Extending connection adapters
55
+ ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.send(:include, Listable::ConnectionAdapters::PostgreSQLExtensions)
56
+ ActiveRecord::ConnectionAdapters::SQLiteAdapter.send(:include, Listable::ConnectionAdapters::SQLiteExtensions)
57
+ ActiveRecord::ConnectionAdapters::Mysql2Adapter.send(:include, Listable::ConnectionAdapters::MySQLExtensions)
44
58
  end
45
-
46
- class ActiveRecord::ConnectionAdapters::AbstractAdapter
47
- include Listable::ConnectionAdapters::SchemaStatements
48
- end
49
-
50
-
59
+
@@ -11,10 +11,6 @@ module Listable
11
11
  ActiveRecord::ConnectionAdapters::SQLiteAdapter.send(:include, Listable::ConnectionAdapters::SQLiteExtensions)
12
12
  end
13
13
 
14
- if ActiveRecord::ConnectionAdapters.const_defined?(:MysqlAdapter)
15
- ActiveRecord::ConnectionAdapters::MysqlAdapter.send(:include, Listable::ConnectionAdapters::MySQLExtensions)
16
- end
17
-
18
14
  if ActiveRecord::ConnectionAdapters.const_defined?(:Mysql2Adapter)
19
15
  ActiveRecord::ConnectionAdapters::Mysql2Adapter.send(:include, Listable::ConnectionAdapters::MySQLExtensions)
20
16
  end
@@ -1,6 +1,5 @@
1
1
  module Listable
2
2
  class ViewManager
3
- cattr_reader :listables
4
3
 
5
4
  class << self
6
5
  def prefixed_view_name(name)
@@ -11,6 +10,10 @@ module Listable
11
10
  'lstble_'
12
11
  end
13
12
 
13
+ def listables
14
+ @@listables
15
+ end
16
+
14
17
  def add_listable(view_name, model_name, model_scope_name)
15
18
  @@listables ||= {}
16
19
  @@listables[view_name] ||= {}
@@ -22,6 +25,7 @@ module Listable
22
25
  end
23
26
 
24
27
  def create_views
28
+ return if listables.nil?
25
29
  ActiveRecord::Base.transaction do
26
30
  drop_views # First drop all listable views to get a fresh start
27
31
  listables.each do |view_name, query_info|
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "listable"
8
- s.version = "0.1.3"
8
+ s.version = "0.1.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Johannes Baldursson"]
12
- s.date = "2013-01-30"
12
+ s.date = "2013-02-03"
13
13
  s.description = "With listable you can consolidate fields from several models into one, backed up by a database view.\n It is perfect for e.g. a front page where you may want to display the most recent additions to your site in a joint list.\n By providing scopes for each model you wish to include in a view, Listable will automatically create the database view for you."
14
14
  s.email = "johannes.baldursson@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -31,37 +31,58 @@ Gem::Specification.new do |s|
31
31
  "lib/listable/view_manager.rb",
32
32
  "lib/tasks/listable.rake",
33
33
  "listable.gemspec",
34
+ "test/database.yml",
34
35
  "test/helper.rb",
36
+ "test/models.rb",
37
+ "test/schema.rb",
35
38
  "test/test_listable.rb"
36
39
  ]
37
40
  s.homepage = "http://github.com/baldursson/listable"
38
41
  s.licenses = ["MIT"]
39
42
  s.require_paths = ["lib"]
40
- s.rubygems_version = "1.8.10"
43
+ s.rubygems_version = "1.8.19"
41
44
  s.summary = "Rails extension that makes it easy to list and query several models through a single view backed model."
42
45
 
43
46
  if s.respond_to? :specification_version then
44
47
  s.specification_version = 3
45
48
 
46
49
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
50
+ s.add_runtime_dependency(%q<activesupport>, [">= 3.2"])
51
+ s.add_runtime_dependency(%q<activerecord>, [">= 3.2"])
52
+ s.add_development_dependency(%q<test-unit>, ["~> 2.5.4"])
47
53
  s.add_development_dependency(%q<shoulda>, [">= 0"])
48
54
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
49
55
  s.add_development_dependency(%q<bundler>, ["~> 1.2.3"])
50
56
  s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
51
57
  s.add_development_dependency(%q<simplecov>, [">= 0"])
58
+ s.add_development_dependency(%q<sqlite3>, [">= 0"])
59
+ s.add_development_dependency(%q<pg>, [">= 0"])
60
+ s.add_development_dependency(%q<mysql2>, [">= 0"])
52
61
  else
62
+ s.add_dependency(%q<activesupport>, [">= 3.2"])
63
+ s.add_dependency(%q<activerecord>, [">= 3.2"])
64
+ s.add_dependency(%q<test-unit>, ["~> 2.5.4"])
53
65
  s.add_dependency(%q<shoulda>, [">= 0"])
54
66
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
55
67
  s.add_dependency(%q<bundler>, ["~> 1.2.3"])
56
68
  s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
57
69
  s.add_dependency(%q<simplecov>, [">= 0"])
70
+ s.add_dependency(%q<sqlite3>, [">= 0"])
71
+ s.add_dependency(%q<pg>, [">= 0"])
72
+ s.add_dependency(%q<mysql2>, [">= 0"])
58
73
  end
59
74
  else
75
+ s.add_dependency(%q<activesupport>, [">= 3.2"])
76
+ s.add_dependency(%q<activerecord>, [">= 3.2"])
77
+ s.add_dependency(%q<test-unit>, ["~> 2.5.4"])
60
78
  s.add_dependency(%q<shoulda>, [">= 0"])
61
79
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
62
80
  s.add_dependency(%q<bundler>, ["~> 1.2.3"])
63
81
  s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
64
82
  s.add_dependency(%q<simplecov>, [">= 0"])
83
+ s.add_dependency(%q<sqlite3>, [">= 0"])
84
+ s.add_dependency(%q<pg>, [">= 0"])
85
+ s.add_dependency(%q<mysql2>, [">= 0"])
65
86
  end
66
87
  end
67
88
 
@@ -0,0 +1,14 @@
1
+ sqlite:
2
+ adapter: sqlite3
3
+ database: listable.sqlite3
4
+
5
+ postgres:
6
+ adapter: postgresql
7
+ database: listable_test
8
+ encoding: unicode
9
+ host: localhost
10
+
11
+ mysql:
12
+ adapter: mysql2
13
+ database: listable_test
14
+ encoding: utf8
@@ -1,5 +1,9 @@
1
+ require 'simplecov'
2
+ SimpleCov.start
3
+
1
4
  require 'rubygems'
2
5
  require 'bundler'
6
+
3
7
  begin
4
8
  Bundler.setup(:default, :development)
5
9
  rescue Bundler::BundlerError => e
@@ -9,10 +13,34 @@ rescue Bundler::BundlerError => e
9
13
  end
10
14
  require 'test/unit'
11
15
  require 'shoulda'
16
+ require 'active_record'
17
+ require 'active_support'
12
18
 
13
19
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
14
20
  $LOAD_PATH.unshift(File.dirname(__FILE__))
15
21
  require 'listable'
16
22
 
23
+
17
24
  class Test::Unit::TestCase
18
25
  end
26
+
27
+ adapter = ENV["DB"] || "sqlite"
28
+ config = YAML::load_file(File.dirname(__FILE__) + "/database.yml")[adapter]
29
+
30
+ if ['postgres', 'mysql'].include? adapter
31
+ ActiveRecord::Base.establish_connection(config.merge('database' => nil))
32
+ ActiveRecord::Base.connection.create_database config['database']
33
+ ActiveRecord::Base.establish_connection(config)
34
+ end
35
+
36
+ ActiveRecord::Base.establish_connection(config)
37
+
38
+ Test::Unit.at_exit do
39
+ if ['postgres', 'mysql'].include? adapter
40
+ ActiveRecord::Base.establish_connection(config.merge('database' => nil))
41
+ ActiveRecord::Base.connection.drop_database config['database']
42
+ end
43
+ end
44
+
45
+ load File.dirname(__FILE__) + "/schema.rb"
46
+ load File.dirname(__FILE__) + "/models.rb"
@@ -0,0 +1,49 @@
1
+ class TopicalItems < ActiveRecord::Base
2
+ acts_as_listable_view
3
+ end
4
+
5
+ class Page < ActiveRecord::Base
6
+ listable_through :topical_items, :listables
7
+ scope :listables, select([:title, :body])
8
+ end
9
+
10
+ class Employee < ActiveRecord::Base
11
+ listable_through :topical_items, :listables
12
+ scope :listables, concat_select([:first_name, ' ', :last_name], :title).select(:biography)
13
+ end
14
+
15
+ class NewsArticle < ActiveRecord::Base
16
+ listable_through :topical_items, :listables
17
+ scope :listables, select_as(headline: 'title').select(:body)
18
+ end
19
+
20
+ # Seeding pages
21
+ Page.create(title: "I'm serious as a heart attack",
22
+ body: "Well, the way they make shows is, they make one show.
23
+ That show's called a pilot. Then they show that show to the people who make shows,
24
+ and on the strength of that one show they decide if they're going to make more shows.
25
+ Some pilots get picked and become television programs. Some don't, become nothing.
26
+ She starred in one of the ones that became nothing.")
27
+
28
+ Page.create(title: "Are you ready for the truth?",
29
+ body: "Look, just because I don't be givin' no man a foot massage don't make it right
30
+ for Marsellus to throw Antwone into a glass motherfuckin' house, fuckin' up
31
+ the way the nigger talks. Motherfucker do that shit to me, he better paralyze my ass,
32
+ 'cause I'll kill the motherfucker, know what I'm sayin'?")
33
+
34
+ # Seeding employees
35
+ Employee.create(first_name: 'Johannes',
36
+ last_name: 'Baldursson',
37
+ biography: "Normally, both your asses would be dead as fucking fried chicken,
38
+ but you happen to pull this shit while I'm in a transitional period so
39
+ I don't wanna kill you, I wanna help you. But I can't give you this case,
40
+ it don't belong to me. Besides, I've already been through too much shit
41
+ this morning over this case to hand it over to your dumb ass.")
42
+
43
+
44
+ NewsArticle.create(headline: 'Is she dead, yes or no?',
45
+ body: "Do you see any Teletubbies in here? Do you see a slender plastic tag clipped
46
+ to my shirt with my name printed on it? Do you see a little Asian child with
47
+ a blank expression on his face sitting outside on a mechanical helicopter that
48
+ shakes when you put quarters in it? No? Well, that's what you see at a toy store.
49
+ And you must think you're in a toy store, because you're here shopping for an infant named Jeb.")
@@ -0,0 +1,23 @@
1
+ ActiveRecord::Schema.define do
2
+ self.verbose = false
3
+
4
+ create_table :pages, :force => true do |t|
5
+ t.string :title
6
+ t.text :body
7
+ t.timestamps
8
+ end
9
+
10
+ create_table :employees, :force => true do |t|
11
+ t.string :first_name
12
+ t.string :last_name
13
+ t.text :biography
14
+ t.timestamps
15
+ end
16
+
17
+ create_table :news_articles, :force => true do |t|
18
+ t.string :headline
19
+ t.text :body
20
+ t.timestamps
21
+ end
22
+
23
+ end
@@ -1,7 +1,47 @@
1
1
  require 'helper'
2
2
 
3
3
  class TestListable < Test::Unit::TestCase
4
- should "probably rename this file and start testing for real" do
5
- flunk "hey buddy, you should probably rename this file and start testing for real"
4
+
5
+ context "a listable view model" do
6
+ def setup
7
+ Listable::ViewManager.create_views
8
+ end
9
+
10
+ def topical_items_count
11
+ TopicalItems.count
12
+ end
13
+
14
+ def listable_items_count
15
+ Page.listables.count + Employee.listables.count + NewsArticle.listables.count
16
+ end
17
+
18
+ should "have as many rows as the models it lists" do
19
+ assert_equal listable_items_count, topical_items_count
20
+ end
21
+
22
+ should "raise a read only exception when trying to write to" do
23
+ assert_raise(ActiveRecord::ReadOnlyRecord) do
24
+ TopicalItems.first.update_attribute(:title, 'New title')
25
+ end
26
+ end
6
27
  end
28
+
29
+ context "the query method concat_select" do
30
+ should "select arguments as a concatenated string" do
31
+ concatenated_name = Employee.concat_select([:first_name, ' ', :last_name], :full_name).first.full_name
32
+ assert_equal 'Johannes Baldursson', concatenated_name
33
+ end
34
+ end
35
+
36
+ context "the query method select_as" do
37
+ should "select fields as new names" do
38
+ renamed_selection = Employee.select_as(first_name: 'fname', last_name: 'lname').first
39
+ normal_selection = Employee.select([:first_name, :last_name]).first
40
+ renamed_values = [renamed_selection.fname, renamed_selection.lname]
41
+ normal_values = [normal_selection.first_name, normal_selection.last_name]
42
+
43
+ assert_equal normal_values, renamed_values
44
+ end
45
+ end
46
+
7
47
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: listable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,59 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-30 00:00:00.000000000 Z
12
+ date: 2013-02-03 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: activesupport
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '3.2'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '3.2'
30
+ - !ruby/object:Gem::Dependency
31
+ name: activerecord
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '3.2'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '3.2'
46
+ - !ruby/object:Gem::Dependency
47
+ name: test-unit
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: 2.5.4
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 2.5.4
14
62
  - !ruby/object:Gem::Dependency
15
63
  name: shoulda
16
- requirement: &2152705160 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
17
65
  none: false
18
66
  requirements:
19
67
  - - ! '>='
@@ -21,10 +69,15 @@ dependencies:
21
69
  version: '0'
22
70
  type: :development
23
71
  prerelease: false
24
- version_requirements: *2152705160
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
25
78
  - !ruby/object:Gem::Dependency
26
79
  name: rdoc
27
- requirement: &2152704300 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
28
81
  none: false
29
82
  requirements:
30
83
  - - ~>
@@ -32,10 +85,15 @@ dependencies:
32
85
  version: '3.12'
33
86
  type: :development
34
87
  prerelease: false
35
- version_requirements: *2152704300
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: '3.12'
36
94
  - !ruby/object:Gem::Dependency
37
95
  name: bundler
38
- requirement: &2152702520 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
39
97
  none: false
40
98
  requirements:
41
99
  - - ~>
@@ -43,10 +101,15 @@ dependencies:
43
101
  version: 1.2.3
44
102
  type: :development
45
103
  prerelease: false
46
- version_requirements: *2152702520
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 1.2.3
47
110
  - !ruby/object:Gem::Dependency
48
111
  name: jeweler
49
- requirement: &2152701680 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
50
113
  none: false
51
114
  requirements:
52
115
  - - ~>
@@ -54,10 +117,31 @@ dependencies:
54
117
  version: 1.8.4
55
118
  type: :development
56
119
  prerelease: false
57
- version_requirements: *2152701680
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: 1.8.4
58
126
  - !ruby/object:Gem::Dependency
59
127
  name: simplecov
60
- requirement: &2152700700 !ruby/object:Gem::Requirement
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ - !ruby/object:Gem::Dependency
143
+ name: sqlite3
144
+ requirement: !ruby/object:Gem::Requirement
61
145
  none: false
62
146
  requirements:
63
147
  - - ! '>='
@@ -65,7 +149,44 @@ dependencies:
65
149
  version: '0'
66
150
  type: :development
67
151
  prerelease: false
68
- version_requirements: *2152700700
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ - !ruby/object:Gem::Dependency
159
+ name: pg
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ! '>='
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ - !ruby/object:Gem::Dependency
175
+ name: mysql2
176
+ requirement: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ! '>='
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ type: :development
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
69
190
  description: ! "With listable you can consolidate fields from several models into
70
191
  one, backed up by a database view.\n It is perfect for e.g.
71
192
  a front page where you may want to display the most recent additions to your site
@@ -93,7 +214,10 @@ files:
93
214
  - lib/listable/view_manager.rb
94
215
  - lib/tasks/listable.rake
95
216
  - listable.gemspec
217
+ - test/database.yml
96
218
  - test/helper.rb
219
+ - test/models.rb
220
+ - test/schema.rb
97
221
  - test/test_listable.rb
98
222
  homepage: http://github.com/baldursson/listable
99
223
  licenses:
@@ -110,7 +234,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
110
234
  version: '0'
111
235
  segments:
112
236
  - 0
113
- hash: -1337354255169009245
237
+ hash: 1761110371856318284
114
238
  required_rubygems_version: !ruby/object:Gem::Requirement
115
239
  none: false
116
240
  requirements:
@@ -119,7 +243,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
119
243
  version: '0'
120
244
  requirements: []
121
245
  rubyforge_project:
122
- rubygems_version: 1.8.10
246
+ rubygems_version: 1.8.19
123
247
  signing_key:
124
248
  specification_version: 3
125
249
  summary: Rails extension that makes it easy to list and query several models through