listable 0.1.7 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 603a187e1336468db573e761b02486180c76c02d
4
+ data.tar.gz: 5e8c3429f92a21fe1db7ea6d8c4df991e444295e
5
+ SHA512:
6
+ metadata.gz: c453b509a740e4b74e5c1af2dd7bc6e7d12de76d9fa1fbfd763d05b2f60a364ca586ec07bea75c7429463b07b9f674721288720a6f1c89669cda7662e19d4b2b
7
+ data.tar.gz: 3e07b145a4b16af5d3119e3cd4f5d2e7aeb12648a157b94a529d9866e98146eb32a45c4bd032a1ed9908a8f206f80f4b9a1ad9e507b0ae9fb0f964fa63620445
data/Gemfile CHANGED
@@ -3,15 +3,16 @@ source "http://rubygems.org"
3
3
  # Example:
4
4
  gem "activesupport", ">= 3.2"
5
5
  gem "activerecord", ">= 3.2"
6
+ gem "composite_primary_keys", ">=5.0"
6
7
 
7
8
  # Add dependencies to develop your gem here.
8
9
  # Include everything needed to run rake, tests, features, etc.
9
10
  group :development do
10
- gem "test-unit", "~> 2.5.4"
11
+ gem "test-unit", "~> 3.0.1"
11
12
  gem "shoulda", ">= 0"
12
- gem "rdoc", "~> 3.12"
13
- gem "bundler", "~> 1.2.3"
14
- gem "jeweler", "~> 1.8.4"
13
+ gem "rdoc", "~> 4.1.1"
14
+ gem "bundler", "~> 1.7.2"
15
+ gem "jeweler", "~> 2.0.1"
15
16
  gem "simplecov", ">= 0"
16
17
  gem "sqlite3"
17
18
  gem "pg"
@@ -1,52 +1,89 @@
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)
12
- activesupport (3.2.11)
13
- i18n (~> 0.6)
14
- multi_json (~> 1.0)
15
- arel (3.0.2)
16
- bourne (1.1.2)
17
- mocha (= 0.10.5)
18
- builder (3.0.4)
19
- git (1.2.5)
20
- i18n (0.6.1)
21
- jeweler (1.8.4)
22
- bundler (~> 1.0)
4
+ activemodel (4.1.5)
5
+ activesupport (= 4.1.5)
6
+ builder (~> 3.1)
7
+ activerecord (4.1.5)
8
+ activemodel (= 4.1.5)
9
+ activesupport (= 4.1.5)
10
+ arel (~> 5.0.0)
11
+ activesupport (4.1.5)
12
+ i18n (~> 0.6, >= 0.6.9)
13
+ json (~> 1.7, >= 1.7.7)
14
+ minitest (~> 5.1)
15
+ thread_safe (~> 0.1)
16
+ tzinfo (~> 1.1)
17
+ addressable (2.3.6)
18
+ arel (5.0.1.20140414130214)
19
+ builder (3.2.2)
20
+ composite_primary_keys (7.0.10)
21
+ activerecord (~> 4.1.4)
22
+ descendants_tracker (0.0.4)
23
+ thread_safe (~> 0.3, >= 0.3.1)
24
+ docile (1.1.5)
25
+ faraday (0.9.0)
26
+ multipart-post (>= 1.2, < 3)
27
+ git (1.2.8)
28
+ github_api (0.12.1)
29
+ addressable (~> 2.3)
30
+ descendants_tracker (~> 0.0.4)
31
+ faraday (~> 0.8, < 0.10)
32
+ hashie (>= 3.2)
33
+ multi_json (>= 1.7.5, < 2.0)
34
+ nokogiri (~> 1.6.3)
35
+ oauth2
36
+ hashie (3.3.1)
37
+ highline (1.6.21)
38
+ i18n (0.6.11)
39
+ jeweler (2.0.1)
40
+ builder
41
+ bundler (>= 1.0)
23
42
  git (>= 1.2.5)
43
+ github_api
44
+ highline (>= 1.6.15)
45
+ nokogiri (>= 1.5.10)
24
46
  rake
25
47
  rdoc
