client_side_validations-mongoid 2.4.0.beta.2

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.
@@ -0,0 +1,28 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/client_side_validations/mongoid/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["Brian Cardarella"]
6
+ gem.email = ["bcardarella@gmail.com"]
7
+ gem.description = %q{Mongoid Plugin for ClientSideValidaitons}
8
+ gem.summary = %q{Mongoid Plugin for ClientSideValidations}
9
+ gem.homepage = 'https://github.com/dockyard/client_side_validations-mongoid'
10
+
11
+ gem.files = `git ls-files -- {lib/*,vendor/*,*.gemspec}`.split("\n")
12
+ gem.name = 'client_side_validations-mongoid'
13
+ gem.require_paths = ['lib']
14
+ gem.version = ClientSideValidations::Mongoid::VERSION
15
+
16
+ gem.add_dependency 'client_side_validations', '~> 3.2.0.beta.1'
17
+ gem.add_dependency 'mongoid', '~> 2.4.0'
18
+
19
+ gem.add_development_dependency 'bson_ext'
20
+ gem.add_development_dependency 'rails', '~> 3.2.0'
21
+ gem.add_development_dependency 'mocha'
22
+
23
+ # For QUnit testing
24
+ gem.add_development_dependency 'sinatra', '~> 1.0'
25
+ gem.add_development_dependency 'shotgun'
26
+ gem.add_development_dependency 'thin'
27
+ gem.add_development_dependency 'json'
28
+ end
@@ -0,0 +1,25 @@
1
+ module ClientSideValidations::Mongoid
2
+ class Middleware
3
+
4
+ def self.is_class?(klass)
5
+ klass < ::Mongoid::Document
6
+ end
7
+
8
+ # Still need to handle embedded documents
9
+ def self.is_unique?(klass, attribute, value, params)
10
+ if params[:case_sensitive] == 'false'
11
+ value = Regexp.new("^#{Regexp.escape(value.to_s)}$", Regexp::IGNORECASE)
12
+ end
13
+
14
+ criteria = klass.where(attribute => value)
15
+ criteria = criteria.where(:_id => {'$ne' => BSON::ObjectId(params[:id])}) if params[:id]
16
+
17
+ (params[:scope] || {}).each do |key, value|
18
+ criteria = criteria.where(key => value)
19
+ end
20
+
21
+ !criteria.exists?
22
+ end
23
+ end
24
+ end
25
+
@@ -0,0 +1,10 @@
1
+ module ClientSideValidations::Mongoid
2
+ module Presence
3
+ private
4
+
5
+ def message_type
6
+ :blank
7
+ end
8
+ end
9
+ end
10
+
@@ -0,0 +1,28 @@
1
+ module ClientSideValidations::Mongoid
2
+ module Uniqueness
3
+ def client_side_hash(model, attribute)
4
+ hash = {}
5
+ hash[:message] = model.errors.generate_message(attribute, message_type, options.except(:scope))
6
+ hash[:case_sensitive] = options[:case_sensitive] if options.key?(:case_sensitive)
7
+ hash[:id] = model.id unless model.new_record?
8
+ if options.key?(:scope) && options[:scope].present?
9
+ hash[:scope] = Array.wrap(options[:scope]).inject({}) do |scope_hash, scope_item|
10
+ scope_hash.merge!(scope_item => model.send(scope_item))
11
+ end
12
+ end
13
+
14
+ unless model.class.name.demodulize == model.class.name
15
+ hash[:class] = model.class.name.underscore
16
+ end
17
+
18
+ hash
19
+ end
20
+
21
+ private
22
+
23
+ def message_type
24
+ :taken
25
+ end
26
+ end
27
+ end
28
+
@@ -0,0 +1,5 @@
1
+ module ClientSideValidations
2
+ module Mongoid
3
+ VERSION = '2.4.0.beta.2'
4
+ end
5
+ end
@@ -0,0 +1,12 @@
1
+ require 'client_side_validations/active_model'
2
+ require 'client_side_validations/middleware'
3
+ require 'client_side_validations/mongoid/middleware'
4
+
5
+ %w{presence uniqueness}.each do |validator|
6
+ require "client_side_validations/mongoid/#{validator}"
7
+ validator.capitalize!
8
+ eval "Mongoid::Validations::#{validator}Validator.send(:include, ClientSideValidations::Mongoid::#{validator})"
9
+ end
10
+
11
+ ClientSideValidations::Middleware::Uniqueness.register_orm(ClientSideValidations::Mongoid::Middleware)
12
+
@@ -0,0 +1 @@
1
+ require 'client_side_validations/mongoid'
metadata ADDED
@@ -0,0 +1,151 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: client_side_validations-mongoid
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.4.0.beta.2
5
+ prerelease: 6
6
+ platform: ruby
7
+ authors:
8
+ - Brian Cardarella
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-01-22 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: client_side_validations
16
+ requirement: &70322746206920 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 3.2.0.beta.1
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70322746206920
25
+ - !ruby/object:Gem::Dependency
26
+ name: mongoid
27
+ requirement: &70322746204280 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 2.4.0
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70322746204280
36
+ - !ruby/object:Gem::Dependency
37
+ name: bson_ext
38
+ requirement: &70322746203860 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70322746203860
47
+ - !ruby/object:Gem::Dependency
48
+ name: rails
49
+ requirement: &70322746203240 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 3.2.0
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *70322746203240
58
+ - !ruby/object:Gem::Dependency
59
+ name: mocha
60
+ requirement: &70322746202800 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *70322746202800
69
+ - !ruby/object:Gem::Dependency
70
+ name: sinatra
71
+ requirement: &70322746202240 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ version: '1.0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *70322746202240
80
+ - !ruby/object:Gem::Dependency
81
+ name: shotgun
82
+ requirement: &70322746201780 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *70322746201780
91
+ - !ruby/object:Gem::Dependency
92
+ name: thin
93
+ requirement: &70322746201200 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: *70322746201200
102
+ - !ruby/object:Gem::Dependency
103
+ name: json
104
+ requirement: &70322746200680 !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: *70322746200680
113
+ description: Mongoid Plugin for ClientSideValidaitons
114
+ email:
115
+ - bcardarella@gmail.com
116
+ executables: []
117
+ extensions: []
118
+ extra_rdoc_files: []
119
+ files:
120
+ - client_side_validations-mongoid.gemspec
121
+ - lib/client_side_validations-mongoid.rb
122
+ - lib/client_side_validations/mongoid.rb
123
+ - lib/client_side_validations/mongoid/middleware.rb
124
+ - lib/client_side_validations/mongoid/presence.rb
125
+ - lib/client_side_validations/mongoid/uniqueness.rb
126
+ - lib/client_side_validations/mongoid/version.rb
127
+ homepage: https://github.com/dockyard/client_side_validations-mongoid
128
+ licenses: []
129
+ post_install_message:
130
+ rdoc_options: []
131
+ require_paths:
132
+ - lib
133
+ required_ruby_version: !ruby/object:Gem::Requirement
134
+ none: false
135
+ requirements:
136
+ - - ! '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ required_rubygems_version: !ruby/object:Gem::Requirement
140
+ none: false
141
+ requirements:
142
+ - - ! '>'
143
+ - !ruby/object:Gem::Version
144
+ version: 1.3.1
145
+ requirements: []
146
+ rubyforge_project:
147
+ rubygems_version: 1.8.10
148
+ signing_key:
149
+ specification_version: 3
150
+ summary: Mongoid Plugin for ClientSideValidations
151
+ test_files: []