ohio_state_person 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 +4 -0
- data/Gemfile +4 -0
- data/OhioStatePerson.gemspec +25 -0
- data/Rakefile +1 -0
- data/lib/OhioStatePerson/version.rb +3 -0
- data/lib/OhioStatePerson.rb +54 -0
- metadata +85 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
|
3
|
+
require "OhioStatePerson/version"
|
|
4
|
+
|
|
5
|
+
Gem::Specification.new do |s|
|
|
6
|
+
s.name = "ohio_state_person"
|
|
7
|
+
s.version = OhioStatePerson::VERSION
|
|
8
|
+
s.authors = ["mikegee"]
|
|
9
|
+
s.email = ["gee.24@osu.edu"]
|
|
10
|
+
s.homepage = "https://github.com/ASCTech/OhioStatePerson"
|
|
11
|
+
s.summary = %q{ActiveRecord mixin for people at Ohio State University}
|
|
12
|
+
s.description = %q{requires fields: name_n, emplid; sets id to emplid.to_i; provides a search method; etc.}
|
|
13
|
+
|
|
14
|
+
s.rubyforge_project = "OhioStatePerson"
|
|
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
|
+
# specify any dependencies here; for example:
|
|
22
|
+
# s.add_development_dependency "rspec"
|
|
23
|
+
# s.add_runtime_dependency "rest-client"
|
|
24
|
+
s.add_runtime_dependency "activerecord", '~> 3.0'
|
|
25
|
+
end
|
data/Rakefile
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require "bundler/gem_tasks"
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
require "OhioStatePerson/version"
|
|
2
|
+
|
|
3
|
+
module OhioStatePerson
|
|
4
|
+
|
|
5
|
+
def self.included(base)
|
|
6
|
+
base.instance_eval do
|
|
7
|
+
validates_uniqueness_of :name_n
|
|
8
|
+
validates_format_of :name_n, :with => /\A[a-z]([a-z-]*[a-z])?\.[1-9]\d*\z/, :message => 'must be in format: name.#'
|
|
9
|
+
|
|
10
|
+
validates_uniqueness_of :emplid
|
|
11
|
+
validates_format_of :emplid, :with => /\A\d{8,9}\z/, :message => 'must be 8 or 9 digits'
|
|
12
|
+
|
|
13
|
+
before_validation :set_id, :on => :create
|
|
14
|
+
validate :id_is_emplid
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def self.search(q)
|
|
18
|
+
q.strip! if q
|
|
19
|
+
case q
|
|
20
|
+
when /\A\d+\z/
|
|
21
|
+
where(:emplid => q)
|
|
22
|
+
when /\A\D+\.\d+\z/
|
|
23
|
+
where(:name_n => q)
|
|
24
|
+
when /(\S+),\s*(\S+)/
|
|
25
|
+
where('last_name LIKE ? AND first_name LIKE ?', $1, "#{$2}%")
|
|
26
|
+
when /(\S+)\s+(\S+)/
|
|
27
|
+
where('first_name LIKE ? AND last_name LIKE ?', $1, "#{$2}%")
|
|
28
|
+
when /\S/
|
|
29
|
+
where('last_name LIKE ?', "#{q}%")
|
|
30
|
+
else
|
|
31
|
+
where('1=2')
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def email
|
|
39
|
+
name_n.present? ? "#{name_n}@osu.edu" : ''
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
protected
|
|
43
|
+
|
|
44
|
+
def set_id
|
|
45
|
+
self.id = self.emplid.to_i
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def id_is_emplid
|
|
49
|
+
unless self.id == self.emplid.to_i
|
|
50
|
+
errors.add(:id, 'must be the same as the emplid')
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: ohio_state_person
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
hash: 29
|
|
5
|
+
prerelease:
|
|
6
|
+
segments:
|
|
7
|
+
- 0
|
|
8
|
+
- 0
|
|
9
|
+
- 1
|
|
10
|
+
version: 0.0.1
|
|
11
|
+
platform: ruby
|
|
12
|
+
authors:
|
|
13
|
+
- mikegee
|
|
14
|
+
autorequire:
|
|
15
|
+
bindir: bin
|
|
16
|
+
cert_chain: []
|
|
17
|
+
|
|
18
|
+
date: 2011-09-21 00:00:00 Z
|
|
19
|
+
dependencies:
|
|
20
|
+
- !ruby/object:Gem::Dependency
|
|
21
|
+
name: activerecord
|
|
22
|
+
prerelease: false
|
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
|
24
|
+
none: false
|
|
25
|
+
requirements:
|
|
26
|
+
- - ~>
|
|
27
|
+
- !ruby/object:Gem::Version
|
|
28
|
+
hash: 7
|
|
29
|
+
segments:
|
|
30
|
+
- 3
|
|
31
|
+
- 0
|
|
32
|
+
version: "3.0"
|
|
33
|
+
type: :runtime
|
|
34
|
+
version_requirements: *id001
|
|
35
|
+
description: "requires fields: name_n, emplid; sets id to emplid.to_i; provides a search method; etc."
|
|
36
|
+
email:
|
|
37
|
+
- gee.24@osu.edu
|
|
38
|
+
executables: []
|
|
39
|
+
|
|
40
|
+
extensions: []
|
|
41
|
+
|
|
42
|
+
extra_rdoc_files: []
|
|
43
|
+
|
|
44
|
+
files:
|
|
45
|
+
- .gitignore
|
|
46
|
+
- Gemfile
|
|
47
|
+
- OhioStatePerson.gemspec
|
|
48
|
+
- Rakefile
|
|
49
|
+
- lib/OhioStatePerson.rb
|
|
50
|
+
- lib/OhioStatePerson/version.rb
|
|
51
|
+
homepage: https://github.com/ASCTech/OhioStatePerson
|
|
52
|
+
licenses: []
|
|
53
|
+
|
|
54
|
+
post_install_message:
|
|
55
|
+
rdoc_options: []
|
|
56
|
+
|
|
57
|
+
require_paths:
|
|
58
|
+
- lib
|
|
59
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
60
|
+
none: false
|
|
61
|
+
requirements:
|
|
62
|
+
- - ">="
|
|
63
|
+
- !ruby/object:Gem::Version
|
|
64
|
+
hash: 3
|
|
65
|
+
segments:
|
|
66
|
+
- 0
|
|
67
|
+
version: "0"
|
|
68
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
69
|
+
none: false
|
|
70
|
+
requirements:
|
|
71
|
+
- - ">="
|
|
72
|
+
- !ruby/object:Gem::Version
|
|
73
|
+
hash: 3
|
|
74
|
+
segments:
|
|
75
|
+
- 0
|
|
76
|
+
version: "0"
|
|
77
|
+
requirements: []
|
|
78
|
+
|
|
79
|
+
rubyforge_project: OhioStatePerson
|
|
80
|
+
rubygems_version: 1.8.10
|
|
81
|
+
signing_key:
|
|
82
|
+
specification_version: 3
|
|
83
|
+
summary: ActiveRecord mixin for people at Ohio State University
|
|
84
|
+
test_files: []
|
|
85
|
+
|