26
- json (1.7.6)
27
- metaclass (0.0.1)
28
- mocha (0.10.5)
29
- metaclass (~> 0.0.1)
30
- multi_json (1.5.0)
31
- mysql2 (0.3.11)
32
- pg (0.14.1)
33
- rake (10.0.3)
34
- rdoc (3.12)
48
+ json (1.8.1)
49
+ jwt (1.0.0)
50
+ mini_portile (0.6.0)
51
+ minitest (5.4.1)
52
+ multi_json (1.10.1)
53
+ multi_xml (0.5.5)
54
+ multipart-post (2.0.0)
55
+ mysql2 (0.3.16)
56
+ nokogiri (1.6.3.1)
57
+ mini_portile (= 0.6.0)
58
+ oauth2 (1.0.0)
59
+ faraday (>= 0.8, < 0.10)
60
+ jwt (~> 1.0)
61
+ multi_json (~> 1.3)
62
+ multi_xml (~> 0.5)
63
+ rack (~> 1.2)
64
+ pg (0.17.1)
65
+ power_assert (0.1.3)
66
+ rack (1.5.2)
67
+ rake (10.3.2)
68
+ rdoc (4.1.1)
35
69
  json (~> 1.4)
36
- shoulda (3.3.2)
37
- shoulda-context (~> 1.0.1)
38
- shoulda-matchers (~> 1.4.1)
39
- shoulda-context (1.0.2)
40
- shoulda-matchers (1.4.2)
70
+ shoulda (3.5.0)
71
+ shoulda-context (~> 1.0, >= 1.0.1)
72
+ shoulda-matchers (>= 1.4.1, < 3.0)
73
+ shoulda-context (1.2.1)
74
+ shoulda-matchers (2.6.2)
41
75
  activesupport (>= 3.0.0)
42
- bourne (~> 1.1.2)
43
- simplecov (0.7.1)
44
- multi_json (~> 1.0)
45
- simplecov-html (~> 0.7.1)
46
- simplecov-html (0.7.1)
47
- sqlite3 (1.3.7)
48
- test-unit (2.5.4)
49
- tzinfo (0.3.35)
76
+ simplecov (0.9.0)
77
+ docile (~> 1.1.0)
78
+ multi_json
79
+ simplecov-html (~> 0.8.0)
80
+ simplecov-html (0.8.0)
81
+ sqlite3 (1.3.9)
82
+ test-unit (3.0.1)
83
+ power_assert
84
+ thread_safe (0.3.4)
85
+ tzinfo (1.2.2)
86
+ thread_safe (~> 0.1)
50
87
 
51
88
  PLATFORMS
52
89
  ruby
@@ -54,12 +91,13 @@ PLATFORMS
54
91
  DEPENDENCIES
55
92
  activerecord (>= 3.2)
56
93
  activesupport (>= 3.2)
57
- bundler (~> 1.2.3)
58
- jeweler (~> 1.8.4)
94
+ bundler (~> 1.7.2)
95
+ composite_primary_keys (>= 5.0)
96
+ jeweler (~> 2.0.1)
59
97
  mysql2
60
98
  pg
61
- rdoc (~> 3.12)
99
+ rdoc (~> 4.1.1)
62
100
  shoulda
63
101
  simplecov
64
102
  sqlite3
65
- test-unit (~> 2.5.4)
103
+ test-unit (~> 3.0.1)
@@ -1,11 +1,15 @@
1
1
  = listable
2
2
 
3
- With listable you can consolidate fields from several models into one, backed up by a database view.
3
+ With listable you can consolidate fields from several ActiveRecord models into one, backed up by a database view.
4
4
  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.
5
5
  By providing scopes for each model you wish to include in a view, listable will automatically create the database view for you.
6
6
  The view model and the models it lists will have a polymorphic association for convenience.
7
7
  Listable currently supports the following connection adapters: SQLite, PostgreSQL and MySQL2.
8
8
 
9
+ == Requirements
10
+ * ActiveRecord >= 3.2
11
+ * Tested with Rails 4
12
+
9
13
  == How to use
10
14
  This chapter shows some basic examples of all the steps needed to get started.
11
15
 
@@ -40,10 +44,13 @@ Here is a basic example:
40
44
  end
41
45
 
