listings 0.1.8 → 0.1.14
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.
- checksums.yaml +7 -0
- data/README.md +20 -0
- data/app/controllers/listings/listings_controller.rb +1 -1
- data/lib/listings/action_view_extensions.rb +1 -1
- data/lib/listings/base.rb +19 -20
- data/lib/listings/base_field_descriptor.rb +1 -1
- data/lib/listings/filter_view.rb +7 -1
- data/lib/listings/rspec/listings_helpers.rb +5 -1
- data/lib/listings/sources/active_record_data_source.rb +5 -4
- data/lib/listings/sources/data_source.rb +1 -1
- data/lib/listings/sources/object_data_source.rb +1 -1
- data/lib/listings/version.rb +1 -1
- data/lib/listings/view_helper_methods.rb +10 -2
- data/spec/dummy/app/assets/config/manifest.js +1 -0
- data/spec/dummy/app/assets/javascripts/application.js +14 -2
- data/spec/dummy/app/controllers/application_controller.rb +8 -2
- data/spec/dummy/app/controllers/welcome_controller.rb +3 -0
- data/spec/dummy/app/listings/authors_listing.rb +26 -0
- data/spec/dummy/app/listings/posts_listing.rb +1 -1
- data/spec/dummy/app/listings/tracks_listing.rb +13 -1
- data/spec/dummy/app/models/author.rb +5 -0
- data/spec/dummy/app/models/post.rb +2 -0
- data/spec/dummy/app/models/track.rb +1 -1
- data/spec/dummy/app/views/listings/_posts_count.html.haml +5 -0
- data/spec/dummy/app/views/welcome/authors.html.haml +3 -0
- data/spec/dummy/app/views/welcome/index.html.haml +6 -0
- data/spec/dummy/config/routes.rb +1 -0
- data/spec/dummy/db/schema.rb +10 -1
- data/spec/dummy/db/seeds.rb +10 -2
- data/spec/dummy/spec +1 -0
- data/spec/factories/authors.rb +5 -0
- data/spec/factories/{post.rb → posts.rb} +1 -0
- metadata +52 -56
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 4591a7706b0590ae7a1958eb970989b111ddd602
|
4
|
+
data.tar.gz: 9d77ce4ae69577c507ebce9ad93eaf1383dbb794
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d0da43eddc770ae15ad49502830922bc4f5592be2135fe888c4a24549ca66a592deef3c8982bfb1ff0db6c7f4bbec4d9c601d70d3218e610717e3806f6bfb812
|
7
|
+
data.tar.gz: a2f408023fbe5f2a6fca0615ebeeeedd75be2e129c40bb2ecaa02318af7465a50c025bfc09f2c6d3caf6afcf6e6d532401197f8603bf2073babd59d8fecb186c
|
data/README.md
CHANGED
@@ -207,6 +207,14 @@ The block is evaluated in a view_context so any helper you will usually use in a
|
|
207
207
|
column album: :name, title: 'Album'
|
208
208
|
```
|
209
209
|
|
210
|
+
> **computed columns**
|
211
|
+
>
|
212
|
+
> Listings will try to sort and filter by default using the `<table_name>.<column_name>` field of the query, on computed queries this will not work, you will need to use `column :my_computed_field, query_column: :my_computed_field` to allow sorting and filtering.
|
213
|
+
>
|
214
|
+
> Using computed columns might cause some issues depending on the Kaminari version used. If this is the case and you need to filter based on a computed filed, you will need to define a `custom_filter` to apply the filtering of the computed field.
|
215
|
+
>
|
216
|
+
> See example at [spec/dummy/app/listings/authors_listing.rb](spec/dummy/app/listings/authors_listing.rb)
|
217
|
+
|
210
218
|
### scope
|
211
219
|
|
212
220
|
Declaring a `scope` with a symbol with allow user to show only records matching the scope in the ActiveRecord class
|
@@ -243,6 +251,18 @@ It supports `title:` and a block
|
|
243
251
|
end
|
244
252
|
```
|
245
253
|
|
254
|
+
A `values: :method` can be specified to avoid the select distinct over the values.
|
255
|
+
|
256
|
+
```ruby
|
257
|
+
filter album: :name, values: :all_album_names, title: 'Album' do |album_name|
|
258
|
+
album_name.titleize
|
259
|
+
end
|
260
|
+
|
261
|
+
def all_album_names
|
262
|
+
Album.order("name").pluck("distinct name").reject(&:nil?)
|
263
|
+
end
|
264
|
+
```
|
265
|
+
|
246
266
|
Also `render:` option can be used to suppress the rendering of the filter, but allowing the user to filter by it. For example to filter by the id:
|
247
267
|
|
248
268
|
```ruby
|
@@ -20,7 +20,7 @@ module Listings
|
|
20
20
|
@listing = prepare_listing params, view_context, false
|
21
21
|
|
22
22
|
respond_to do |format|
|
23
|
-
format.csv {
|
23
|
+
format.csv { @listing.send_csv(self) }
|
24
24
|
format.xls do
|
25
25
|
headers["Content-Disposition"] = "attachment; filename=\"#{@listing.export_filename(:xls)}\""
|
26
26
|
render 'listings/export'
|
data/lib/listings/base.rb
CHANGED
@@ -177,26 +177,25 @@ module Listings
|
|
177
177
|
(params[:format] || :html).to_sym
|
178
178
|
end
|
179
179
|
|
180
|
-
def
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
csv << row
|
180
|
+
def send_csv(controller)
|
181
|
+
csv_filename = self.export_filename(:csv)
|
182
|
+
|
183
|
+
controller.headers["X-Accel-Buffering"] = "no"
|
184
|
+
controller.headers["Cache-Control"] = "no-cache"
|
185
|
+
controller.headers["Content-Type"] = "text/csv; charset=utf-8"
|
186
|
+
controller.headers["Content-Disposition"] = %(attachment; filename="#{csv_filename}")
|
187
|
+
controller.headers["Transfer-Encoding"] = "chunked"
|
188
|
+
controller.headers.delete("Content-Length")
|
189
|
+
|
190
|
+
controller.response_body = Enumerator.new do |lines|
|
191
|
+
lines << self.columns.map { |c| c.human_name }.to_csv
|
192
|
+
|
193
|
+
self.items.find_each do |item|
|
194
|
+
row = []
|
195
|
+
self.columns.each do |col|
|
196
|
+
row << col.value_for(item)
|
197
|
+
end
|
198
|
+
lines << row.to_csv
|
200
199
|
end
|
201
200
|
end
|
202
201
|
end
|
data/lib/listings/filter_view.rb
CHANGED
@@ -9,7 +9,13 @@ module Listings
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def values
|
12
|
-
@values ||=
|
12
|
+
@values ||= begin
|
13
|
+
if method = @field_description.props[:values]
|
14
|
+
listing.send(method)
|
15
|
+
else
|
16
|
+
listing.data_source.values_for_filter(field)
|
17
|
+
end
|
18
|
+
end
|
13
19
|
end
|
14
20
|
|
15
21
|
def value_for(value)
|
@@ -40,7 +40,11 @@ module RSpec::ListingsHelpers
|
|
40
40
|
controller.request = if Rails::VERSION::MAJOR < 5
|
41
41
|
ActionController::TestRequest.new(:host => "http://test.com")
|
42
42
|
else
|
43
|
-
|
43
|
+
if Rails::VERSION::MINOR >= 1 # ~> 5.1
|
44
|
+
ActionController::TestRequest.create(controller.class)
|
45
|
+
else
|
46
|
+
ActionController::TestRequest.create
|
47
|
+
end
|
44
48
|
end
|
45
49
|
context = controller.view_context
|
46
50
|
|
@@ -68,12 +68,12 @@ module Listings::Sources
|
|
68
68
|
@items = @items.eager_load(relation)
|
69
69
|
end
|
70
70
|
|
71
|
-
def build_field(path)
|
71
|
+
def build_field(path, props)
|
72
72
|
path = self.class.sanitaize_path(path)
|
73
73
|
if path.is_a?(Array)
|
74
74
|
ActiveRecordAssociationField.new(path, self)
|
75
75
|
else
|
76
|
-
ActiveRecordField.new(path, self)
|
76
|
+
ActiveRecordField.new(path, self, props[:query_column])
|
77
77
|
end
|
78
78
|
end
|
79
79
|
end
|
@@ -113,9 +113,10 @@ module Listings::Sources
|
|
113
113
|
end
|
114
114
|
|
115
115
|
class ActiveRecordField < BaseActiveRecordField
|
116
|
-
def initialize(attribute_name, data_source)
|
116
|
+
def initialize(attribute_name, data_source, query_column)
|
117
117
|
super(data_source)
|
118
118
|
@attribute_name = attribute_name
|
119
|
+
@query_column = query_column
|
119
120
|
end
|
120
121
|
|
121
122
|
def value_for(item)
|
@@ -123,7 +124,7 @@ module Listings::Sources
|
|
123
124
|
end
|
124
125
|
|
125
126
|
def query_column
|
126
|
-
"#{quote_table_name(data_source.items.table_name)}.#{quote_column_name(@attribute_name)}"
|
127
|
+
@query_column || "#{quote_table_name(data_source.items.table_name)}.#{quote_column_name(@attribute_name)}"
|
127
128
|
end
|
128
129
|
|
129
130
|
def key
|
data/lib/listings/version.rb
CHANGED
@@ -22,11 +22,19 @@ module Listings
|
|
22
22
|
# TODO add url_for_filter that will build the search string
|
23
23
|
|
24
24
|
def build_params(more_params)
|
25
|
-
res = view_context.params.merge(:listing => self.name).merge(params).merge(more_params)
|
25
|
+
res = _to_unsafe_h(view_context.params).merge(:listing => self.name).merge(_to_unsafe_h(params)).merge(more_params)
|
26
26
|
res.delete param_page
|
27
27
|
res.delete :controller
|
28
28
|
res.delete :action
|
29
|
-
|
29
|
+
_to_unsafe_h(res).with_indifferent_access
|
30
|
+
end
|
31
|
+
|
32
|
+
def _to_unsafe_h(hsh)
|
33
|
+
if hsh.respond_to?(:to_unsafe_h)
|
34
|
+
hsh.to_unsafe_h
|
35
|
+
else
|
36
|
+
hsh
|
37
|
+
end
|
30
38
|
end
|
31
39
|
|
32
40
|
def no_data_message
|
@@ -0,0 +1 @@
|
|
1
|
+
{ }
|
@@ -23,9 +23,9 @@
|
|
23
23
|
// });
|
24
24
|
// });
|
25
25
|
|
26
|
-
$(function(){
|
26
|
+
$(function () {
|
27
27
|
|
28
|
-
$('.listing').on('change', '#date-filter', function(){
|
28
|
+
$('.listing').on('change', '#date-filter', function () {
|
29
29
|
var listings = $(this).closest('.listing')
|
30
30
|
var filter = $(this);
|
31
31
|
|
@@ -35,5 +35,17 @@ $(function(){
|
|
35
35
|
listings.trigger("listings:filter:key:set", [filter.data('filter-key'), filter.val()])
|
36
36
|
}
|
37
37
|
});
|
38
|
+
|
39
|
+
$('.listing').on('click', '#posts-count-filter', function () {
|
40
|
+
var listings = $(this).closest('.listing')
|
41
|
+
var filter = $(this);
|
42
|
+
var value = filter.data('filter-value');
|
43
|
+
|
44
|
+
if (value == '') {
|
45
|
+
listings.trigger("listings:filter:key:clear", filter.data('filter-key'))
|
46
|
+
} else {
|
47
|
+
listings.trigger("listings:filter:key:set", [filter.data('filter-key'), value])
|
48
|
+
}
|
49
|
+
});
|
38
50
|
});
|
39
51
|
|
@@ -1,7 +1,13 @@
|
|
1
1
|
class ApplicationController < ActionController::Base
|
2
2
|
protect_from_forgery
|
3
3
|
|
4
|
-
|
5
|
-
|
4
|
+
if Rails::VERSION::MAJOR < 5
|
5
|
+
before_filter do
|
6
|
+
Listings.configuration.theme = params[:theme] || Listings::Configuration.new.theme
|
7
|
+
end
|
8
|
+
else
|
9
|
+
before_action do
|
10
|
+
Listings.configuration.theme = params[:theme] || Listings::Configuration.new.theme
|
11
|
+
end
|
6
12
|
end
|
7
13
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
class AuthorsListing < Listings::Base
|
2
|
+
model do
|
3
|
+
Author
|
4
|
+
.select('authors.*, (select count(*) from posts where posts.author_id = authors.id) as posts_count')
|
5
|
+
end
|
6
|
+
|
7
|
+
paginates_per 7
|
8
|
+
|
9
|
+
filter :category, values: :categories
|
10
|
+
|
11
|
+
custom_filter :posts_count_eq, render: 'posts_count' do |items, value|
|
12
|
+
items.where("(select count(*) from posts where posts.author_id = authors.id) = ?", value.to_i)
|
13
|
+
end
|
14
|
+
|
15
|
+
def categories
|
16
|
+
Author.select('distinct category').pluck(:category).reject(&:nil?)
|
17
|
+
end
|
18
|
+
|
19
|
+
def query_counts
|
20
|
+
(1..30).to_a
|
21
|
+
end
|
22
|
+
|
23
|
+
column :name, seachable: true
|
24
|
+
column :posts_count, query_column: :posts_count
|
25
|
+
column :category
|
26
|
+
end
|
@@ -2,11 +2,23 @@ class TracksListing < Listings::Base
|
|
2
2
|
|
3
3
|
model Track
|
4
4
|
|
5
|
-
filter album: :name
|
5
|
+
# filter album: :name # this also works but will do a distinct over the mode
|
6
|
+
filter album: :name, values: :album_names
|
6
7
|
filter album: :id, title: 'The Album Id' do |value|
|
7
8
|
"#{value}!"
|
8
9
|
end
|
9
10
|
filter :order, render: false
|
11
|
+
filter :label, values: :label_values
|
12
|
+
|
13
|
+
def album_names
|
14
|
+
Album.order("name").pluck("distinct name").reject(&:nil?)
|
15
|
+
end
|
16
|
+
|
17
|
+
def label_values
|
18
|
+
res = ["red", "blue"]
|
19
|
+
res << params[:l] if params[:l]
|
20
|
+
res
|
21
|
+
end
|
10
22
|
|
11
23
|
custom_filter :order_lte do |items, value|
|
12
24
|
items.where('"order" <= ?', value.to_i)
|
@@ -1,6 +1,8 @@
|
|
1
1
|
class Post < ActiveRecord::Base
|
2
2
|
attr_accessible :title, :author, :category if Rails::VERSION::MAJOR == 3
|
3
3
|
|
4
|
+
belongs_to :author
|
5
|
+
|
4
6
|
scope :even, -> { where('id % 2 = 0') }
|
5
7
|
scope :odd, -> { where('id % 2 = 1') }
|
6
8
|
scope :greater_than, lambda { |gt_id| where('id > ?', gt_id) }
|
@@ -12,6 +12,12 @@
|
|
12
12
|
%dd
|
13
13
|
ActiveRecord based listing with scopes, deferred_scopes, styles and selectable
|
14
14
|
|
15
|
+
%dl
|
16
|
+
%dt
|
17
|
+
= link_to 'Authors', authors_path
|
18
|
+
%dd
|
19
|
+
ActiveRecord based listing with computed columns
|
20
|
+
|
15
21
|
%dl
|
16
22
|
%dt
|
17
23
|
= link_to 'Filtered posts', filtered_posts_path
|
data/spec/dummy/config/routes.rb
CHANGED
data/spec/dummy/db/schema.rb
CHANGED
@@ -19,11 +19,18 @@ ActiveRecord::Schema.define(:version => 20150611185922) do
|
|
19
19
|
t.datetime "updated_at", :null => false
|
20
20
|
end
|
21
21
|
|
22
|
+
create_table "authors", :force => true do |t|
|
23
|
+
t.string "name"
|
24
|
+
t.string "category"
|
25
|
+
t.datetime "created_at", :null => false
|
26
|
+
t.datetime "updated_at", :null => false
|
27
|
+
end
|
28
|
+
|
22
29
|
create_table "posts", :force => true do |t|
|
23
30
|
t.string "title"
|
24
31
|
t.datetime "created_at", :null => false
|
25
32
|
t.datetime "updated_at", :null => false
|
26
|
-
t.
|
33
|
+
t.integer "author_id"
|
27
34
|
t.string "category"
|
28
35
|
end
|
29
36
|
|
@@ -31,10 +38,12 @@ ActiveRecord::Schema.define(:version => 20150611185922) do
|
|
31
38
|
t.string "title"
|
32
39
|
t.integer "order"
|
33
40
|
t.integer "album_id"
|
41
|
+
t.string "label"
|
34
42
|
t.datetime "created_at", :null => false
|
35
43
|
t.datetime "updated_at", :null => false
|
36
44
|
end
|
37
45
|
|
38
46
|
add_index "tracks", ["album_id"], :name => "index_tracks_on_album_id"
|
47
|
+
add_index "posts", ["author_id"], :name => "index_posts_on_author_id"
|
39
48
|
|
40
49
|
end
|
data/spec/dummy/db/seeds.rb
CHANGED
@@ -1,14 +1,22 @@
|
|
1
1
|
require 'factory_girl'
|
2
2
|
# Dir[Rails.root.join("spec/factories/*.rb")].each {|f| require f}
|
3
3
|
|
4
|
+
AUTHORS = []
|
5
|
+
|
6
|
+
(1..20).each do |sn|
|
7
|
+
AUTHORS << Author.create!(name: "john-#{(sn % 20) + 1}", category: "category-#{(sn % 3) + 1}")
|
8
|
+
end
|
9
|
+
|
4
10
|
(1..100).each do |sn|
|
5
|
-
Post.create! title: "post n-#{sn}", author:
|
11
|
+
Post.create! title: "post n-#{sn}", author: AUTHORS[sn % (sn / 10 + 1)], category: "category-#{(sn % 3) + 1}"
|
6
12
|
end
|
7
13
|
|
8
14
|
(1..10).each do |sn|
|
9
15
|
FactoryGirl.create :album
|
10
16
|
end
|
11
17
|
|
18
|
+
LABELS = %w(Green Red Blue)
|
19
|
+
|
12
20
|
(1..10).each do |sn|
|
13
|
-
FactoryGirl.create :track, album: nil
|
21
|
+
FactoryGirl.create :track, album: nil, label: LABELS[sn % LABELS.size]
|
14
22
|
end
|
data/spec/dummy/spec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
spec/dummy/../../spec
|
metadata
CHANGED
@@ -1,142 +1,125 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: listings
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.14
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Brian J. Cardiff
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2021-01-25 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rails
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: haml-rails
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - ">="
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - ">="
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: sass-rails
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - ">="
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - ">="
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: kaminari
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - ">="
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - ">="
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: bootstrap-kaminari-views
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - ">="
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: '0'
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - ">="
|
92
81
|
- !ruby/object:Gem::Version
|
93
82
|
version: '0'
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: sqlite3
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
|
-
- -
|
87
|
+
- - ">="
|
100
88
|
- !ruby/object:Gem::Version
|
101
89
|
version: '0'
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
|
-
- -
|
94
|
+
- - ">="
|
108
95
|
- !ruby/object:Gem::Version
|
109
96
|
version: '0'
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: rspec-rails
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
|
-
- -
|
101
|
+
- - ">="
|
116
102
|
- !ruby/object:Gem::Version
|
117
103
|
version: '0'
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
|
-
- -
|
108
|
+
- - ">="
|
124
109
|
- !ruby/object:Gem::Version
|
125
110
|
version: '0'
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
112
|
name: factory_girl_rails
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
|
-
- -
|
115
|
+
- - ">="
|
132
116
|
- !ruby/object:Gem::Version
|
133
117
|
version: '0'
|
134
118
|
type: :development
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
|
-
- -
|
122
|
+
- - ">="
|
140
123
|
- !ruby/object:Gem::Version
|
141
124
|
version: '0'
|
142
125
|
description: Simple creation of listings in rails applications.
|
@@ -146,11 +129,14 @@ executables: []
|
|
146
129
|
extensions: []
|
147
130
|
extra_rdoc_files: []
|
148
131
|
files:
|
132
|
+
- LICENSE
|
133
|
+
- README.md
|
134
|
+
- Rakefile
|
149
135
|
- app/assets/javascripts/jquery-throttle.js
|
150
|
-
- app/assets/javascripts/listings/application.js
|
151
136
|
- app/assets/javascripts/listings.js
|
152
|
-
- app/assets/
|
137
|
+
- app/assets/javascripts/listings/application.js
|
153
138
|
- app/assets/stylesheets/listings.scss
|
139
|
+
- app/assets/stylesheets/listings/application.css
|
154
140
|
- app/controllers/listings/application_controller.rb
|
155
141
|
- app/controllers/listings/listings_controller.rb
|
156
142
|
- app/helpers/listings/application_helper.rb
|
@@ -174,6 +160,7 @@ files:
|
|
174
160
|
- app/views/listings/twitter-bootstrap-3/_top_filter.html.haml
|
175
161
|
- config/locales/listings.yml
|
176
162
|
- config/routes.rb
|
163
|
+
- lib/listings.rb
|
177
164
|
- lib/listings/action_view_extensions.rb
|
178
165
|
- lib/listings/base.rb
|
179
166
|
- lib/listings/base_field_descriptor.rb
|
@@ -190,20 +177,19 @@ files:
|
|
190
177
|
- lib/listings/filter_view.rb
|
191
178
|
- lib/listings/filters/base.rb
|
192
179
|
- lib/listings/kaminari_helpers_tag_patch.rb
|
193
|
-
- lib/listings/rspec/listings_helpers.rb
|
194
180
|
- lib/listings/rspec.rb
|
181
|
+
- lib/listings/rspec/listings_helpers.rb
|
195
182
|
- lib/listings/scope_descriptor.rb
|
183
|
+
- lib/listings/sources.rb
|
196
184
|
- lib/listings/sources/active_record_data_source.rb
|
197
185
|
- lib/listings/sources/data_source.rb
|
198
186
|
- lib/listings/sources/object_data_source.rb
|
199
|
-
- lib/listings/sources.rb
|
200
187
|
- lib/listings/version.rb
|
201
188
|
- lib/listings/view_helper_methods.rb
|
202
|
-
- lib/listings.rb
|
203
189
|
- lib/tasks/listings_tasks.rake
|
204
|
-
-
|
205
|
-
- Rakefile
|
206
|
-
-
|
190
|
+
- spec/dummy/README.rdoc
|
191
|
+
- spec/dummy/Rakefile
|
192
|
+
- spec/dummy/app/assets/config/manifest.js
|
207
193
|
- spec/dummy/app/assets/javascripts/application.js
|
208
194
|
- spec/dummy/app/assets/stylesheets/application.css
|
209
195
|
- spec/dummy/app/controllers/application_controller.rb
|
@@ -212,25 +198,30 @@ files:
|
|
212
198
|
- spec/dummy/app/helpers/application_helper.rb
|
213
199
|
- spec/dummy/app/helpers/posts_helper.rb
|
214
200
|
- spec/dummy/app/listings/array_listing.rb
|
201
|
+
- spec/dummy/app/listings/authors_listing.rb
|
215
202
|
- spec/dummy/app/listings/filtered_posts_listing.rb
|
216
203
|
- spec/dummy/app/listings/hash_listing.rb
|
217
204
|
- spec/dummy/app/listings/posts_listing.rb
|
218
205
|
- spec/dummy/app/listings/tracks_fixed_order_listing.rb
|
219
206
|
- spec/dummy/app/listings/tracks_listing.rb
|
220
207
|
- spec/dummy/app/models/album.rb
|
208
|
+
- spec/dummy/app/models/author.rb
|
221
209
|
- spec/dummy/app/models/object_album.rb
|
222
210
|
- spec/dummy/app/models/object_track.rb
|
223
211
|
- spec/dummy/app/models/post.rb
|
224
212
|
- spec/dummy/app/models/track.rb
|
225
213
|
- spec/dummy/app/views/layouts/application.html.erb
|
226
214
|
- spec/dummy/app/views/listings/_date.html.haml
|
215
|
+
- spec/dummy/app/views/listings/_posts_count.html.haml
|
227
216
|
- spec/dummy/app/views/posts/filtered.html.haml
|
228
217
|
- spec/dummy/app/views/posts/index.html.haml
|
229
218
|
- spec/dummy/app/views/shared/_post_partial.html.haml
|
230
219
|
- spec/dummy/app/views/welcome/array.html.haml
|
220
|
+
- spec/dummy/app/views/welcome/authors.html.haml
|
231
221
|
- spec/dummy/app/views/welcome/hash.html.haml
|
232
222
|
- spec/dummy/app/views/welcome/index.html.haml
|
233
223
|
- spec/dummy/app/views/welcome/tracks.html.haml
|
224
|
+
- spec/dummy/config.ru
|
234
225
|
- spec/dummy/config/application.rb
|
235
226
|
- spec/dummy/config/boot.rb
|
236
227
|
- spec/dummy/config/database.yml
|
@@ -247,7 +238,6 @@ files:
|
|
247
238
|
- spec/dummy/config/initializers/wrap_parameters.rb
|
248
239
|
- spec/dummy/config/locales/en.yml
|
249
240
|
- spec/dummy/config/routes.rb
|
250
|
-
- spec/dummy/config.ru
|
251
241
|
- spec/dummy/db/migrate/20130618143317_create_posts.rb
|
252
242
|
- spec/dummy/db/migrate/20130618195559_add_author_to_posts.rb
|
253
243
|
- spec/dummy/db/migrate/20140728151246_add_category_to_post.rb
|
@@ -259,11 +249,11 @@ files:
|
|
259
249
|
- spec/dummy/public/422.html
|
260
250
|
- spec/dummy/public/500.html
|
261
251
|
- spec/dummy/public/favicon.ico
|
262
|
-
- spec/dummy/Rakefile
|
263
|
-
- spec/dummy/README.rdoc
|
264
252
|
- spec/dummy/script/rails
|
253
|
+
- spec/dummy/spec
|
265
254
|
- spec/factories/albums.rb
|
266
|
-
- spec/factories/
|
255
|
+
- spec/factories/authors.rb
|
256
|
+
- spec/factories/posts.rb
|
267
257
|
- spec/factories/tracks.rb
|
268
258
|
- spec/factories/traits.rb
|
269
259
|
- spec/lib/filter_parser_spec.rb
|
@@ -279,29 +269,31 @@ files:
|
|
279
269
|
- spec/support/query_counter.rb
|
280
270
|
homepage: https://github.com/manastech/listings
|
281
271
|
licenses: []
|
272
|
+
metadata: {}
|
282
273
|
post_install_message:
|
283
274
|
rdoc_options: []
|
284
275
|
require_paths:
|
285
276
|
- lib
|
286
277
|
required_ruby_version: !ruby/object:Gem::Requirement
|
287
|
-
none: false
|
288
278
|
requirements:
|
289
|
-
- -
|
279
|
+
- - ">="
|
290
280
|
- !ruby/object:Gem::Version
|
291
281
|
version: '0'
|
292
282
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
293
|
-
none: false
|
294
283
|
requirements:
|
295
|
-
- -
|
284
|
+
- - ">="
|
296
285
|
- !ruby/object:Gem::Version
|
297
286
|
version: '0'
|
298
287
|
requirements: []
|
299
288
|
rubyforge_project:
|
300
|
-
rubygems_version:
|
289
|
+
rubygems_version: 2.6.12
|
301
290
|
signing_key:
|
302
|
-
specification_version:
|
291
|
+
specification_version: 4
|
303
292
|
summary: Simple creation of listings in rails applications.
|
304
293
|
test_files:
|
294
|
+
- spec/dummy/README.rdoc
|
295
|
+
- spec/dummy/Rakefile
|
296
|
+
- spec/dummy/app/assets/config/manifest.js
|
305
297
|
- spec/dummy/app/assets/javascripts/application.js
|
306
298
|
- spec/dummy/app/assets/stylesheets/application.css
|
307
299
|
- spec/dummy/app/controllers/application_controller.rb
|
@@ -310,22 +302,26 @@ test_files:
|
|
310
302
|
- spec/dummy/app/helpers/application_helper.rb
|
311
303
|
- spec/dummy/app/helpers/posts_helper.rb
|
312
304
|
- spec/dummy/app/listings/array_listing.rb
|
305
|
+
- spec/dummy/app/listings/authors_listing.rb
|
313
306
|
- spec/dummy/app/listings/filtered_posts_listing.rb
|
314
307
|
- spec/dummy/app/listings/hash_listing.rb
|
315
308
|
- spec/dummy/app/listings/posts_listing.rb
|
316
309
|
- spec/dummy/app/listings/tracks_fixed_order_listing.rb
|
317
310
|
- spec/dummy/app/listings/tracks_listing.rb
|
318
311
|
- spec/dummy/app/models/album.rb
|
312
|
+
- spec/dummy/app/models/author.rb
|
319
313
|
- spec/dummy/app/models/object_album.rb
|
320
314
|
- spec/dummy/app/models/object_track.rb
|
321
315
|
- spec/dummy/app/models/post.rb
|
322
316
|
- spec/dummy/app/models/track.rb
|
323
317
|
- spec/dummy/app/views/layouts/application.html.erb
|
324
318
|
- spec/dummy/app/views/listings/_date.html.haml
|
319
|
+
- spec/dummy/app/views/listings/_posts_count.html.haml
|
325
320
|
- spec/dummy/app/views/posts/filtered.html.haml
|
326
321
|
- spec/dummy/app/views/posts/index.html.haml
|
327
322
|
- spec/dummy/app/views/shared/_post_partial.html.haml
|
328
323
|
- spec/dummy/app/views/welcome/array.html.haml
|
324
|
+
- spec/dummy/app/views/welcome/authors.html.haml
|
329
325
|
- spec/dummy/app/views/welcome/hash.html.haml
|
330
326
|
- spec/dummy/app/views/welcome/index.html.haml
|
331
327
|
- spec/dummy/app/views/welcome/tracks.html.haml
|
@@ -357,11 +353,11 @@ test_files:
|
|
357
353
|
- spec/dummy/public/422.html
|
358
354
|
- spec/dummy/public/500.html
|
359
355
|
- spec/dummy/public/favicon.ico
|
360
|
-
- spec/dummy/Rakefile
|
361
|
-
- spec/dummy/README.rdoc
|
362
356
|
- spec/dummy/script/rails
|
357
|
+
- spec/dummy/spec
|
363
358
|
- spec/factories/albums.rb
|
364
|
-
- spec/factories/
|
359
|
+
- spec/factories/authors.rb
|
360
|
+
- spec/factories/posts.rb
|
365
361
|
- spec/factories/tracks.rb
|
366
362
|
- spec/factories/traits.rb
|
367
363
|
- spec/lib/filter_parser_spec.rb
|