facetie 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ef494be9e941e91f65c3aafc2c24fc8904f31c8a
4
- data.tar.gz: 640b2fb91e9bc1a17959c1324040ec6482da5bfb
3
+ metadata.gz: a9facdff183ba1b643926baca495a59f279c27ae
4
+ data.tar.gz: d2719049df3184bf6318c1daaca3da78e37a6479
5
5
  SHA512:
6
- metadata.gz: 0b40a9081d0900e762926fe38afed8fbf00cacd3e2a9df7ed8866d9c0a59e607c1636d954db18a792ee38cee95a0b73f7f8c87c559e57a1b16e3c33aadd1c009
7
- data.tar.gz: b3d9f4e291df6558a47adb18cac5047d7aad5cf73293d8a632312f100ff2c187445a427bacddc439f3002f21140bdda84874d8e93748c4caad735d4177bb06ed
6
+ metadata.gz: cb963e7aa9f4f219464e0dfb44eaba5c1af16327d9a34c7a66674618047c107df6be4ca7c49c43baa3766c8e06f8e2334f029928f6373ffbdbcf2770a365b93a
7
+ data.tar.gz: 4df4c17af5114c7d58e64d03b760f7a586e2e4408e86631de85431ad73024adfc3d8d3dd179405f90c019c70f6267779e13a60aa971a78bd54d8fa74d766255e
@@ -1,5 +1,7 @@
1
1
  require "facetie/version"
2
2
  require "facetie/presenters/facet_presenter"
3
+ require "facetie/presenters/facets/single_presenter"
4
+ require "facetie/presenters/facets/multiple_presenter"
3
5
  require "facetie/helpers/facets_helper"
4
6
 
5
7
  module Facetie
@@ -3,7 +3,11 @@ module Facetie
3
3
  module FacetsHelper
4
4
 
5
5
  def facet_item(view, facet, filter, options={})
6
- FacetPresenter.new(view, facet, filter, options).render
6
+ if options[:multiple]
7
+ Facets::MultiplePresenter.new(view, facet, filter, options).render
8
+ else
9
+ Facets::SinglePresenter.new(view, facet, filter, options).render
10
+ end
7
11
  end
8
12
 
9
13
  end
@@ -15,8 +15,7 @@ class FacetPresenter
15
15
  end
16
16
 
17
17
  def render
18
- facet = (active? ? selected_facet_item : facet_item_link)
19
- content_tag(:li, facet, class: 'facet-item')
18
+ raise NotImplementedError
20
19
  end
21
20
 
22
21
  protected
@@ -33,12 +32,6 @@ class FacetPresenter
33
32
  @value ||= options.fetch(:value, facet.value)
34
33
  end
35
34
 
36
- private
37
-
38
- def active?
39
- params[filter] == value
40
- end
41
-
42
35
  def selected_facet_item
43
36
  facet_remove_tag + text
44
37
  end
@@ -47,18 +40,8 @@ class FacetPresenter
47
40
  facet_count_tag + facet_link_tag
48
41
  end
49
42
 
50
- def facet_remove_tag
51
- content_tag(:span, class: 'facet-remove') do
52
- link_to(content_tag(:i, nil, class: 'icon-remove'), view.url_for(params.merge(filter => nil)), class: 'facet-link')
53
- end
54
- end
55
-
56
43
  def facet_count_tag
57
44
  content_tag(:span, count, class: 'badge')
58
45
  end
59
46
 
60
- def facet_link_tag
61
- link_to(text, view.url_for(params.merge(filter => value)), class: 'facet-link')
62
- end
63
-
64
47
  end
@@ -0,0 +1,26 @@
1
+ module Facets
2
+ class Facets::MultiplePresenter < FacetPresenter
3
+
4
+ def render
5
+ facet = (active? ? selected_facet_item : facet_item_link)
6
+ content_tag(:li, facet, class: 'facet-item')
7
+ end
8
+
9
+ private
10
+
11
+ def active?
12
+ params[filter] and params[filter].include?(value)
13
+ end
14
+
15
+ def facet_link_tag
16
+ link_to(text, view.url_for(params.merge(filter => ((params[filter] || []) + [value]))), class: 'facet-link')
17
+ end
18
+
19
+ def facet_remove_tag
20
+ content_tag(:span, class: 'facet-remove') do
21
+ link_to(content_tag(:i, nil, class: 'icon-remove'), view.url_for(params.merge(filter => (params[filter] - [value]))), class: 'facet-link')
22
+ end
23
+ end
24
+
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ module Facets
2
+ class SinglePresenter < FacetPresenter
3
+
4
+ def render
5
+ facet = (active? ? selected_facet_item : facet_item_link)
6
+ content_tag(:li, facet, class: 'facet-item')
7
+ end
8
+
9
+ private
10
+
11
+ def active?
12
+ params[filter] == value
13
+ end
14
+
15
+ def facet_link_tag
16
+ link_to(text, view.url_for(params.merge(filter => value)), class: 'facet-link')
17
+ end
18
+
19
+ def facet_remove_tag
20
+ content_tag(:span, class: 'facet-remove') do
21
+ link_to(content_tag(:i, nil, class: 'icon-remove'), view.url_for(params.merge(filter => nil)), class: 'facet-link')
22
+ end
23
+ end
24
+
25
+ end
26
+ end
@@ -1,3 +1,3 @@
1
1
  module Facetie
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: facetie
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mathieu Gagné
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-02 00:00:00.000000000 Z
11
+ date: 2013-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -57,6 +57,8 @@ files:
57
57
  - lib/facetie.rb
58
58
  - lib/facetie/helpers/facets_helper.rb
59
59
  - lib/facetie/presenters/facet_presenter.rb
60
+ - lib/facetie/presenters/facets/multiple_presenter.rb
61
+ - lib/facetie/presenters/facets/single_presenter.rb
60
62
  - lib/facetie/railtie.rb
61
63
  - lib/facetie/version.rb
62
64
  homepage: ''