42
46
  === Creating the database views
43
- You can create the database views by running the rake task <em>listable:migrate</em>.
47
+ You can create the database views by running the rake task <em>listable:create</em>.
44
48
  But you will hardly ever need to do that since all listable views are automatically (re)created when running
45
49
  Rails' <em>db:migrate</em>.
46
50
 
51
+ The views created by listable will also conveniently be dropped and recreated when running <em>db:setup</em> or <em>db:reset</em>,
52
+ and dropped when running <em>db:drop</em>. If you need to drop the views manually, just run the rake task <em>listable:drop</em>
53
+
47
54
  ==== Why not generate Rails migrations to create the views?
48
55
  I believe it is very awkward to create views through migrations for several reasons.
49
56
  The basic role of a migration is to either add or remove columns where you can store data.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.7
1
+ 0.2.0
@@ -1,4 +1,5 @@
1
1
  require 'active_support/concern'
2
+ require 'composite_primary_keys'
2
3
 
3
4
  require 'listable/view_manager'
4
5
  require 'listable/connection_adapters'
@@ -10,13 +11,15 @@ module Listable
10
11
 
11
12
  module ClassMethods
12
13
  def listable_through(listable_view_name, scope_name)
13
- has_one listable_view_name.to_s.singularize, as: :listable
14
+ has_one listable_view_name.to_s.singularize.to_sym, as: :listable
14
15
 
15
16
  ViewManager.add_listable listable_view_name, self.name, scope_name
16
17
  end
17
18
 
18
19
  def acts_as_listable_view
19
20
  self.table_name = ViewManager.prefixed_view_name(self.name)
21
+ self.primary_keys = :listable_id, :listable_type
22
+
20
23
  belongs_to :listable, polymorphic: true
21
24
  include ViewMethods
22
25
  end
@@ -47,13 +50,19 @@ if defined?(Rails)
47
50
  # Extending connection adapters when lazily loaded by Rails
48
51
  require 'listable/railtie'
49
52
  else
50
- require 'active_record/connection_adapters/sqlite_adapter'
53
+ if ActiveRecord::VERSION::MAJOR < 4
54
+ require 'active_record/connection_adapters/sqlite_adapter'
55
+ ActiveRecord::ConnectionAdapters::SQLiteAdapter.send(:include, Listable::ConnectionAdapters::SQLiteExtensions)
56
+ else
57
+ require 'active_record/connection_adapters/sqlite3_adapter'
58
+ ActiveRecord::ConnectionAdapters::SQLite3Adapter.send(:include, Listable::ConnectionAdapters::SQLiteExtensions)
59
+ end
60
+
51
61
  require 'active_record/connection_adapters/postgresql_adapter'
52
62
  require 'active_record/connection_adapters/mysql2_adapter'
53
63
 
54
64
  # Extending connection adapters
55
65
  ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.send(:include, Listable::ConnectionAdapters::PostgreSQLExtensions)
56
- ActiveRecord::ConnectionAdapters::SQLiteAdapter.send(:include, Listable::ConnectionAdapters::SQLiteExtensions)
57
66
  ActiveRecord::ConnectionAdapters::Mysql2Adapter.send(:include, Listable::ConnectionAdapters::MySQLExtensions)
58
67
  end
59
68
 
@@ -16,7 +16,7 @@ module Listable
16
16
  def select_as(fields)
17
17
  selection = []
18
18
  fields.each do |field, as_name|
19
- selection << "#{connection.quote_table_name(field)} AS #{as_name}"
19
+ selection << "#{field} AS #{as_name}"
20
20
  end
21
21
  select(selection * ', ')
22
22
  end
@@ -11,6 +11,10 @@ module Listable
11
11
  ActiveRecord::ConnectionAdapters::SQLiteAdapter.send(:include, Listable::ConnectionAdapters::SQLiteExtensions)
12
12
  end
13
13
 
14
+ if ActiveRecord::ConnectionAdapters.const_defined?(:SQLite3Adapter)
15
+ ActiveRecord::ConnectionAdapters::SQLite3Adapter.send(:include, Listable::ConnectionAdapters::SQLiteExtensions)
16
+ end
17
+
14
18
  if ActiveRecord::ConnectionAdapters.const_defined?(:Mysql2Adapter)
