Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'rubygems'
- # ENV['GEM_HOME'] = '/Users/karlbright/.rvm/gems/jruby-1.5.2'
- # ENV['GEM_PATH'] = '/Users/karlbright/.rvm/gems/jruby-1.5.2'
- require 'active_record'
- require 'ruby-processing'
- ActiveRecord::Base.establish_connection(
- :adapter => 'jdbc',
- :driver => 'org.postgresql.Driver',
- :url => 'jdbc:postgresql://localhost/twetter',
- :username => 'karlbright'
- )
- class Relation < ActiveRecord::Base
- end
- puts Relation.find(:all).inspect
- class DisplayRelationships < Processing::App
- class << self
- def randomX
- randomFromRange(20,700)
- end
- def randomY
- randomFromRange(20,395)
- end
- def randomFromRange(rangeStart,rangeEnd)
- return rangeStart + rand(rangeEnd - rangeStart)
- end
- end
- def setup
- @relationships, @people = [], []
- background 0
- fill 255
- no_loop
- no_stroke
- smooth
- end
- def draw
- # Relations.find(:all).each do |relation|
- # createPeople([relation.user_name]) unless @people.include? relation.user_name
- # createPeople([relation.follower_name]) unless @People.include? relation.follower_name
- # createRelationship(relation.user_name,relation.follower_name)
- # end
- end
- private
- def createPeople(people)
- people.each { |name| @people << Person.new(name) }
- end
- def createRelationship(person1, person2)
- Relationship.new(findPerson(person1),findPerson(person2))
- end
- def findPerson(name)
- @people.find { |person| person.name == name }
- end
- end
- class Person
- attr_accessor :name, :font, :x, :y
- LABEL_FONT = 'Helvetica'
- LABEL_SIZE = 10
- CIRCLE_HEIGHT = 10
- CIRCLE_WIDTH = 10
- def initialize(name,x=DisplayRelationships.randomX,y=DisplayRelationships.randomY)
- @name = name
- @x = x
- @y = y
- @font = $app.create_font(LABEL_FONT,LABEL_SIZE)
- $app.text_font(@font)
- drawCircle
- drawLabel
- end
- private
- def drawCircle
- $app.ellipse(@x,@y,CIRCLE_HEIGHT,CIRCLE_WIDTH)
- end
- def drawLabel
- $app.text(@name,@x+ 10,@y)
- end
- end
- class Relationship
- attr_reader :person1, :person2
- def initialize(person1,person2)
- @person1, @person2 = person1, person2
- drawLine
- end
- private
- def drawLine
- $app.stroke 255, 100
- $app.line(@person1.x,@person1.y,@person2.x,@person2.y)
- end
- end
- DisplayRelationships.new :title => "Display Relationships", :width => 720, :height => 415
Add Comment
Please, Sign In to add comment