Guest User

Untitled

a guest
Jun 21st, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. require 'rubygems'
  2. require 'mongo_mapper'
  3.  
  4. MongoMapper.connection = Mongo::Connection.new('127.0.0.1', 27017, :logger => Logger.new(STDOUT))
  5. # MongoMapper.connection = Mongo::Connection.new('127.0.0.1', 27017)
  6. MongoMapper.database = 'testing'
  7.  
  8.  
  9. class Person
  10. include MongoMapper::Document
  11.  
  12. attr_accessible(:name, :dob)
  13.  
  14. # Attributes ::::::::::::::::::::::::::::::::::::::::::::::::::::::
  15. key :name, String
  16. key :dob, Time
  17.  
  18. def age
  19. now = Time.now.utc.to_date
  20. now.year - dob.year - ((now.month > dob.month || (now.month == dob.month && now.day >= dob.day)) ? 0 : 1)
  21. end
  22. end
  23.  
  24. Person.destroy_all()
  25.  
  26. p60 = Person.create( :name => "Foghorn", :dob => Time.parse((Date.today - 60.years).to_s))
  27. p50p = Person.create( :name => "Bugs", :dob => Time.parse(Date.new(1960,1,1).to_s))
  28. p50 = Person.create( :name => "Bugs2", :dob => Time.parse((Date.today - 50.years).to_s))
  29. p40 = Person.create( :name => "Sylvester", :dob => Time.parse((Date.today - 40.years).to_s))
  30. p10 = Person.create( :name => "Elmer", :dob => Time.parse((Date.today - 10.years).to_s))
  31. p2 = Person.create( :name => "Baby A", :dob => Time.parse((Date.today - 2.years).to_s))
  32.  
  33. t = Time.now - 3.years
  34. # Look for those older than 3 years
  35. older = Person.where(:dob.lte => t).all
  36. # Look for those under 3 years
  37. younger = Person.where(:dob.gt => t).all
  38.  
  39. puts "-"*25
  40. ppl = Person.all
  41. ppl.each do |p|
  42. puts "#{p.name}, #{p.age} yrs"
  43. end
  44.  
  45. puts "*"*25
  46. puts "Older than 3: "
  47. unless older.nil? || older.empty?
  48. older.each do |p|
  49. puts "\t#{p.name}, #{p.age} yrs"
  50. end
  51. else
  52. puts "\tNone"
  53. end
  54.  
  55. puts "Younger than 3: "
  56. unless younger.nil? || younger.empty?
  57. younger.each do |p|
  58. puts "\t#{p.name}, #{p.age} yrs"
  59. end
  60. else
  61. puts "\tNone"
  62. end
  63. puts "-"*25
Add Comment
Please, Sign In to add comment