15
19
  ActiveRecord::ConnectionAdapters::Mysql2Adapter.send(:include, Listable::ConnectionAdapters::MySQLExtensions)
16
20
  end
@@ -1,21 +1,33 @@
1
+ require 'active_record'
2
+
1
3
  namespace :listable do
2
4
  desc "(Re)creates all listable views"
3
- task :migrate => :environment do
4
- puts "Creating Listable views..."
5
+ task :create => :environment do
5
6
  Rails.application.eager_load!
6
- Listable::ViewManager.create_views
7
+
8
+ ActiveRecord::Migration.say_with_time "Listable::ViewManager.create_views" do
9
+ Listable::ViewManager.create_views
10
+ end
7
11
  end
8
12
 
9
- task :rollback => :environment do
10
- puts "Dropping Listable views..."
11
- Listable::ViewManager.drop_views
13
+ task :drop => :environment do
14
+ ActiveRecord::Migration.say_with_time "Listable::ViewManager.drop_view" do
15
+ Listable::ViewManager.drop_views
16
+ end
12
17
  end
13
18
  end
14
19
 
15
20
  # Rebuild views after db:migrate
16
21
  Rake::Task['db:migrate'].enhance do
17
- Rake::Task['listable:migrate'].invoke
22
+ Rake::Task['listable:create'].invoke
23
+ end
24
+
25
+ # Rebuild views after db:setup
26
+ Rake::Task['db:setup'].prerequisites.unshift 'listable:drop'
27
+ Rake::Task['db:setup'].enhance do
28
+ Rake::Task['listable:create'].invoke
18
29
  end
19
30
 
20
31
  # Drop views before a rollback to prevent errors due to column dependency
21
- Rake::Task['db:rollback'].enhance ['listable:rollback']
32
+ Rake::Task['db:drop'].enhance ['listable:drop']
33
+ Rake::Task['db:rollback'].enhance ['listable:drop']
@@ -2,14 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
+ # stub: listable 0.2.0 ruby lib
5
6
 
6
7
  Gem::Specification.new do |s|
7
8
  s.name = "listable"
8
- s.version = "0.1.7"
9
+ s.version = "0.2.0"
9
10
 
10
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib"]
11
13
  s.authors = ["Johannes Baldursson"]
12
- s.date = "2013-02-04"
14
+ s.date = "2014-09-02"
13
15
  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
16
  s.email = "johannes.baldursson@gmail.com"
15
17
  s.extra_rdoc_files = [
@@ -39,21 +41,21 @@ Gem::Specification.new do |s|
39
41
  ]
40
42
  s.homepage = "http://github.com/baldursson/listable"
41
43
  s.licenses = ["MIT"]
42
- s.require_paths = ["lib"]
43
- s.rubygems_version = "1.8.10"
44
+ s.rubygems_version = "2.2.2"
44
45
  s.summary = "ActiveRecord extension that makes it easy to list and query several models through a single view backed model."
45
46
 
46
47
  if s.respond_to? :specification_version then
47
- s.specification_version = 3
48
+ s.specification_version = 4
48
49
 
49
50
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
50
51
  s.add_runtime_dependency(%q<activesupport>, [">= 3.2"])
51
52
  s.add_runtime_dependency(%q<activerecord>, [">= 3.2"])
52
- s.add_development_dependency(%q<test-unit>, ["~> 2.5.4"])
53
+ s.add_runtime_dependency(%q<composite_primary_keys>, [">= 5.0"])
54
+ s.add_development_dependency(%q<test-unit>, ["~> 3.0.1"])
53
55
  s.add_development_dependency(%q<shoulda>, [">= 0"])
54
- s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
55
- s.add_development_dependency(%q<bundler>, ["~> 1.2.3"])
56
- s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
56
+ s.add_development_dependency(%q<rdoc>, ["~> 4.1.1"])
57
+ s.add_development_dependency(%q<bundler>, ["~> 1.7.2"])
58
+ s.add_development_dependency(%q<jeweler>, ["~> 2.0.1"])
57
59
  s.add_development_dependency(%q<simplecov>, [">= 0"])
