Guest User

Untitled

a guest
Feb 19th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. require 'rubygems'
  2. require 'sequel'
  3. require 'time'
  4.  
  5. DB = Sequel.connect 'sqlite:/'
  6.  
  7. class Category < Sequel::Model
  8. set_schema do
  9. primary_key :id
  10. text :name
  11. end
  12.  
  13. unless table_exists?
  14. self.create_table
  15. self.create :name => "OSS"
  16. self.create :name => "Proprietary"
  17. end
  18.  
  19. many_to_many :projects, :join_table => :status
  20. end
  21.  
  22. class Status < Sequel::Model(:status)
  23. set_schema do
  24. primary_key :id
  25. integer :category_id
  26. integer :project_id
  27. boolean :status
  28. end
  29.  
  30. unless self.table_exists?
  31. self.create_table
  32. self.create :category_id => 1, :project_id => 1, :status => true
  33. self.create :category_id => 1, :project_id => 2, :status => true
  34. self.create :category_id => 2, :project_id => 3, :status => true
  35. end
  36.  
  37. before_create do |record|
  38. record.status = true
  39. end
  40. end
  41.  
  42. class Project < Sequel::Model
  43. set_schema do
  44. primary_key :id
  45. text :name
  46. end
  47.  
  48. unless self.table_exists?
  49. self.create_table
  50. self.create :name => "Sequel"
  51. self.create :name => "Ramaze"
  52. self.create :name => "jQuery"
  53. end
  54.  
  55. many_to_many :categories, :join_table => :status
  56. end
  57.  
  58. Status.join(:categories, :id=>:category_id).group_and_count(:name).each do |count|
  59. puts "Category #{count[:'`name`']} has #{count[:count]} active projects"
  60. end
  61.  
  62. puts
  63.  
  64. Category.dataset.each do |cat|
  65. count = Status.filter(:status => true, :category_id => cat.id).count
  66. puts "Category: #{cat.name} has #{count} active project(s)."
  67. end
Add Comment
Please, Sign In to add comment