mongoid_dynamic_finder 0.0.1

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/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ .idea/
2
+ *.gem
3
+ .bundle
4
+ Gemfile.lock
5
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in mongoid_dynamic_finder.gemspec
4
+ gemspec
data/README ADDED
@@ -0,0 +1,9 @@
1
+ Mongoid support for #find_by_attributes #find_by_xxx in finder
2
+
3
+ Artist.create(:name => "Mitesh", :title => "Mr.")
4
+ Artist.find_by_name("Mitesh")
5
+ Artist.find_by_name_and_title("Mitesh", "Mr.")
6
+ Artist.find_first_by_name("Mitesh")
7
+ Artist.find_first_by_name_and_title("Mitesh", "Mr.")
8
+ Artist.find_last_by_name_and_title("Mitesh", "Mr.")
9
+ Artist.find_last_by_name("Mitesh")
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,18 @@
1
+ module Mongoid
2
+ module Finders
3
+
4
+ def method_missing(method_id, *arguments, &block)
5
+ conditions = {}
6
+ case method_id.to_s
7
+ when /^find_(all|last||first)_?by_([_a-zA-Z]\w*)$/
8
+ finder_type = !$1.blank? ? $1.to_sym : :all
9
+ $2.split(/_and_/).each_with_index do |attr, i|
10
+ conditions[attr] = arguments[i]
11
+ end
12
+ find(finder_type, :conditions => conditions)
13
+ else
14
+ super
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,3 @@
1
+ module MongoidDynamicFinder
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,5 @@
1
+ require "mongoid_dynamic_finder/version"
2
+ require "mongoid_dynamic_finder/finder"
3
+ module MongoidDynamicFinder
4
+
5
+ end
@@ -0,0 +1,26 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "mongoid_dynamic_finder/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "mongoid_dynamic_finder"
7
+ s.version = MongoidDynamicFinder::VERSION
8
+ s.authors = ["Mitesh Jain"]
9
+ s.email = ["mitijain123@gmail.com"]
10
+ s.homepage = ""
11
+ s.summary = %q{making the method find_by_XXX("Mitesh")}
12
+ s.description = %q{making the method find_by_XXX("Mitesh")}
13
+
14
+ s.rubyforge_project = "mongoid_dynamic_finder"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ s.add_dependency "mongoid"
22
+
23
+ # specify any dependencies here; for example:
24
+ # s.add_development_dependency "rspec"
25
+ # s.add_runtime_dependency "rest-client"
26
+ end
metadata ADDED
@@ -0,0 +1,64 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mongoid_dynamic_finder
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Mitesh Jain
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-11-21 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: mongoid
16
+ requirement: &2160424020 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *2160424020
25
+ description: making the method find_by_XXX("Mitesh")
26
+ email:
27
+ - mitijain123@gmail.com
28
+ executables: []
29
+ extensions: []
30
+ extra_rdoc_files: []
31
+ files:
32
+ - .gitignore
33
+ - Gemfile
34
+ - README
35
+ - Rakefile
36
+ - lib/mongoid_dynamic_finder.rb
37
+ - lib/mongoid_dynamic_finder/finder.rb
38
+ - lib/mongoid_dynamic_finder/version.rb
39
+ - mongoid_dynamic_finder.gemspec
40
+ homepage: ''
41
+ licenses: []
42
+ post_install_message:
43
+ rdoc_options: []
44
+ require_paths:
45
+ - lib
46
+ required_ruby_version: !ruby/object:Gem::Requirement
47
+ none: false
48
+ requirements:
49
+ - - ! '>='
50
+ - !ruby/object:Gem::Version
51
+ version: '0'
52
+ required_rubygems_version: !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ! '>='
56
+ - !ruby/object:Gem::Version
57
+ version: '0'
58
+ requirements: []
59
+ rubyforge_project: mongoid_dynamic_finder
60
+ rubygems_version: 1.8.10
61
+ signing_key:
62
+ specification_version: 3
63
+ summary: making the method find_by_XXX("Mitesh")
64
+ test_files: []