58
60
  s.add_development_dependency(%q<sqlite3>, [">= 0"])
59
61
  s.add_development_dependency(%q<pg>, [">= 0"])
@@ -61,11 +63,12 @@ Gem::Specification.new do |s|
61
63
  else
62
64
  s.add_dependency(%q<activesupport>, [">= 3.2"])
63
65
  s.add_dependency(%q<activerecord>, [">= 3.2"])
64
- s.add_dependency(%q<test-unit>, ["~> 2.5.4"])
66
+ s.add_dependency(%q<composite_primary_keys>, [">= 5.0"])
67
+ s.add_dependency(%q<test-unit>, ["~> 3.0.1"])
65
68
  s.add_dependency(%q<shoulda>, [">= 0"])
66
- s.add_dependency(%q<rdoc>, ["~> 3.12"])
67
- s.add_dependency(%q<bundler>, ["~> 1.2.3"])
68
- s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
69
+ s.add_dependency(%q<rdoc>, ["~> 4.1.1"])
70
+ s.add_dependency(%q<bundler>, ["~> 1.7.2"])
71
+ s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
69
72
  s.add_dependency(%q<simplecov>, [">= 0"])
70
73
  s.add_dependency(%q<sqlite3>, [">= 0"])
71
74
  s.add_dependency(%q<pg>, [">= 0"])
@@ -74,11 +77,12 @@ Gem::Specification.new do |s|
74
77
  else
75
78
  s.add_dependency(%q<activesupport>, [">= 3.2"])
76
79
  s.add_dependency(%q<activerecord>, [">= 3.2"])
77
- s.add_dependency(%q<test-unit>, ["~> 2.5.4"])
80
+ s.add_dependency(%q<composite_primary_keys>, [">= 5.0"])
81
+ s.add_dependency(%q<test-unit>, ["~> 3.0.1"])
78
82
  s.add_dependency(%q<shoulda>, [">= 0"])
79
- s.add_dependency(%q<rdoc>, ["~> 3.12"])
80
- s.add_dependency(%q<bundler>, ["~> 1.2.3"])
81
- s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
83
+ s.add_dependency(%q<rdoc>, ["~> 4.1.1"])
84
+ s.add_dependency(%q<bundler>, ["~> 1.7.2"])
85
+ s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
82
86
  s.add_dependency(%q<simplecov>, [">= 0"])
83
87
  s.add_dependency(%q<sqlite3>, [">= 0"])
84
88
  s.add_dependency(%q<pg>, [">= 0"])
@@ -11,6 +11,7 @@ rescue Bundler::BundlerError => e
11
11
  $stderr.puts "Run `bundle install` to install missing gems"
12
12
  exit e.status_code
13
13
  end
14
+
14
15
  require 'test/unit'
15
16
  require 'shoulda'
16
17
  require 'active_record'
@@ -18,8 +19,8 @@ require 'active_support'
18
19
 
19
20
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
20
21
  $LOAD_PATH.unshift(File.dirname(__FILE__))
21
- require 'listable'
22
22
 
23
+ require 'listable'
23
24
 
24
25
  class Test::Unit::TestCase
25
26
  end
@@ -4,17 +4,17 @@ end
4
4
 
5
5
  class Page < ActiveRecord::Base
6
6
  listable_through :topical_items, :listables
7
- scope :listables, select([:title, :body])
7
+ scope :listables, -> { select([:title, :body]) }
8
8
  end
9
9
 
10
10
  class Employee < ActiveRecord::Base
11
11
  listable_through :topical_items, :listables
12
- scope :listables, concat_select([:first_name, ' ', :last_name], :title).select(:biography)
12
+ scope :listables, -> { concat_select([:first_name, ' ', :last_name], :title).select(:biography) }
13
13
  end
14
14
 
15
15
  class NewsArticle < ActiveRecord::Base
16
16
  listable_through :topical_items, :listables
17
- scope :listables, select_as(headline: 'title').select(:body)
17
+ scope :listables, -> { select_as(headline: 'title').select(:body) }
18
18
  end
19
19
 
20
20
  # Seeding pages
@@ -2,18 +2,20 @@ require 'helper'
2
2
 
