Guest User

Untitled

a guest
Jul 15th, 2018
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.31 KB | None | 0 0
  1. require 'rubygems'
  2. # ENV['GEM_HOME'] = '/Users/karlbright/.rvm/gems/jruby-1.5.2'
  3. # ENV['GEM_PATH'] = '/Users/karlbright/.rvm/gems/jruby-1.5.2'
  4. require 'active_record'
  5. require 'ruby-processing'
  6.  
  7. ActiveRecord::Base.establish_connection(
  8. :adapter => 'jdbc',
  9. :driver => 'org.postgresql.Driver',
  10. :url => 'jdbc:postgresql://localhost/twetter',
  11. :username => 'karlbright'
  12. )
  13.  
  14. class Relation < ActiveRecord::Base
  15. end
  16.  
  17. puts Relation.find(:all).inspect
  18.  
  19. class DisplayRelationships < Processing::App
  20.  
  21. class << self
  22. def randomX
  23. randomFromRange(20,700)
  24. end
  25.  
  26. def randomY
  27. randomFromRange(20,395)
  28. end
  29.  
  30. def randomFromRange(rangeStart,rangeEnd)
  31. return rangeStart + rand(rangeEnd - rangeStart)
  32. end
  33. end
  34.  
  35. def setup
  36. @relationships, @people = [], []
  37. background 0
  38. fill 255
  39. no_loop
  40. no_stroke
  41. smooth
  42. end
  43.  
  44. def draw
  45. # Relations.find(:all).each do |relation|
  46. # createPeople([relation.user_name]) unless @people.include? relation.user_name
  47. # createPeople([relation.follower_name]) unless @People.include? relation.follower_name
  48. # createRelationship(relation.user_name,relation.follower_name)
  49. # end
  50. end
  51.  
  52. private
  53.  
  54. def createPeople(people)
  55. people.each { |name| @people << Person.new(name) }
  56. end
  57.  
  58. def createRelationship(person1, person2)
  59. Relationship.new(findPerson(person1),findPerson(person2))
  60. end
  61.  
  62. def findPerson(name)
  63. @people.find { |person| person.name == name }
  64. end
  65.  
  66. end
  67.  
  68. class Person
  69. attr_accessor :name, :font, :x, :y
  70.  
  71. LABEL_FONT = 'Helvetica'
  72. LABEL_SIZE = 10
  73. CIRCLE_HEIGHT = 10
  74. CIRCLE_WIDTH = 10
  75.  
  76. def initialize(name,x=DisplayRelationships.randomX,y=DisplayRelationships.randomY)
  77. @name = name
  78. @x = x
  79. @y = y
  80. @font = $app.create_font(LABEL_FONT,LABEL_SIZE)
  81. $app.text_font(@font)
  82. drawCircle
  83. drawLabel
  84. end
  85.  
  86. private
  87.  
  88. def drawCircle
  89. $app.ellipse(@x,@y,CIRCLE_HEIGHT,CIRCLE_WIDTH)
  90. end
  91.  
  92. def drawLabel
  93. $app.text(@name,@x+ 10,@y)
  94. end
  95.  
  96. end
  97.  
  98. class Relationship
  99. attr_reader :person1, :person2
  100.  
  101. def initialize(person1,person2)
  102. @person1, @person2 = person1, person2
  103. drawLine
  104. end
  105.  
  106. private
  107.  
  108. def drawLine
  109. $app.stroke 255, 100
  110. $app.line(@person1.x,@person1.y,@person2.x,@person2.y)
  111. end
  112.  
  113. end
  114.  
  115.  
  116. DisplayRelationships.new :title => "Display Relationships", :width => 720, :height => 415
Add Comment
Please, Sign In to add comment