livelist-rails 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,81 @@
1
+ require 'active_record'
2
+
3
+ module Livelist
4
+ module Rails
5
+ module ActiveRecord
6
+
7
+ def filters(*filter_slugs)
8
+ @@filter_slugs = filter_slugs
9
+ @@filter_slugs.each do |filter_slug|
10
+ metaclass = class << self; self; end
11
+
12
+ metaclass.instance_eval do
13
+ define_method "#{filter_slug}_filter_name" do
14
+ filter_slug.capitalize
15
+ end
16
+
17
+ define_method "#{filter_slug}_filter_slug" do
18
+ filter_slug
19
+ end
20
+
21
+
22
+ define_method "#{filter_slug}_filter" do |options|
23
+ {
24
+ :filter_slug => send("#{filter_slug}_filter_slug"),
25
+ :name => send("#{filter_slug}_filter_name"),
26
+ :options => options
27
+ }
28
+ end
29
+
30
+ define_method "#{filter_slug}_filter_options" do
31
+ select("distinct #{filter_slug}").map(&filter_slug)
32
+ end
33
+
34
+ define_method "#{filter_slug}_filter_counts" do
35
+ group(filter_slug).count
36
+ end
37
+
38
+ define_method "#{filter_slug}_filter_option" do |state, selected|
39
+ {
40
+ :slug => state,
41
+ :name => state.capitalize,
42
+ :value => state,
43
+ :count => @counts[state],
44
+ :selected => selected
45
+ }
46
+ end
47
+
48
+ define_method "#{filter_slug}_filters" do |filter_params|
49
+ @counts = send("#{filter_slug}_filter_counts")
50
+ send("#{filter_slug}_filter_options").map do |option|
51
+ selected = filter_params.nil? ? true : filter_params.include?(option)
52
+ send("#{filter_slug}_filter_option", option, selected)
53
+ end
54
+ end
55
+
56
+ define_method "#{filter_slug}_relation" do |values|
57
+ where(filter_slug => values)
58
+ end
59
+ end
60
+ end
61
+
62
+ def self.filters_as_json(filter_params)
63
+ filter_params ||= {}
64
+ @@filter_slugs.map do |filter|
65
+ send("#{filter}_filter", send("#{filter}_filters", filter_params[filter]))
66
+ end
67
+ end
68
+
69
+ def self.filter(filter_params)
70
+ filter_params ||= {}
71
+ query = scoped
72
+ filter_params.each do |filter, values|
73
+ query = query.send("#{filter}_relation", values)
74
+ end
75
+ query
76
+ end
77
+ end
78
+
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,6 @@
1
+ module Livelist
2
+ module Rails
3
+ class Engine < ::Rails::Engine
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,30 @@
1
+ require 'livelist/rails/active_record'
2
+
3
+ module Livelist
4
+ module Rails
5
+
6
+ class Railtie < ::Rails::Railtie
7
+ initializer "livelist-rails" do |app|
8
+ ActiveSupport.on_load :active_record do
9
+ ::ActiveRecord::Base.send :extend, ActiveRecord
10
+ end
11
+ end
12
+ end
13
+
14
+ # Rails 3.0
15
+ #class Railtie < ::Rails::Railtie
16
+ # config.before_configuration do
17
+ # if ::Rails.root.join("public/javascripts/livelist.min.js").exist?
18
+ # livelist_filename = 'livelist.min'
19
+ # livelist_filename = 'livelist.min' if ::Rails.env.production?
20
+ # else
21
+ # livelist_filename = ::Rails.env.production? ? 'livelist.min' : 'livelist'
22
+ # end
23
+
24
+ # config.action_view.javascript_expansions[:defaults] << %W(mustache underscore)
25
+ # config.action_view.javascript_expansions[:defaults] << livelist_filename
26
+ # end
27
+ #end
28
+
29
+ end
30
+ end
@@ -1,6 +1,6 @@
1
1
  module Livelist
2
2
  module Rails
3
- VERSION = '0.0.1'
3
+ VERSION = '0.0.2'
4
4
  LIVELIST_VERSION = '0.0.1'
5
5
  MUSTACHE_VERSION = 'db5f5ece0b6c87bbb2d0584010b97f8723dde69d'
6
6
  UNDERSCORE_VERSION = '1.2.3'
@@ -0,0 +1,7 @@
1
+ module Livelist
2
+ module Rails
3
+ require 'livelist/rails/railtie'
4
+ require 'livelist/rails/engine'
5
+ require 'livelist/rails/version'
6
+ end
7
+ end
@@ -1,25 +1 @@
1
- require "livelist-rails/version"
2
-
3
- module Livelist
4
- module Rails
5
-
6
- class Engine < ::Rails::Engine
7
- end
8
-
9
- # Rails 3.0
10
- #class Railtie < ::Rails::Railtie
11
- # config.before_configuration do
12
- # if ::Rails.root.join("public/javascripts/livelist.min.js").exist?
13
- # livelist_filename = 'livelist.min'
14
- # livelist_filename = 'livelist.min' if ::Rails.env.production?
15
- # else
16
- # livelist_filename = ::Rails.env.production? ? 'livelist.min' : 'livelist'
17
- # end
18
-
19
- # config.action_view.javascript_expansions[:defaults] << %W(mustache underscore)
20
- # config.action_view.javascript_expansions[:defaults] << livelist_filename
21
- # end
22
- #end
23
-
24
- end
25
- end
1
+ require 'livelist/rails'
@@ -1,6 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  $:.push File.expand_path("../lib", __FILE__)
3
- require "livelist-rails/version"
3
+ require "livelist/rails/version"
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "livelist-rails"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: livelist-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-23 00:00:00.000000000Z
12
+ date: 2011-12-25 00:00:00.000000000Z
13
13
  dependencies: []
14
14
  description: ! 'livelist-rails is a Rails 3.1 Engine/Extensiont incorporating the
15
15
  following javascript libraries: Mustache.js, underscore.js, jQuery and livelist.js,
@@ -31,7 +31,11 @@ files:
31
31
  - app/assets/javascripts/underscore-min.js
32
32
  - app/assets/javascripts/underscore.js
33
33
  - lib/livelist-rails.rb
34
- - lib/livelist-rails/version.rb
34
+ - lib/livelist/rails.rb
35
+ - lib/livelist/rails/active_record.rb
36
+ - lib/livelist/rails/engine.rb
37
+ - lib/livelist/rails/railtie.rb
38
+ - lib/livelist/rails/version.rb
35
39
  - livelist-rails.gemspec
36
40
  homepage: ''
37
41
  licenses: []