3
3
  class TestListable < Test::Unit::TestCase
4
4
 
5
- context "a listable view model" do
6
- def setup
5
+ def setup
7
6
  Listable::ViewManager.create_views
8
7
  end
9
8
 
10
- def topical_items_count
11
- TopicalItems.count
12
- end
9
+ def topical_items_count
10
+ TopicalItems.count(:all)
11
+ end
12
+
13
+ def listable_items_count
14
+ Page.listables.count(:all) + Employee.listables.count(:all) + NewsArticle.listables.count(:all)
15
+ end
16
+
17
+ context "a listable view model" do
13
18
 
14
- def listable_items_count
15
- Page.listables.count + Employee.listables.count + NewsArticle.listables.count
16
- end
17
19
 
18
20
  should "have as many rows as the models it lists" do
19
21
  assert_equal listable_items_count, topical_items_count
metadata CHANGED
@@ -1,143 +1,187 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: listable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
5
- prerelease:
4
+ version: 0.2.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Johannes Baldursson
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-02-04 00:00:00.000000000 Z
11
+ date: 2014-09-02 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activesupport
16
- requirement: &2166589420 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '3.2'
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *2166589420
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '3.2'
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: activerecord
27
- requirement: &2166588660 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
- - - ! '>='
31
+ - - ">="
31
32
  - !ruby/object:Gem::Version
32
33
  version: '3.2'
33
34
  type: :runtime
34
35
  prerelease: false
35
- version_requirements: *2166588660
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '3.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: composite_primary_keys
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '5.0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '5.0'
36
55
  - !ruby/object:Gem::Dependency
37
56
  name: test-unit
38
- requirement: &2166587900 !ruby/object:Gem::Requirement
39
- none: false
57
+ requirement: !ruby/object:Gem::Requirement
40
58
  requirements:
41
- - - ~>
59
+ - - "~>"
42
60
  - !ruby/object:Gem::Version
43
- version: 2.5.4
61
+ version: 3.0.1
44
62
  type: :development
45
63
  prerelease: false
46
- version_requirements: *2166587900
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 3.0.1
47
69
  - !ruby/object:Gem::Dependency
48
70
  name: shoulda
49
- requirement: &2166587080 !ruby/object:Gem::Requirement
50
- none: false
71
+ requirement: !ruby/object:Gem::Requirement
51
72
  requirements:
52
- - - ! '>='
73
+ - - ">="
53
74
  - !ruby/object:Gem::Version
54
75
  version: '0'
55
76
  type: :development
56
77
  prerelease: false
57
- version_requirements: *2166587080
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
58
83
  - !ruby/object:Gem::Dependency
59
84
  name: rdoc
60
- requirement: &2166586160 !ruby/object:Gem::Requirement
61
- none: false
85
+ requirement: !ruby/object:Gem::Requirement
62
86
  requirements:
63
- - - ~>
87
+ - - "~>"
64
88
  - !ruby/object:Gem::Version
65
- version: '3.12'
89
+ version: 4.1.1
66
90
  type: :development
67
91
  prerelease: false
68
- version_requirements: *2166586160
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 4.1.1
69
97
  - !ruby/object:Gem::Dependency
70
98
  name: bundler
71
- requirement: &2166585380 !ruby/object:Gem::Requirement
72
- none: false
99
+ requirement: !ruby/object:Gem::Requirement
73
100
  requirements:
74
- - - ~>
101
+ - - "~>"
75
102
  - !ruby/object:Gem::Version
76
- version: 1.2.3
103
+ version: 1.7.2
77
104
  type: :development
78
105
  prerelease: false
79
- version_requirements: *2166585380
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 1.7.2
80
111
  - !ruby/object:Gem::Dependency
81
112
  name: jeweler
82
- requirement: &2166584600 !ruby/object:Gem::Requirement
83
- none: false
113
+ requirement: !ruby/object:Gem::Requirement
84
114
  requirements:
85
- - - ~>
115
+ - - "~>"
86
116
  - !ruby/object:Gem::Version
87
- version: 1.8.4
117
+ version: 2.0.1
88
118
  type: :development
89
119
  prerelease: false
