filter_fu 0.5.0 → 0.6.0
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/.rspec +2 -0
- data/Gemfile +5 -0
- data/Gemfile.lock +113 -0
- data/LICENSE +1 -1
- data/README.rdoc +37 -22
- data/Rakefile +24 -51
- data/lib/filter_fu/active_record.rb +17 -20
- data/lib/filter_fu/view_helper.rb +32 -19
- data/lib/filter_fu.rb +19 -3
- data/spec/active_record_spec.rb +48 -49
- data/spec/db/database.yml +1 -1
- data/spec/db/debug.log +42 -0
- data/spec/db/schema.rb +2 -2
- data/spec/filter_fu_spec.rb +4 -4
- data/spec/helpers/view_helper_spec.rb +119 -0
- data/spec/spec_helper.rb +28 -13
- data/spec/support/dummies.rb +13 -0
- data/spec/{fixtures → support}/employee.rb +3 -5
- metadata +126 -35
- data/.document +0 -5
- data/.gitignore +0 -6
- data/VERSION +0 -1
- data/filter_fu.gemspec +0 -68
- data/rails/init.rb +0 -1
- data/spec/dummies.rb +0 -46
- data/spec/spec.opts +0 -4
- data/spec/view_helper_spec.rb +0 -127
metadata
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: filter_fu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 7
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 6
|
9
|
+
- 0
|
10
|
+
version: 0.6.0
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- Benedikt Deicke
|
@@ -9,82 +15,167 @@ autorequire:
|
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
17
|
|
12
|
-
date:
|
18
|
+
date: 2010-12-15 00:00:00 +01:00
|
13
19
|
default_executable:
|
14
20
|
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: rails
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 7
|
30
|
+
segments:
|
31
|
+
- 3
|
32
|
+
- 0
|
33
|
+
- 0
|
34
|
+
version: 3.0.0
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
15
37
|
- !ruby/object:Gem::Dependency
|
16
38
|
name: rspec
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 3
|
46
|
+
segments:
|
47
|
+
- 2
|
48
|
+
- 0
|
49
|
+
version: "2.0"
|
17
50
|
type: :development
|
18
|
-
|
19
|
-
|
51
|
+
version_requirements: *id002
|
52
|
+
- !ruby/object:Gem::Dependency
|
53
|
+
name: rspec-rails
|
54
|
+
prerelease: false
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
56
|
+
none: false
|
57
|
+
requirements:
|
58
|
+
- - ~>
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
hash: 3
|
61
|
+
segments:
|
62
|
+
- 2
|
63
|
+
- 0
|
64
|
+
version: "2.0"
|
65
|
+
type: :development
|
66
|
+
version_requirements: *id003
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: webrat
|
69
|
+
prerelease: false
|
70
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
20
72
|
requirements:
|
21
73
|
- - ">="
|
22
74
|
- !ruby/object:Gem::Version
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
75
|
+
hash: 7
|
76
|
+
segments:
|
77
|
+
- 0
|
78
|
+
- 7
|
79
|
+
- 2
|
80
|
+
version: 0.7.2
|
81
|
+
type: :development
|
82
|
+
version_requirements: *id004
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: autotest
|
85
|
+
prerelease: false
|
86
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
87
|
+
none: false
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
hash: 55
|
92
|
+
segments:
|
93
|
+
- 4
|
94
|
+
- 3
|
95
|
+
- 2
|
96
|
+
version: 4.3.2
|
97
|
+
type: :development
|
98
|
+
version_requirements: *id005
|
99
|
+
- !ruby/object:Gem::Dependency
|
100
|
+
name: hanna
|
101
|
+
prerelease: false
|
102
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
103
|
+
none: false
|
104
|
+
requirements:
|
105
|
+
- - ">="
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
hash: 3
|
108
|
+
segments:
|
109
|
+
- 0
|
110
|
+
- 1
|
111
|
+
- 12
|
112
|
+
version: 0.1.12
|
113
|
+
type: :development
|
114
|
+
version_requirements: *id006
|
115
|
+
description: This Ruby on Rails plugin adds a filtered_by method to your models. It accepts a hash of filters that are applied using scopes. In addition the plugin adds some view helpers to easily build filter forms.
|
116
|
+
email:
|
117
|
+
- benedikt@synatic.net
|
27
118
|
executables: []
|
28
119
|
|
29
120
|
extensions: []
|
30
121
|
|
31
122
|
extra_rdoc_files:
|
32
|
-
- LICENSE
|
33
123
|
- README.rdoc
|
34
|
-
files:
|
35
|
-
- .document
|
36
|
-
- .gitignore
|
37
124
|
- LICENSE
|
38
|
-
|
39
|
-
- Rakefile
|
40
|
-
- VERSION
|
41
|
-
- filter_fu.gemspec
|
42
|
-
- lib/filter_fu.rb
|
125
|
+
files:
|
43
126
|
- lib/filter_fu/active_record.rb
|
44
127
|
- lib/filter_fu/view_helper.rb
|
45
|
-
-
|
128
|
+
- lib/filter_fu.rb
|
46
129
|
- spec/active_record_spec.rb
|
47
130
|
- spec/db/database.yml
|
131
|
+
- spec/db/debug.log
|
48
132
|
- spec/db/schema.rb
|
49
|
-
- spec/dummies.rb
|
50
133
|
- spec/filter_fu_spec.rb
|
51
|
-
- spec/
|
52
|
-
- spec/spec.opts
|
134
|
+
- spec/helpers/view_helper_spec.rb
|
53
135
|
- spec/spec_helper.rb
|
54
|
-
- spec/
|
136
|
+
- spec/support/dummies.rb
|
137
|
+
- spec/support/employee.rb
|
138
|
+
- LICENSE
|
139
|
+
- README.rdoc
|
140
|
+
- Rakefile
|
141
|
+
- Gemfile
|
142
|
+
- Gemfile.lock
|
143
|
+
- .rspec
|
55
144
|
has_rdoc: true
|
56
|
-
homepage: http://github.com/benedikt/
|
145
|
+
homepage: http://github.com/benedikt/maptastic
|
57
146
|
licenses: []
|
58
147
|
|
59
148
|
post_install_message:
|
60
149
|
rdoc_options:
|
150
|
+
- --main
|
151
|
+
- README.rdoc
|
61
152
|
- --charset=UTF-8
|
62
153
|
require_paths:
|
63
154
|
- lib
|
64
155
|
required_ruby_version: !ruby/object:Gem::Requirement
|
156
|
+
none: false
|
65
157
|
requirements:
|
66
158
|
- - ">="
|
67
159
|
- !ruby/object:Gem::Version
|
160
|
+
hash: 3
|
161
|
+
segments:
|
162
|
+
- 0
|
68
163
|
version: "0"
|
69
|
-
version:
|
70
164
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
165
|
+
none: false
|
71
166
|
requirements:
|
72
167
|
- - ">="
|
73
168
|
- !ruby/object:Gem::Version
|
169
|
+
hash: 3
|
170
|
+
segments:
|
171
|
+
- 0
|
74
172
|
version: "0"
|
75
|
-
version:
|
76
173
|
requirements: []
|
77
174
|
|
78
175
|
rubyforge_project:
|
79
|
-
rubygems_version: 1.3.
|
176
|
+
rubygems_version: 1.3.7
|
80
177
|
signing_key:
|
81
178
|
specification_version: 3
|
82
|
-
summary: Filter ActiveRecord models using
|
83
|
-
test_files:
|
84
|
-
|
85
|
-
- spec/db/schema.rb
|
86
|
-
- spec/dummies.rb
|
87
|
-
- spec/filter_fu_spec.rb
|
88
|
-
- spec/fixtures/employee.rb
|
89
|
-
- spec/spec_helper.rb
|
90
|
-
- spec/view_helper_spec.rb
|
179
|
+
summary: Filter ActiveRecord models using scopes
|
180
|
+
test_files: []
|
181
|
+
|
data/.document
DELETED
data/.gitignore
DELETED
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.5.0
|
data/filter_fu.gemspec
DELETED
@@ -1,68 +0,0 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
|
4
|
-
# -*- encoding: utf-8 -*-
|
5
|
-
|
6
|
-
Gem::Specification.new do |s|
|
7
|
-
s.name = %q{filter_fu}
|
8
|
-
s.version = "0.5.0"
|
9
|
-
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["Benedikt Deicke"]
|
12
|
-
s.date = %q{2009-10-15}
|
13
|
-
s.description = %q{This Ruby on Rails plugin adds a filtered_by method to your models. It accepts a hash of filters that are applied using named_scopes. In addition the plugin adds some view helpers to easily build filter forms.}
|
14
|
-
s.email = %q{benedikt@synatic.net}
|
15
|
-
s.extra_rdoc_files = [
|
16
|
-
"LICENSE",
|
17
|
-
"README.rdoc"
|
18
|
-
]
|
19
|
-
s.files = [
|
20
|
-
".document",
|
21
|
-
".gitignore",
|
22
|
-
"LICENSE",
|
23
|
-
"README.rdoc",
|
24
|
-
"Rakefile",
|
25
|
-
"VERSION",
|
26
|
-
"filter_fu.gemspec",
|
27
|
-
"lib/filter_fu.rb",
|
28
|
-
"lib/filter_fu/active_record.rb",
|
29
|
-
"lib/filter_fu/view_helper.rb",
|
30
|
-
"rails/init.rb",
|
31
|
-
"spec/active_record_spec.rb",
|
32
|
-
"spec/db/database.yml",
|
33
|
-
"spec/db/schema.rb",
|
34
|
-
"spec/dummies.rb",
|
35
|
-
"spec/filter_fu_spec.rb",
|
36
|
-
"spec/fixtures/employee.rb",
|
37
|
-
"spec/spec.opts",
|
38
|
-
"spec/spec_helper.rb",
|
39
|
-
"spec/view_helper_spec.rb"
|
40
|
-
]
|
41
|
-
s.homepage = %q{http://github.com/benedikt/filter_fu}
|
42
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
43
|
-
s.require_paths = ["lib"]
|
44
|
-
s.rubygems_version = %q{1.3.5}
|
45
|
-
s.summary = %q{Filter ActiveRecord models using named_scopes}
|
46
|
-
s.test_files = [
|
47
|
-
"spec/active_record_spec.rb",
|
48
|
-
"spec/db/schema.rb",
|
49
|
-
"spec/dummies.rb",
|
50
|
-
"spec/filter_fu_spec.rb",
|
51
|
-
"spec/fixtures/employee.rb",
|
52
|
-
"spec/spec_helper.rb",
|
53
|
-
"spec/view_helper_spec.rb"
|
54
|
-
]
|
55
|
-
|
56
|
-
if s.respond_to? :specification_version then
|
57
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
58
|
-
s.specification_version = 3
|
59
|
-
|
60
|
-
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
61
|
-
s.add_development_dependency(%q<rspec>, [">= 0"])
|
62
|
-
else
|
63
|
-
s.add_dependency(%q<rspec>, [">= 0"])
|
64
|
-
end
|
65
|
-
else
|
66
|
-
s.add_dependency(%q<rspec>, [">= 0"])
|
67
|
-
end
|
68
|
-
end
|
data/rails/init.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require 'filter_fu'
|
data/spec/dummies.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
# Taken from mislav's will_paginate http://github.com/mislav/will_paginate/tree/master
|
2
|
-
|
3
|
-
class DummyRequest
|
4
|
-
attr_accessor :symbolized_path_parameters
|
5
|
-
|
6
|
-
def initialize
|
7
|
-
@get = true
|
8
|
-
@params = {}
|
9
|
-
@symbolized_path_parameters = { :controller => 'foo', :action => 'bar' }
|
10
|
-
end
|
11
|
-
|
12
|
-
def get?
|
13
|
-
@get
|
14
|
-
end
|
15
|
-
|
16
|
-
def post
|
17
|
-
@get = false
|
18
|
-
end
|
19
|
-
|
20
|
-
def relative_url_root
|
21
|
-
''
|
22
|
-
end
|
23
|
-
|
24
|
-
def params(more = nil)
|
25
|
-
@params.update(more) if more
|
26
|
-
@params
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
class DummyController
|
31
|
-
attr_reader :request
|
32
|
-
attr_accessor :controller_name
|
33
|
-
|
34
|
-
def initialize
|
35
|
-
@request = DummyRequest.new
|
36
|
-
@url = ActionController::UrlRewriter.new(@request, @request.params)
|
37
|
-
end
|
38
|
-
|
39
|
-
def params
|
40
|
-
@request.params
|
41
|
-
end
|
42
|
-
|
43
|
-
def url_for(params)
|
44
|
-
@url.rewrite(params)
|
45
|
-
end
|
46
|
-
end
|
data/spec/spec.opts
DELETED
data/spec/view_helper_spec.rb
DELETED
@@ -1,127 +0,0 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
-
require 'dummies'
|
3
|
-
|
4
|
-
describe FilterFu::ViewHelper, :type => :helper do
|
5
|
-
|
6
|
-
before(:each) do
|
7
|
-
@controller = DummyController.new
|
8
|
-
@request = @controller.request
|
9
|
-
|
10
|
-
helper.controller = @controller
|
11
|
-
helper.request = @request
|
12
|
-
|
13
|
-
helper.output_buffer = ""
|
14
|
-
end
|
15
|
-
|
16
|
-
it "should provide a filter_form_for method" do
|
17
|
-
helper.should respond_to(:filter_form_for)
|
18
|
-
end
|
19
|
-
|
20
|
-
it "should prodive a filter_form method as an alias for filter_form" do
|
21
|
-
helper.should respond_to(:filter_form)
|
22
|
-
end
|
23
|
-
|
24
|
-
it "should require a block" do
|
25
|
-
lambda { helper.filter_form_for }.should raise_error(ArgumentError, /Missing block/)
|
26
|
-
end
|
27
|
-
|
28
|
-
it "should accept options" do
|
29
|
-
lambda { helper.filter_form_for({}) {} }.should_not raise_error(ArgumentError)
|
30
|
-
end
|
31
|
-
|
32
|
-
it "should not require options" do
|
33
|
-
lambda { helper.filter_form_for() {} }.should_not raise_error(ArgumentError)
|
34
|
-
end
|
35
|
-
|
36
|
-
it "should accept a name together with options" do
|
37
|
-
lambda { helper.filter_form_for(:other, {}) {} }.should_not raise_error(ArgumentError)
|
38
|
-
end
|
39
|
-
|
40
|
-
it "should call the associated block" do
|
41
|
-
lambda {
|
42
|
-
helper.filter_form_for() { throw :done }
|
43
|
-
}.should throw_symbol(:done)
|
44
|
-
end
|
45
|
-
|
46
|
-
it "should pass a ActionView::Helpers::FormBuilder to the block" do
|
47
|
-
helper.filter_form_for { |f| f.should be_kind_of(ActionView::Helpers::FormBuilder) }
|
48
|
-
end
|
49
|
-
|
50
|
-
it "should include the erb of the block" do
|
51
|
-
html = eval_erb("<% filter_form_for { %><div>Some random HTML</div><% } %>")
|
52
|
-
html.should have_tag('div', 'Some random HTML')
|
53
|
-
end
|
54
|
-
|
55
|
-
it "should include a form tag" do
|
56
|
-
html = eval_erb("<% filter_form_for { %> <% } %>")
|
57
|
-
html.should have_tag('form')
|
58
|
-
end
|
59
|
-
|
60
|
-
it "should set the form method attribute to GET" do
|
61
|
-
html = eval_erb("<% filter_form_for { %> <% } %>")
|
62
|
-
html.should have_tag('form[method=?]', 'get')
|
63
|
-
end
|
64
|
-
|
65
|
-
it "should set the form action attribute to the current url" do
|
66
|
-
# Controller and Action are foo and bar as defined in the dummies
|
67
|
-
html = eval_erb("<% filter_form_for { %> <% } %>")
|
68
|
-
html.should have_tag('form[action=?]', '/foo/bar')
|
69
|
-
end
|
70
|
-
|
71
|
-
it "should use :filter as the default namespace in form fields" do
|
72
|
-
html = eval_erb("<% filter_form_for { |f| %><%= f.text_field :name %><% } %>")
|
73
|
-
html.should have_tag('input[name=?]', 'filter[name]')
|
74
|
-
end
|
75
|
-
|
76
|
-
it "should use another name as namespace if it's provided as the first argument" do
|
77
|
-
html = eval_erb("<% filter_form_for(:other) { |f| %><%= f.text_field :name %><% } %>")
|
78
|
-
html.should have_tag('input[name=?]', 'other[name]')
|
79
|
-
end
|
80
|
-
|
81
|
-
it "should pass options to the form_for helper" do
|
82
|
-
html = eval_erb("<% filter_form_for(:html => { :class => 'filter' }) { |f| %> <% } %>")
|
83
|
-
html.should have_tag('form[class=?]', 'filter')
|
84
|
-
end
|
85
|
-
|
86
|
-
it "should preserve the page's parameters with hidden fields" do
|
87
|
-
helper.params = { :some_param => 'some value', :some_other_param => 'some other value' }
|
88
|
-
html = eval_erb("<% filter_form_for() { |f| %> <% } %>")
|
89
|
-
html.should have_tag('input[type=?][name=?][value=?]', 'hidden', 'some_param', 'some value')
|
90
|
-
html.should have_tag('input[type=?][name=?][value=?]', 'hidden', 'some_other_param', 'some other value')
|
91
|
-
end
|
92
|
-
|
93
|
-
it "should preserve the page's nested parameters with hidden fields" do
|
94
|
-
helper.params = { :some_param => 'some value', :nested => { :some_other_param => 'some other value', :deeply_nested => { :down_here => 'yet another value' } } }
|
95
|
-
html = eval_erb("<% filter_form_for() { |f| %> <% } %>")
|
96
|
-
html.should have_tag('input[type=?][name=?][value=?]', 'hidden', 'some_param', 'some value')
|
97
|
-
html.should have_tag('input[type=?][name=?][value=?]', 'hidden', 'nested[some_other_param]', 'some other value')
|
98
|
-
html.should have_tag('input[type=?][name=?][value=?]', 'hidden', 'nested[deeply_nested][down_here]', 'yet another value')
|
99
|
-
end
|
100
|
-
|
101
|
-
it "should not preserve the page's parameters for the current filter" do
|
102
|
-
helper.params = { :other => { :name => 'some value' }}
|
103
|
-
html = eval_erb("<% filter_form_for(:other) { |f| %> <% } %>")
|
104
|
-
html.should_not have_tag('input[type=?][name=?]', 'hidden', 'other')
|
105
|
-
html.should_not have_tag('input[type=?][name=?][value=?]', 'hidden', 'other[name]', 'some value')
|
106
|
-
end
|
107
|
-
|
108
|
-
it "should not preserve the controller and action params" do
|
109
|
-
helper.params = { :controller => 'foo', :action => 'bar' }
|
110
|
-
html = eval_erb("<% filter_form_for() { |f| %> <% } %>")
|
111
|
-
html.should_not have_tag('input[type=?][name=?][value=?]', 'hidden', 'controller', 'foo')
|
112
|
-
html.should_not have_tag('input[type=?][name=?][value=?]', 'hidden', 'action', 'bar')
|
113
|
-
end
|
114
|
-
|
115
|
-
it "should not preserve params specified in :ignore_parameters" do
|
116
|
-
helper.params = { :some_param => 'some value', :some_other_param => 'some other value' }
|
117
|
-
html = eval_erb("<% filter_form_for(:ignore_parameters => [:some_other_param]) { |f| %> <% } %>")
|
118
|
-
html.should have_tag('input[type=?][name=?][value=?]', 'hidden', 'some_param', 'some value')
|
119
|
-
html.should_not have_tag('input[type=?][name=?][value=?]', 'hidden', 'some_other_param', 'some other value')
|
120
|
-
end
|
121
|
-
|
122
|
-
it "should use the current filter params as defaults for the form" do
|
123
|
-
helper.params = { :filter => { :some_param => 'some value' } }
|
124
|
-
html = eval_erb("<% filter_form_for() { |f| %><%= f.text_field :some_param %><% } %>")
|
125
|
-
html.should have_tag('input[type=?][name=?][value=?]', 'text', 'filter[some_param]', 'some value')
|
126
|
-
end
|
127
|
-
end
|