90
- version_requirements: *2166584600
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 2.0.1
91
125
  - !ruby/object:Gem::Dependency
92
126
  name: simplecov
93
- requirement: &2166596660 !ruby/object:Gem::Requirement
94
- none: false
127
+ requirement: !ruby/object:Gem::Requirement
95
128
  requirements:
96
- - - ! '>='
129
+ - - ">="
97
130
  - !ruby/object:Gem::Version
98
131
  version: '0'
99
132
  type: :development
100
133
  prerelease: false
101
- version_requirements: *2166596660
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
102
139
  - !ruby/object:Gem::Dependency
103
140
  name: sqlite3
104
- requirement: &2166593620 !ruby/object:Gem::Requirement
105
- none: false
141
+ requirement: !ruby/object:Gem::Requirement
106
142
  requirements:
107
- - - ! '>='
143
+ - - ">="
108
144
  - !ruby/object:Gem::Version
109
145
  version: '0'
110
146
  type: :development
111
147
  prerelease: false
112
- version_requirements: *2166593620
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
113
153
  - !ruby/object:Gem::Dependency
114
154
  name: pg
115
- requirement: &2166592440 !ruby/object:Gem::Requirement
116
- none: false
155
+ requirement: !ruby/object:Gem::Requirement
117
156
  requirements:
118
- - - ! '>='
157
+ - - ">="
119
158
  - !ruby/object:Gem::Version
120
159
  version: '0'
121
160
  type: :development
122
161
  prerelease: false
123
- version_requirements: *2166592440
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
124
167
  - !ruby/object:Gem::Dependency
125
168
  name: mysql2
126
- requirement: &2166606140 !ruby/object:Gem::Requirement
127
- none: false
169
+ requirement: !ruby/object:Gem::Requirement
128
170
  requirements:
129
- - - ! '>='
171
+ - - ">="
130
172
  - !ruby/object:Gem::Version
131
173
  version: '0'
132
174
  type: :development
133
175
  prerelease: false
134
- version_requirements: *2166606140
135
- description: ! "With listable you can consolidate fields from several models into
136
- one, backed up by a database view.\n It is perfect for e.g.
137
- a front page where you may want to display the most recent additions to your site
138
- in a joint list.\n By providing scopes for each model you
139
- wish to include in a view, Listable will automatically create the database view
140
- for you."
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ description: |-
182
+ With listable you can consolidate fields from several models into one, backed up by a database view.
183
+ 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.
184
+ By providing scopes for each model you wish to include in a view, Listable will automatically create the database view for you.
141
185
  email: johannes.baldursson@gmail.com
142
186
  executables: []
143
187
  extensions: []
@@ -145,7 +189,7 @@ extra_rdoc_files:
145
189
  - LICENSE.txt
146
190
  - README.rdoc
147
191
  files:
148
- - .document
192
+ - ".document"
149
193
  - Gemfile
150
194
  - Gemfile.lock
151
195
  - LICENSE.txt
@@ -167,30 +211,26 @@ files:
167
211
  homepage: http://github.com/baldursson/listable
168
212
  licenses:
169
213
  - MIT
214
+ metadata: {}
170
215
  post_install_message:
171
216
  rdoc_options: []
172
217
  require_paths:
173
218
  - lib
174
219
  required_ruby_version: !ruby/object:Gem::Requirement
175
- none: false
176
220
  requirements:
177
- - - ! '>='
221
+ - - ">="
178
222
  - !ruby/object:Gem::Version
179
223
  version: '0'
180
- segments:
181
- - 0
182
- hash: 1407961267494115612
183
224
  required_rubygems_version: !ruby/object:Gem::Requirement
184
- none: false
185
225
  requirements:
186
- - - ! '>='
226
+ - - ">="
187
227
  - !ruby/object:Gem::Version
188
228
  version: '0'
189
229
  requirements: []
190
230
  rubyforge_project:
191
- rubygems_version: 1.8.10
231
+ rubygems_version: 2.2.2
192
232
  signing_key:
193
- specification_version: 3
233
+ specification_version: 4
194
234
  summary: ActiveRecord extension that makes it easy to list and query several models
195
235
  through a single view backed model.
196
236
  test_files: []