├── arrows ├── Facebook Application │ ├── log │ │ ├── server.log │ │ ├── test.log │ │ ├── development.log │ │ └── production.log │ ├── public │ │ ├── favicon.ico │ │ ├── images │ │ │ └── rails.png │ │ ├── javascripts │ │ │ └── application.js │ │ ├── robots.txt │ │ ├── dispatch.cgi │ │ ├── dispatch.rb │ │ ├── dispatch.fcgi │ │ ├── 422.html │ │ ├── 404.html │ │ └── 500.html │ ├── vendor │ │ └── plugins │ │ │ └── facebooker │ │ │ ├── CHANGELOG.txt │ │ │ ├── generators │ │ │ ├── controller │ │ │ │ ├── templates │ │ │ │ │ ├── helper.rb │ │ │ │ │ ├── view.fbml.erb │ │ │ │ │ ├── view.html.erb │ │ │ │ │ ├── controller.rb │ │ │ │ │ └── functional_test.rb │ │ │ │ ├── USAGE │ │ │ │ └── controller_generator.rb │ │ │ ├── scaffold │ │ │ │ ├── templates │ │ │ │ │ ├── helper.rb │ │ │ │ │ ├── layout.fbml.erb │ │ │ │ │ ├── view_show.fbml.erb │ │ │ │ │ ├── view_show.html.erb │ │ │ │ │ ├── view_new.fbml.erb │ │ │ │ │ ├── view_edit.fbml.erb │ │ │ │ │ ├── view_new.html.erb │ │ │ │ │ ├── view_edit.html.erb │ │ │ │ │ ├── layout.html.erb │ │ │ │ │ ├── view_index.fbml.erb │ │ │ │ │ ├── view_index.html.erb │ │ │ │ │ └── style.css │ │ │ │ └── USAGE │ │ │ └── publisher │ │ │ │ ├── templates │ │ │ │ ├── publisher.rb │ │ │ │ └── create_facebook_templates.rb │ │ │ │ └── publisher_generator.rb │ │ │ ├── lib │ │ │ ├── facebooker │ │ │ │ ├── version.rb │ │ │ │ ├── models │ │ │ │ │ ├── info_section.rb │ │ │ │ │ ├── location.rb │ │ │ │ │ ├── cookie.rb │ │ │ │ │ ├── photo.rb │ │ │ │ │ ├── tag.rb │ │ │ │ │ ├── education_info.rb │ │ │ │ │ ├── work_info.rb │ │ │ │ │ ├── affiliation.rb │ │ │ │ │ ├── album.rb │ │ │ │ │ ├── info_item.rb │ │ │ │ │ ├── friend_list.rb │ │ │ │ │ ├── notifications.rb │ │ │ │ │ ├── event.rb │ │ │ │ │ ├── page.rb │ │ │ │ │ └── group.rb │ │ │ │ ├── rails │ │ │ │ │ ├── facebook_pretty_errors.rb │ │ │ │ │ ├── facebook_asset_path.rb │ │ │ │ │ ├── utilities.rb │ │ │ │ │ ├── facebook_request_fix.rb │ │ │ │ │ ├── facebook_url_rewriting.rb │ │ │ │ │ ├── profile_publisher_extensions.rb │ │ │ │ │ ├── facebook_session_handling.rb │ │ │ │ │ ├── routing.rb │ │ │ │ │ └── test_helpers.rb │ │ │ │ ├── service.rb │ │ │ │ ├── server_cache.rb │ │ │ │ ├── admin.rb │ │ │ │ ├── batch_request.rb │ │ │ │ ├── data.rb │ │ │ │ ├── adapters │ │ │ │ │ ├── facebook_adapter.rb │ │ │ │ │ └── bebo_adapter.rb │ │ │ │ └── feed.rb │ │ │ └── tasks │ │ │ │ ├── facebooker.rake │ │ │ │ └── tunnel.rake │ │ │ ├── install.rb │ │ │ ├── History.txt │ │ │ ├── templates │ │ │ └── layout.erb │ │ │ ├── test │ │ │ ├── event_test.rb │ │ │ ├── fixtures │ │ │ │ ├── multipart_post_body_with_only_parameters.txt │ │ │ │ ├── multipart_post_body_with_single_file.txt │ │ │ │ └── multipart_post_body_with_single_file_that_has_nil_key.txt │ │ │ ├── facebook_data_test.rb │ │ │ ├── facebook_cache_test.rb │ │ │ ├── test_helper.rb │ │ │ ├── http_multipart_post_test.rb │ │ │ ├── batch_request_test.rb │ │ │ └── model_test.rb │ │ │ ├── examples │ │ │ └── desktop_login.rb │ │ │ ├── TODO.txt │ │ │ ├── COPYING │ │ │ ├── facebooker.yml.tpl │ │ │ ├── README │ │ │ ├── init.rb │ │ │ ├── Rakefile │ │ │ └── Manifest.txt │ ├── script │ │ ├── console │ │ ├── destroy │ │ ├── plugin │ │ ├── runner │ │ ├── server │ │ ├── dbconsole │ │ ├── generate │ │ ├── process │ │ │ ├── reaper │ │ │ ├── spawner │ │ │ └── inspector │ │ ├── performance │ │ │ ├── profiler │ │ │ ├── request │ │ │ └── benchmarker │ │ └── about │ ├── app │ │ ├── helpers │ │ │ └── application_helper.rb │ │ └── controllers │ │ │ └── application.rb │ ├── doc │ │ └── README_FOR_APP │ ├── config │ │ ├── initializers │ │ │ ├── mime_types.rb │ │ │ ├── inflections.rb │ │ │ └── new_rails_defaults.rb │ │ ├── database.yml │ │ ├── environments │ │ │ ├── development.rb │ │ │ ├── production.rb │ │ │ └── test.rb │ │ ├── facebooker.yml │ │ └── routes.rb │ ├── Rakefile │ └── test │ │ └── test_helper.rb ├── Konfabulator Widget │ ├── Build │ │ └── emptyfile │ ├── front.psd │ └── ArrowKeyControl.widget │ │ └── Contents │ │ └── Images │ │ ├── down.png │ │ ├── play.png │ │ ├── up.png │ │ ├── about.png │ │ └── front.png ├── Dashboard Widget │ ├── ArrowKeyControl.wdgt │ │ ├── WidgetResources │ │ │ ├── .parsers │ │ │ │ ├── .version │ │ │ │ └── translationParser.js │ │ │ ├── resize.png │ │ │ ├── ibutton │ │ │ │ ├── black_i.png │ │ │ │ ├── white_i.png │ │ │ │ ├── black_rollie.png │ │ │ │ └── white_rollie.png │ │ │ ├── button │ │ │ │ ├── glassbuttonleft.png │ │ │ │ ├── glassbuttonmiddle.png │ │ │ │ ├── glassbuttonright.png │ │ │ │ ├── glassbuttonleftclicked.png │ │ │ │ ├── glassbuttonmiddleclicked.png │ │ │ │ └── glassbuttonrightclicked.png │ │ │ └── AppleClasses │ │ │ │ └── Images │ │ │ │ ├── slide_thumb.png │ │ │ │ ├── slide_track_hmid.png │ │ │ │ ├── slide_track_vmid.png │ │ │ │ ├── slide_track_vtop.png │ │ │ │ ├── scroll_thumb_hleft.png │ │ │ │ ├── scroll_thumb_hmid.png │ │ │ │ ├── scroll_thumb_hright.png │ │ │ │ ├── scroll_thumb_vmid.png │ │ │ │ ├── scroll_thumb_vtop.png │ │ │ │ ├── scroll_track_hleft.png │ │ │ │ ├── scroll_track_hmid.png │ │ │ │ ├── scroll_track_hright.png │ │ │ │ ├── scroll_track_vmid.png │ │ │ │ ├── scroll_track_vtop.png │ │ │ │ ├── slide_track_hleft.png │ │ │ │ ├── slide_track_hright.png │ │ │ │ ├── slide_track_vbottom.png │ │ │ │ ├── scroll_thumb_vbottom.png │ │ │ │ └── scroll_track_vbottom.png │ │ ├── Icon.png │ │ ├── Default.png │ │ ├── OpenSans-Bold.ttf │ │ ├── OpenSans-Regular.ttf │ │ ├── Parts │ │ │ └── Images │ │ │ │ ├── back.png │ │ │ │ ├── front.png │ │ │ │ ├── play_left.png │ │ │ │ ├── play_middle.png │ │ │ │ ├── play_right.png │ │ │ │ ├── play_left_clicked.png │ │ │ │ ├── play_middle_clicked.png │ │ │ │ └── play_right_clicked.png │ │ ├── Images │ │ │ └── front_time_used.png │ │ ├── en.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── localizedStrings.js │ │ ├── widget-impl.js │ │ ├── Info.plist │ │ └── ArrowKeyControl.html │ ├── Icon.png │ └── ArrowKeyControl.wdgtproj │ │ ├── project │ │ └── widget.wdgt │ │ │ ├── Icon.png │ │ │ ├── Default.png │ │ │ ├── Parts │ │ │ ├── Images │ │ │ │ ├── back.png │ │ │ │ ├── front.png │ │ │ │ ├── play_left.png │ │ │ │ ├── play_right.png │ │ │ │ ├── play_middle.png │ │ │ │ ├── play_left_clicked.png │ │ │ │ ├── play_right_clicked.png │ │ │ │ └── play_middle_clicked.png │ │ │ ├── datasources.js │ │ │ ├── InfoButton.js │ │ │ ├── setup.js │ │ │ ├── GlassButton.js │ │ │ ├── Button.js │ │ │ └── parts.js │ │ │ ├── Images │ │ │ └── front_time_used.png │ │ │ ├── en.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── localizedStrings.js │ │ │ └── Info.plist │ │ └── projectInfo.plist ├── C │ ├── .DS_Store │ ├── configure │ ├── Makefile │ └── akc.6 ├── Web Game │ ├── Icon.png │ ├── preview.png │ ├── images │ │ ├── sprite.png │ │ └── src │ │ │ ├── up.png │ │ │ ├── back.png │ │ │ ├── blank.png │ │ │ ├── down.png │ │ │ ├── front.png │ │ │ ├── info.png │ │ │ ├── left.png │ │ │ ├── right.png │ │ │ ├── wait.png │ │ │ └── front_time_used.png │ ├── fonts │ │ ├── OpenSans-Bold.ttf │ │ └── OpenSans-Regular.ttf │ ├── game.js │ ├── index.html │ └── ArrowKeyControl.js └── Rakefile ├── akc.jpg ├── original ├── Dashboard Widget │ ├── KeyControl.wdgt │ │ ├── WidgetResources │ │ │ ├── .parsers │ │ │ │ ├── .version │ │ │ │ └── translationParser.js │ │ │ ├── resize.png │ │ │ ├── ibutton │ │ │ │ ├── black_i.png │ │ │ │ ├── white_i.png │ │ │ │ ├── black_rollie.png │ │ │ │ └── white_rollie.png │ │ │ ├── button │ │ │ │ ├── glassbuttonleft.png │ │ │ │ ├── glassbuttonmiddle.png │ │ │ │ ├── glassbuttonright.png │ │ │ │ ├── glassbuttonleftclicked.png │ │ │ │ ├── glassbuttonmiddleclicked.png │ │ │ │ └── glassbuttonrightclicked.png │ │ │ └── AppleClasses │ │ │ │ └── Images │ │ │ │ ├── slide_thumb.png │ │ │ │ ├── scroll_thumb_hmid.png │ │ │ │ ├── scroll_thumb_vmid.png │ │ │ │ ├── scroll_thumb_vtop.png │ │ │ │ ├── scroll_track_hmid.png │ │ │ │ ├── scroll_track_vmid.png │ │ │ │ ├── scroll_track_vtop.png │ │ │ │ ├── slide_track_hleft.png │ │ │ │ ├── slide_track_hmid.png │ │ │ │ ├── slide_track_vmid.png │ │ │ │ ├── slide_track_vtop.png │ │ │ │ ├── scroll_thumb_hleft.png │ │ │ │ ├── scroll_thumb_hright.png │ │ │ │ ├── scroll_track_hleft.png │ │ │ │ ├── scroll_track_hright.png │ │ │ │ ├── slide_track_hright.png │ │ │ │ ├── slide_track_vbottom.png │ │ │ │ ├── scroll_thumb_vbottom.png │ │ │ │ └── scroll_track_vbottom.png │ │ ├── en.lproj │ │ │ ├── localizedStrings.js │ │ │ └── InfoPlist.strings │ │ ├── Icon.png │ │ ├── Default.png │ │ ├── Images │ │ │ ├── back.png │ │ │ ├── front.png │ │ │ ├── play_left.png │ │ │ ├── play_middle.png │ │ │ ├── play_right.png │ │ │ ├── DevelopedWith.png │ │ │ ├── play_left_clicked.png │ │ │ ├── play_right_clicked.png │ │ │ └── play_middle_clicked.png │ │ ├── OpenSans-Bold.ttf │ │ ├── OpenSans-Regular.ttf │ │ ├── widget-impl.js │ │ ├── Info.plist │ │ ├── Parts │ │ │ ├── setup.js │ │ │ ├── Text.js │ │ │ ├── InfoButton.js │ │ │ └── GlassButton.js │ │ └── KeyControl.html │ ├── Icon.png │ ├── .DS_Store │ └── KeyControl.wdgtproj │ │ └── projectInfo.plist ├── C │ ├── .DS_Store │ ├── configure │ ├── kc.rb │ ├── Makefile │ ├── kc.6 │ └── kc-num.c ├── Web Game │ ├── Icon.png │ └── KeyControl.fla └── Konfabulator Widget │ ├── front.psd │ └── KeyControl.widget │ └── Contents │ └── Images │ ├── up.png │ ├── down.png │ ├── play.png │ ├── about.png │ └── front.png ├── .gitignore ├── arrows2 ├── style.css └── index.html ├── LICENSE └── index.html /arrows/Facebook Application/log/server.log: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /arrows/Facebook Application/log/test.log: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /arrows/Konfabulator Widget/Build/emptyfile: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /arrows/Facebook Application/log/development.log: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /arrows/Facebook Application/log/production.log: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /arrows/Facebook Application/public/favicon.ico: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/CHANGELOG.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /akc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/akc.jpg -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/.parsers/.version: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/.parsers/.version: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | **/.DS_Store 3 | arrows/C/akc 4 | original/C/kc 5 | Thumbs.db -------------------------------------------------------------------------------- /arrows2/style.css: -------------------------------------------------------------------------------- 1 | #game { width: 200px; height: 200px; } 2 | #score { font-size: 18px; } -------------------------------------------------------------------------------- /arrows/C/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/C/.DS_Store -------------------------------------------------------------------------------- /original/C/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/C/.DS_Store -------------------------------------------------------------------------------- /arrows/Web Game/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Web Game/Icon.png -------------------------------------------------------------------------------- /original/Web Game/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Web Game/Icon.png -------------------------------------------------------------------------------- /arrows/Web Game/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Web Game/preview.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/Icon.png -------------------------------------------------------------------------------- /arrows/Web Game/images/sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Web Game/images/sprite.png -------------------------------------------------------------------------------- /arrows/Web Game/images/src/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Web Game/images/src/up.png -------------------------------------------------------------------------------- /original/Dashboard Widget/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/Icon.png -------------------------------------------------------------------------------- /original/Web Game/KeyControl.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Web Game/KeyControl.fla -------------------------------------------------------------------------------- /arrows/Konfabulator Widget/front.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Konfabulator Widget/front.psd -------------------------------------------------------------------------------- /arrows/Web Game/images/src/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Web Game/images/src/back.png -------------------------------------------------------------------------------- /arrows/Web Game/images/src/blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Web Game/images/src/blank.png -------------------------------------------------------------------------------- /arrows/Web Game/images/src/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Web Game/images/src/down.png -------------------------------------------------------------------------------- /arrows/Web Game/images/src/front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Web Game/images/src/front.png -------------------------------------------------------------------------------- /arrows/Web Game/images/src/info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Web Game/images/src/info.png -------------------------------------------------------------------------------- /arrows/Web Game/images/src/left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Web Game/images/src/left.png -------------------------------------------------------------------------------- /arrows/Web Game/images/src/right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Web Game/images/src/right.png -------------------------------------------------------------------------------- /arrows/Web Game/images/src/wait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Web Game/images/src/wait.png -------------------------------------------------------------------------------- /original/Dashboard Widget/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/.DS_Store -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/generators/controller/templates/helper.rb: -------------------------------------------------------------------------------- 1 | module <%= class_name %>Helper 2 | end 3 | -------------------------------------------------------------------------------- /arrows/Web Game/fonts/OpenSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Web Game/fonts/OpenSans-Bold.ttf -------------------------------------------------------------------------------- /original/Konfabulator Widget/front.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Konfabulator Widget/front.psd -------------------------------------------------------------------------------- /arrows/C/configure: -------------------------------------------------------------------------------- 1 | echo "To configure, edit Makefile and change PREFIX, BINDIR, and MANDIR as necessary (The defaults may work fine for you)." -------------------------------------------------------------------------------- /original/C/configure: -------------------------------------------------------------------------------- 1 | echo "To configure, edit Makefile and change PREFIX, BINDIR, and MANDIR as necessary (The defaults may work fine for you)." -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/generators/scaffold/templates/helper.rb: -------------------------------------------------------------------------------- 1 | module <%= controller_class_name %>Helper 2 | end 3 | -------------------------------------------------------------------------------- /arrows/Web Game/fonts/OpenSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Web Game/fonts/OpenSans-Regular.ttf -------------------------------------------------------------------------------- /arrows/Facebook Application/script/console: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../config/boot' 3 | require 'commands/console' 4 | -------------------------------------------------------------------------------- /arrows/Facebook Application/script/destroy: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../config/boot' 3 | require 'commands/destroy' 4 | -------------------------------------------------------------------------------- /arrows/Facebook Application/script/plugin: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../config/boot' 3 | require 'commands/plugin' 4 | -------------------------------------------------------------------------------- /arrows/Facebook Application/script/runner: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../config/boot' 3 | require 'commands/runner' 4 | -------------------------------------------------------------------------------- /arrows/Facebook Application/script/server: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../config/boot' 3 | require 'commands/server' 4 | -------------------------------------------------------------------------------- /arrows/Web Game/images/src/front_time_used.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Web Game/images/src/front_time_used.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/en.lproj/localizedStrings.js: -------------------------------------------------------------------------------- 1 | var localizedStrings = new Object; 2 | 3 | localizedStrings["Done"] = "Done"; 4 | -------------------------------------------------------------------------------- /arrows/Facebook Application/script/dbconsole: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../config/boot' 3 | require 'commands/dbconsole' 4 | -------------------------------------------------------------------------------- /arrows/Facebook Application/script/generate: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../config/boot' 3 | require 'commands/generate' 4 | -------------------------------------------------------------------------------- /arrows/Facebook Application/public/images/rails.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Facebook Application/public/images/rails.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/Icon.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/Icon.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/Default.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/Default.png -------------------------------------------------------------------------------- /arrows/Facebook Application/script/process/reaper: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../../config/boot' 3 | require 'commands/process/reaper' 4 | -------------------------------------------------------------------------------- /arrows/Facebook Application/script/process/spawner: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../../config/boot' 3 | require 'commands/process/spawner' 4 | -------------------------------------------------------------------------------- /arrows/Facebook Application/script/process/inspector: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../../config/boot' 3 | require 'commands/process/inspector' 4 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/generators/controller/templates/view.fbml.erb: -------------------------------------------------------------------------------- 1 |

<%= class_name %>#<%= action %>

2 |

Find me in <%= path %>

3 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/generators/controller/templates/view.html.erb: -------------------------------------------------------------------------------- 1 |

<%= class_name %>#<%= action %>

2 |

Find me in <%= path %>

3 | -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/Images/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/Images/back.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/Images/front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/Images/front.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/OpenSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/OpenSans-Bold.ttf -------------------------------------------------------------------------------- /arrows/Facebook Application/script/performance/profiler: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../../config/boot' 3 | require 'commands/performance/profiler' 4 | -------------------------------------------------------------------------------- /arrows/Facebook Application/script/performance/request: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../../config/boot' 3 | require 'commands/performance/request' 4 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/generators/publisher/templates/publisher.rb: -------------------------------------------------------------------------------- 1 | class <%= class_name %>Publisher < Facebooker::Rails::Publisher 2 | 3 | end 4 | -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/OpenSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/OpenSans-Bold.ttf -------------------------------------------------------------------------------- /arrows/Facebook Application/app/helpers/application_helper.rb: -------------------------------------------------------------------------------- 1 | # Methods added to this helper will be available to all templates in the application. 2 | module ApplicationHelper 3 | end 4 | -------------------------------------------------------------------------------- /arrows/Facebook Application/script/performance/benchmarker: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../../config/boot' 3 | require 'commands/performance/benchmarker' 4 | -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/Images/play_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/Images/play_left.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/Images/play_middle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/Images/play_middle.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/Images/play_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/Images/play_right.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/OpenSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/OpenSans-Regular.ttf -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/OpenSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/OpenSans-Regular.ttf -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/Parts/Images/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/Parts/Images/back.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/Images/DevelopedWith.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/Images/DevelopedWith.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/Parts/Images/front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/Parts/Images/front.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/resize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/resize.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/en.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /original/Konfabulator Widget/KeyControl.widget/Contents/Images/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Konfabulator Widget/KeyControl.widget/Contents/Images/up.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/Images/front_time_used.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/Images/front_time_used.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/Parts/Images/play_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/Parts/Images/play_left.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/resize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/resize.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/en.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/Images/play_left_clicked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/Images/play_left_clicked.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/Images/play_right_clicked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/Images/play_right_clicked.png -------------------------------------------------------------------------------- /original/Konfabulator Widget/KeyControl.widget/Contents/Images/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Konfabulator Widget/KeyControl.widget/Contents/Images/down.png -------------------------------------------------------------------------------- /original/Konfabulator Widget/KeyControl.widget/Contents/Images/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Konfabulator Widget/KeyControl.widget/Contents/Images/play.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/Parts/Images/play_middle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/Parts/Images/play_middle.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/Parts/Images/play_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/Parts/Images/play_right.png -------------------------------------------------------------------------------- /arrows/Facebook Application/script/about: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../config/boot' 3 | $LOAD_PATH.unshift "#{RAILTIES_PATH}/builtin/rails_info" 4 | require 'commands/about' -------------------------------------------------------------------------------- /arrows/Konfabulator Widget/ArrowKeyControl.widget/Contents/Images/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Konfabulator Widget/ArrowKeyControl.widget/Contents/Images/down.png -------------------------------------------------------------------------------- /arrows/Konfabulator Widget/ArrowKeyControl.widget/Contents/Images/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Konfabulator Widget/ArrowKeyControl.widget/Contents/Images/play.png -------------------------------------------------------------------------------- /arrows/Konfabulator Widget/ArrowKeyControl.widget/Contents/Images/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Konfabulator Widget/ArrowKeyControl.widget/Contents/Images/up.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/Images/play_middle_clicked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/Images/play_middle_clicked.png -------------------------------------------------------------------------------- /original/Konfabulator Widget/KeyControl.widget/Contents/Images/about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Konfabulator Widget/KeyControl.widget/Contents/Images/about.png -------------------------------------------------------------------------------- /original/Konfabulator Widget/KeyControl.widget/Contents/Images/front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Konfabulator Widget/KeyControl.widget/Contents/Images/front.png -------------------------------------------------------------------------------- /arrows/Konfabulator Widget/ArrowKeyControl.widget/Contents/Images/about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Konfabulator Widget/ArrowKeyControl.widget/Contents/Images/about.png -------------------------------------------------------------------------------- /arrows/Konfabulator Widget/ArrowKeyControl.widget/Contents/Images/front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Konfabulator Widget/ArrowKeyControl.widget/Contents/Images/front.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/Parts/Images/play_left_clicked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/Parts/Images/play_left_clicked.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Icon.png -------------------------------------------------------------------------------- /arrows/Facebook Application/public/javascripts/application.js: -------------------------------------------------------------------------------- 1 | // Place your application-specific JavaScript functions and classes here 2 | // This file is automatically included by javascript_include_tag :defaults 3 | -------------------------------------------------------------------------------- /original/C/kc.rb: -------------------------------------------------------------------------------- 1 | $,=nil;p"\033[12h";cs='0'.upto('9')+'a'.upto'z'; 2 | while(1) do 3 | c = cs[rand(36)] 4 | p c 5 | 6 | b = Time.now 7 | 8 | 9 | 10 | 11 | 12 | end 13 | 14 | p "\033[121" -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/ibutton/black_i.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/ibutton/black_i.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/ibutton/white_i.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/ibutton/white_i.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/Parts/Images/play_middle_clicked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/Parts/Images/play_middle_clicked.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/Parts/Images/play_right_clicked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/Parts/Images/play_right_clicked.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/ibutton/black_i.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/ibutton/black_i.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/ibutton/white_i.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/ibutton/white_i.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Default.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/button/glassbuttonleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/button/glassbuttonleft.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/ibutton/black_rollie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/ibutton/black_rollie.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/ibutton/white_rollie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/ibutton/white_rollie.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/ibutton/black_rollie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/ibutton/black_rollie.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/ibutton/white_rollie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/ibutton/white_rollie.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/button/glassbuttonmiddle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/button/glassbuttonmiddle.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/button/glassbuttonright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/button/glassbuttonright.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/button/glassbuttonleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/button/glassbuttonleft.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/button/glassbuttonmiddle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/button/glassbuttonmiddle.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/button/glassbuttonright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/button/glassbuttonright.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Parts/Images/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Parts/Images/back.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Parts/Images/front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Parts/Images/front.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/button/glassbuttonleftclicked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/button/glassbuttonleftclicked.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/button/glassbuttonleftclicked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/button/glassbuttonleftclicked.png -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/generators/scaffold/templates/layout.fbml.erb: -------------------------------------------------------------------------------- 1 | <%%= stylesheet_link_tag 'facebook_scaffold' %> 2 | <%%= facebook_messages %> 3 | 4 |
5 | <%%= yield %> 6 |
7 | -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_thumb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_thumb.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/button/glassbuttonmiddleclicked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/button/glassbuttonmiddleclicked.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/button/glassbuttonrightclicked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/button/glassbuttonrightclicked.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_thumb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_thumb.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/button/glassbuttonmiddleclicked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/button/glassbuttonmiddleclicked.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/button/glassbuttonrightclicked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/button/glassbuttonrightclicked.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Images/front_time_used.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Images/front_time_used.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Parts/Images/play_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Parts/Images/play_left.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Parts/Images/play_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Parts/Images/play_right.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/en.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Parts/Images/play_middle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Parts/Images/play_middle.png -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/generators/controller/templates/controller.rb: -------------------------------------------------------------------------------- 1 | class <%= class_name %>Controller < ApplicationController 2 | <% for action in actions -%> 3 | def <%= action %> 4 | end 5 | 6 | <% end -%> 7 | end 8 | -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_thumb_hmid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_thumb_hmid.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_thumb_vmid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_thumb_vmid.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_thumb_vtop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_thumb_vtop.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_track_hmid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_track_hmid.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_track_vmid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_track_vmid.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_track_vtop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_track_vtop.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_track_hleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_track_hleft.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_track_hmid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_track_hmid.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_track_vmid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_track_vmid.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_track_vtop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_track_vtop.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_track_hmid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_track_hmid.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_track_vmid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_track_vmid.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_track_vtop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_track_vtop.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_thumb_hleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_thumb_hleft.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_thumb_hright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_thumb_hright.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_track_hleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_track_hleft.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_track_hright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_track_hright.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_track_hright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_track_hright.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_track_vbottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_track_vbottom.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_thumb_hleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_thumb_hleft.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_thumb_hmid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_thumb_hmid.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_thumb_hright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_thumb_hright.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_thumb_vmid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_thumb_vmid.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_thumb_vtop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_thumb_vtop.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_track_hleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_track_hleft.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_track_hmid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_track_hmid.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_track_hright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_track_hright.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_track_vmid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_track_vmid.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_track_vtop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_track_vtop.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_track_hleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_track_hleft.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_track_hright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_track_hright.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_track_vbottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/slide_track_vbottom.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Parts/Images/play_left_clicked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Parts/Images/play_left_clicked.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Parts/Images/play_right_clicked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Parts/Images/play_right_clicked.png -------------------------------------------------------------------------------- /arrows/Facebook Application/doc/README_FOR_APP: -------------------------------------------------------------------------------- 1 | Use this README file to introduce your application and point to useful places in the API for learning more. 2 | Run "rake doc:app" to generate API documentation for your models, controllers, helpers, and libraries. 3 | -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_thumb_vbottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_thumb_vbottom.png -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_track_vbottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/original/Dashboard Widget/KeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_track_vbottom.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_thumb_vbottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_thumb_vbottom.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_track_vbottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/AppleClasses/Images/scroll_track_vbottom.png -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Parts/Images/play_middle_clicked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bloopletech/keycontrol/master/arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Parts/Images/play_middle_clicked.png -------------------------------------------------------------------------------- /arrows/Facebook Application/public/robots.txt: -------------------------------------------------------------------------------- 1 | # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file 2 | # 3 | # To ban all spiders from the entire site uncomment the next two lines: 4 | # User-Agent: * 5 | # Disallow: / 6 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/version.rb: -------------------------------------------------------------------------------- 1 | module Facebooker #:nodoc: 2 | module VERSION #:nodoc: 3 | MAJOR = 0 4 | MINOR = 9 5 | TINY = 9 6 | 7 | STRING = [MAJOR, MINOR, TINY].join('.') 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /arrows/Facebook Application/config/initializers/mime_types.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new mime types for use in respond_to blocks: 4 | # Mime::Type.register "text/richtext", :rtf 5 | # Mime::Type.register_alias "text/html", :iphone 6 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/models/info_section.rb: -------------------------------------------------------------------------------- 1 | module Facebooker 2 | class InfoSection 3 | include Model 4 | attr_accessor :field, :items 5 | 6 | def to_json 7 | {:field => field, :items => items}.to_json 8 | end 9 | end 10 | end -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/models/location.rb: -------------------------------------------------------------------------------- 1 | module Facebooker 2 | ## 3 | # Representation of Location used in all places where a Location is specified. 4 | class Location 5 | include Model 6 | attr_accessor :city, :zip, :country, :state 7 | end 8 | end -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/models/cookie.rb: -------------------------------------------------------------------------------- 1 | require 'facebooker/model' 2 | module Facebooker 3 | 4 | ## 5 | # A simple representation of a cookie. 6 | class Cookie 7 | include Model 8 | attr_accessor :uid, :name, :value, :expires, :path 9 | end 10 | end -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/models/photo.rb: -------------------------------------------------------------------------------- 1 | require 'facebooker/model' 2 | module Facebooker 3 | class Photo 4 | include Model 5 | attr_accessor :pid, :aid, :owner, :title, 6 | :link, :caption, :created, 7 | :src, :src_big, :src_small 8 | end 9 | end -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/models/tag.rb: -------------------------------------------------------------------------------- 1 | require 'facebooker/model' 2 | module Facebooker 3 | class Tag 4 | include Model 5 | attr_accessor :pid, :subject, :xcoord, :ycoord 6 | 7 | def coordinates 8 | [xcoord, ycoord] 9 | end 10 | 11 | end 12 | end -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/widget-impl.js: -------------------------------------------------------------------------------- 1 | var widget = { 2 | preferenceForKey: function() {}, 3 | setPreferenceForKey: function() {}, 4 | openURL: function() {}, 5 | prepareForTransition: function() {}, 6 | performTransition: function() {}, 7 | identifier: 'akc' 8 | }; 9 | 10 | window.widget = widget; -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/widget-impl.js: -------------------------------------------------------------------------------- 1 | var widget = { 2 | preferenceForKey: function() {}, 3 | setPreferenceForKey: function() {}, 4 | openURL: function() {}, 5 | prepareForTransition: function() {}, 6 | performTransition: function() {}, 7 | identifier: 'akc' 8 | }; 9 | 10 | window.widget = widget; -------------------------------------------------------------------------------- /original/C/Makefile: -------------------------------------------------------------------------------- 1 | PREFIX=/usr 2 | BINDIR=$(PREFIX)/local/bin 3 | MANDIR=$(PREFIX)/share/man 4 | 5 | all: 6 | gcc -Wall -pedantic -std=c99 -o kc kc.c 7 | 8 | install: 9 | cp ./kc $(BINDIR)/ 10 | cp ./kc.6 $(MANDIR)/man6/ 11 | 12 | clean: 13 | rm ./kc 14 | 15 | uninstall: 16 | rm $(BINDIR)/kc 17 | rm $(MANDIR)/man6/kc.6 18 | -------------------------------------------------------------------------------- /arrows/C/Makefile: -------------------------------------------------------------------------------- 1 | PREFIX=/usr 2 | BINDIR=$(PREFIX)/local/bin 3 | MANDIR=$(PREFIX)/share/man 4 | 5 | all: 6 | gcc -Wall -pedantic -std=c99 -lm -o akc akc.c 7 | 8 | install: 9 | cp ./akc $(BINDIR)/ 10 | cp ./akc.6 $(MANDIR)/man6/ 11 | 12 | clean: 13 | rm ./akc 14 | 15 | uninstall: 16 | rm $(BINDIR)/akc 17 | rm $(MANDIR)/man6/akc.6 18 | -------------------------------------------------------------------------------- /arrows/Facebook Application/Rakefile: -------------------------------------------------------------------------------- 1 | # Add your own tasks in files placed in lib/tasks ending in .rake, 2 | # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. 3 | 4 | require(File.join(File.dirname(__FILE__), 'config', 'boot')) 5 | 6 | require 'rake' 7 | require 'rake/testtask' 8 | require 'rake/rdoctask' 9 | 10 | require 'tasks/rails' 11 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/models/education_info.rb: -------------------------------------------------------------------------------- 1 | module Facebooker 2 | class EducationInfo 3 | class HighschoolInfo 4 | include Model 5 | attr_accessor :hs1_id, :hs2_id, :grad_year, :hs1_name, :hs2_name 6 | end 7 | 8 | include Model 9 | attr_accessor :concentrations, :name, :year, :degree 10 | end 11 | end -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/models/work_info.rb: -------------------------------------------------------------------------------- 1 | module Facebooker 2 | class WorkInfo 3 | include Model 4 | attr_accessor :end_date, :start_date, :company_name, :description, :position, :location 5 | def location=(location) 6 | @location = location.kind_of?(Hash) ? Location.from_hash(location) : location 7 | end 8 | end 9 | end -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/models/affiliation.rb: -------------------------------------------------------------------------------- 1 | require 'facebooker/model' 2 | module Facebooker 3 | ## 4 | # Represents a user's affiliation, for example, which educational institutions 5 | # the user is associated with. 6 | class Affiliation 7 | include Model 8 | attr_accessor :name, :status, :type, :year, :nid 9 | end 10 | end -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/models/album.rb: -------------------------------------------------------------------------------- 1 | require 'facebooker/model' 2 | module Facebooker 3 | ## 4 | # A simple representation of a photo album. 5 | class Album 6 | include Model 7 | attr_accessor :aid, :cover_pid, :owner, :name, :created, 8 | :modified, :description, :location, :link, :size 9 | 10 | end 11 | end -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/models/info_item.rb: -------------------------------------------------------------------------------- 1 | module Facebooker 2 | class InfoItem 3 | include Model 4 | attr_accessor :label, :image, :description, :link, :sublabel 5 | 6 | def to_json 7 | {:label => label, :image => image, :description => description, :link => link, :sublabel => sublabel}.to_json 8 | end 9 | end 10 | end -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/en.lproj/localizedStrings.js: -------------------------------------------------------------------------------- 1 | /* 2 | This file was generated by Dashcode and is covered by the 3 | license.txt included in the project. You may edit this file, 4 | however it is recommended to first turn off the Dashcode 5 | code generator otherwise the changes will be lost. 6 | */ 7 | var localizedStrings = { 8 | " ": "h", 9 | "Done": "Done" 10 | }; 11 | 12 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/generators/scaffold/templates/view_show.fbml.erb: -------------------------------------------------------------------------------- 1 | <% for attribute in attributes -%> 2 |

3 | <%= attribute.column.human_name %>: 4 | <%%=h @<%= singular_name %>.<%= attribute.name %> %> 5 |

6 | 7 | <% end -%> 8 | 9 | <%%= link_to 'Edit', edit_<%= singular_name %>_path(@<%= singular_name %>) %> | 10 | <%%= link_to 'Back', <%= plural_name %>_path %> 11 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/generators/scaffold/templates/view_show.html.erb: -------------------------------------------------------------------------------- 1 | <% for attribute in attributes -%> 2 |

3 | <%= attribute.column.human_name %>: 4 | <%%=h @<%= singular_name %>.<%= attribute.name %> %> 5 |

6 | 7 | <% end -%> 8 | 9 | <%%= link_to 'Edit', edit_<%= singular_name %>_path(@<%= singular_name %>) %> | 10 | <%%= link_to 'Back', <%= plural_name %>_path %> 11 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/generators/publisher/templates/create_facebook_templates.rb: -------------------------------------------------------------------------------- 1 | class CreateFacebookTemplates < ActiveRecord::Migration 2 | def self.up 3 | create_table :facebook_templates, :force => true do |t| 4 | t.string :bundle_id,:template_name 5 | t.timestamps 6 | end 7 | end 8 | 9 | def self.down 10 | drop_table :facebook_templates 11 | end 12 | end 13 | -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/en.lproj/localizedStrings.js: -------------------------------------------------------------------------------- 1 | /* 2 | This file was generated by Dashcode and is covered by the 3 | license.txt included in the project. You may edit this file, 4 | however it is recommended to first turn off the Dashcode 5 | code generator otherwise the changes will be lost. 6 | */ 7 | var localizedStrings = { 8 | " ": "h", 9 | "Done": "Done" 10 | }; 11 | 12 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/models/friend_list.rb: -------------------------------------------------------------------------------- 1 | require 'facebooker/model' 2 | module Facebooker 3 | ## 4 | # A simple representation of a photo album. 5 | class FriendList 6 | include Model 7 | attr_accessor :flid, :name 8 | 9 | # We need this to be an integer, so do the conversion 10 | def flid=(f) 11 | @flid= ( f.nil? ? nil : f.to_i) 12 | end 13 | end 14 | end -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Parts/datasources.js: -------------------------------------------------------------------------------- 1 | /* 2 | This file was generated by Dashcode and is covered by the 3 | license.txt included in the project. You may edit this file, 4 | however it is recommended to first turn off the Dashcode 5 | code generator otherwise the changes will be lost. 6 | */ 7 | var dashcodeDataSources = { 8 | "dataSource": { "Class": "DC.AjaxController" } 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/generators/controller/templates/functional_test.rb: -------------------------------------------------------------------------------- 1 | require 'test_helper' 2 | require File.dirname(__FILE__)+'/../../vendor/plugins/facebooker/lib/facebooker/rails/test_helpers.rb' 3 | 4 | class <%= class_name %>ControllerTest < ActionController::TestCase 5 | include Facebooker::Rails::TestHelpers 6 | 7 | # Replace this with your real tests. 8 | def test_truth 9 | assert true 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/generators/scaffold/templates/view_new.fbml.erb: -------------------------------------------------------------------------------- 1 |

New <%= singular_name %>

2 | 3 | <%% facebook_form_for(@<%= singular_name %>) do |f| %> 4 | <%%= f.error_messages %> 5 | 6 | <% for attribute in attributes -%> 7 | <%%= f.<%= attribute.field_type %> :<%= attribute.name %> %> 8 | <% end -%> 9 | <%%= f.buttons "Create" %> 10 | <%% end %> 11 | 12 | <%%= link_to 'Back', <%= plural_name %>_path %> 13 | -------------------------------------------------------------------------------- /arrows/Facebook Application/config/initializers/inflections.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new inflection rules using the following format 4 | # (all these examples are active by default): 5 | # ActiveSupport::Inflector.inflections do |inflect| 6 | # inflect.plural /^(ox)$/i, '\1en' 7 | # inflect.singular /^(ox)en/i, '\1' 8 | # inflect.irregular 'person', 'people' 9 | # inflect.uncountable %w( fish sheep ) 10 | # end 11 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/generators/scaffold/templates/view_edit.fbml.erb: -------------------------------------------------------------------------------- 1 |

Editing <%= singular_name %>

2 | 3 | <%% facebook_form_for(@<%= singular_name %>) do |f| %> 4 | <%%= f.error_messages %> 5 | 6 | <% for attribute in attributes -%> 7 | <%%= f.<%= attribute.field_type %> :<%= attribute.name %> %> 8 | <% end -%> 9 | <%%= f.buttons "Update" %> 10 | <%% end %> 11 | 12 | <%%= link_to 'Show', @<%= singular_name %> %> | 13 | <%%= link_to 'Back', <%= plural_name %>_path %> 14 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/rails/facebook_pretty_errors.rb: -------------------------------------------------------------------------------- 1 | if RAILS_ENV=="development" 2 | class ActionController::Base 3 | def rescues_path_with_facebooker(template_name) 4 | t="#{RAILS_ROOT}/vendor/plugins/facebooker/templates/#{template_name}.erb" 5 | File.exist?(t) ? t : rescues_path_without_facebooker(template_name) 6 | end 7 | 8 | alias_method_chain :rescues_path,:facebooker 9 | 10 | def response_code_for_rescue(exception) 11 | 200 12 | end 13 | end 14 | end -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/generators/scaffold/templates/view_new.html.erb: -------------------------------------------------------------------------------- 1 |

New <%= singular_name %>

2 | 3 | <%% form_for(@<%= singular_name %>) do |f| %> 4 | <%%= f.error_messages %> 5 | 6 | <% for attribute in attributes -%> 7 |

8 | <%%= f.label :<%= attribute.name %> %>
9 | <%%= f.<%= attribute.field_type %> :<%= attribute.name %> %> 10 |

11 | <% end -%> 12 |

13 | <%%= f.submit "Create" %> 14 |

15 | <%% end %> 16 | 17 | <%%= link_to 'Back', <%= plural_name %>_path %> 18 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/install.rb: -------------------------------------------------------------------------------- 1 | require 'fileutils' 2 | require 'rubygems' 3 | facebook_config = File.join(RAILS_ROOT,"config","facebooker.yml") 4 | facebook_js = File.join(RAILS_ROOT,"public","javascripts",'facebooker.js') 5 | FileUtils.cp File.join(File.dirname(__FILE__) , 'facebooker.yml.tpl'), facebook_config unless File.exist?(facebook_config) 6 | FileUtils.cp File.join(File.dirname(__FILE__) , 'javascripts','facebooker.js'), facebook_js unless File.exist?(facebook_js) 7 | puts IO.read(File.join(File.dirname(__FILE__), 'README')) 8 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/History.txt: -------------------------------------------------------------------------------- 1 | === x.x.x / 2008-xx-xx 2 | 3 | * fixed typo in set app properties parser [Andrew Grim, shane] 4 | * Removed actor_id param from templatized feed [shane] 5 | * Added admin.get_allocation [shane] 6 | * Added data.get_cookies and data.set_cookie [shane] 7 | * Added admin.get_app_properties and admin.set_app_properties [shane] 8 | 9 | === 0.9.9 / 2008-09-08 10 | 11 | * Re-package as gem after reworking for new API 12 | 13 | 14 | === 0.9.5 / 2008-02-13 15 | 16 | * Next release of documentation 17 | -------------------------------------------------------------------------------- /arrows/Facebook Application/public/dispatch.cgi: -------------------------------------------------------------------------------- 1 | #!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby 2 | 3 | require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT) 4 | 5 | # If you're using RubyGems and mod_ruby, this require should be changed to an absolute path one, like: 6 | # "/usr/local/lib/ruby/gems/1.8/gems/rails-0.8.0/lib/dispatcher" -- otherwise performance is severely impaired 7 | require "dispatcher" 8 | 9 | ADDITIONAL_LOAD_PATHS.reverse.each { |dir| $:.unshift(dir) if File.directory?(dir) } if defined?(Apache::RubyRun) 10 | Dispatcher.dispatch -------------------------------------------------------------------------------- /arrows/Facebook Application/public/dispatch.rb: -------------------------------------------------------------------------------- 1 | #!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby 2 | 3 | require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT) 4 | 5 | # If you're using RubyGems and mod_ruby, this require should be changed to an absolute path one, like: 6 | # "/usr/local/lib/ruby/gems/1.8/gems/rails-0.8.0/lib/dispatcher" -- otherwise performance is severely impaired 7 | require "dispatcher" 8 | 9 | ADDITIONAL_LOAD_PATHS.reverse.each { |dir| $:.unshift(dir) if File.directory?(dir) } if defined?(Apache::RubyRun) 10 | Dispatcher.dispatch -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/generators/scaffold/templates/view_edit.html.erb: -------------------------------------------------------------------------------- 1 |

Editing <%= singular_name %>

2 | 3 | <%% form_for(@<%= singular_name %>) do |f| %> 4 | <%%= f.error_messages %> 5 | 6 | <% for attribute in attributes -%> 7 |

8 | <%%= f.label :<%= attribute.name %> %>
9 | <%%= f.<%= attribute.field_type %> :<%= attribute.name %> %> 10 |

11 | <% end -%> 12 |

13 | <%%= f.submit "Update" %> 14 |

15 | <%% end %> 16 | 17 | <%%= link_to 'Show', @<%= singular_name %> %> | 18 | <%%= link_to 'Back', <%= plural_name %>_path %> 19 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/templates/layout.erb: -------------------------------------------------------------------------------- 1 | 2 | 21 | 22 | <%= @contents %> 23 | 24 | -------------------------------------------------------------------------------- /arrows/Facebook Application/config/database.yml: -------------------------------------------------------------------------------- 1 | # SQLite version 3.x 2 | # gem install sqlite3-ruby (not necessary on OS X Leopard) 3 | development: 4 | adapter: sqlite3 5 | database: db/development.sqlite3 6 | timeout: 5000 7 | 8 | # Warning: The database defined as "test" will be erased and 9 | # re-generated from your development database when you run "rake". 10 | # Do not set this db to the same as development or production. 11 | test: 12 | adapter: sqlite3 13 | database: db/test.sqlite3 14 | timeout: 5000 15 | 16 | production: 17 | adapter: sqlite3 18 | database: db/production.sqlite3 19 | timeout: 5000 20 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/generators/scaffold/templates/layout.html.erb: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | <%= controller_class_name %>: <%%= controller.action_name %> 8 | <%%= stylesheet_link_tag 'scaffold' %> 9 | 10 | 11 | 12 |

<%%= flash[:notice] %>

13 | 14 | <%%= yield %> 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/test/event_test.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/test_helper.rb' 2 | 3 | class EventTest< Test::Unit::TestCase 4 | def test_attendance_will_query_for_event_when_asked_for_full_event_object 5 | session = flexmock("a session object") 6 | eid = 123 7 | attendance = Facebooker::Event::Attendance.new 8 | attendance.eid = eid 9 | attendance.session = session 10 | event = Facebooker::Event.new 11 | event.eid = eid 12 | session.should_receive(:post).once.with('facebook.events.get', :eids => [eid]).and_return([{:eid => eid}]) 13 | assert_equal(123, attendance.event.eid) 14 | end 15 | end -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/examples/desktop_login.rb: -------------------------------------------------------------------------------- 1 | $: << File.join(File.dirname(__FILE__), "..", 'lib') 2 | require 'facebooker' 3 | load "~/.facebooker" rescue fail("You'll need to specify API_KEY and SECRET_KEY to run this example. One way to do that would be to put them in ~/.facebooker") 4 | session = Facebooker::Session::Desktop.create(API_KEY, SECRET_KEY) 5 | puts session.login_url 6 | gets 7 | 8 | session.user.friends!.each do |user| 9 | puts "#{user.id}:#{user.name}" 10 | end 11 | # This time all the data is there because friends! has already retrieved it. 12 | session.user.friends.each do |user| 13 | puts "#{user.id}:#{user.name}" 14 | end -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/tasks/facebooker.rake: -------------------------------------------------------------------------------- 1 | require 'fileutils' 2 | 3 | namespace :facebooker do 4 | 5 | desc "Create a basic facebooker.yml configuration file" 6 | task :setup => :environment do 7 | facebook_config = File.join(RAILS_ROOT,"config","facebooker.yml") 8 | unless File.exist?(facebook_config) 9 | FileUtils.cp File.join(RAILS_ROOT,"vendor", "plugins", "facebooker", "facebooker.yml.tpl"), facebook_config 10 | puts "Configuration created in #{RAILS_ROOT}/config/facebooker.yml" 11 | else 12 | puts "#{RAILS_ROOT}/config/facebooker.yml already exists" 13 | end 14 | end 15 | 16 | end 17 | 18 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/TODO.txt: -------------------------------------------------------------------------------- 1 | [ ] Remove facebook prefix from resource routes, making them worth with facebook and regular Rails controllers 2 | [ ] Use fb_sig_request_method to make facebook routes more Rails-like 3 | [ ] Refactor facebook form builder so erbout won't be deeply nested, causing erubis to break 4 | [ ] Support missing parameters on methods---most notably authentication-related parameters such as next and canvas 5 | [ ] Finish FQL Querying 6 | [ ] Refactor FQL Querying 7 | [ ] Transform incoming data into appropriate classes (Integers, Dates, etc.) 8 | 9 | [x] Specify fields wanted when getting user info (defaults to all now) [shane] 10 | [x] Create facebooker.yml config file and merge with tunnel.yml [shane] 11 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/models/notifications.rb: -------------------------------------------------------------------------------- 1 | module Facebooker 2 | class Notifications 3 | include Model 4 | attr_accessor :messages, :group_invites, :pokes, :friend_requests, :event_invites, :shares 5 | 6 | [:Messages, :Pokes, :Shares].each do |notification_type| 7 | const_set(notification_type, Class.new do 8 | include Model 9 | attr_accessor :unread, :most_recent 10 | end) 11 | attribute_name = "#{notification_type.to_s.downcase}" 12 | define_method("#{attribute_name}=") do |value| 13 | instance_variable_set("@#{attribute_name}", value.kind_of?(Hash) ? Notifications.const_get(notification_type).from_hash(value) : value) 14 | end 15 | end 16 | end 17 | end -------------------------------------------------------------------------------- /arrows2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | AKC2 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 |
15 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/generators/publisher/publisher_generator.rb: -------------------------------------------------------------------------------- 1 | class PublisherGenerator < Rails::Generator::NamedBase 2 | def manifest 3 | record do |m| 4 | m.directory "app/models" 5 | m.template "publisher.rb", "app/models/#{file_name}_publisher.rb" 6 | migration_file_name="create_facebook_templates" 7 | # unless m.migration_exists?(migration_file_name) 8 | # THis should work, but it doesn't. So we re-implement it instead 9 | if Dir.glob(File.join(RAILS_ROOT,"db","migrate","[0-9]*_*.rb")).grep(/[0-9]+_create_facebook_templates.rb$/).blank? 10 | m.migration_template "create_facebook_templates.rb", "db/migrate", :migration_file_name=>migration_file_name 11 | end 12 | end 13 | end 14 | 15 | 16 | end -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/rails/facebook_asset_path.rb: -------------------------------------------------------------------------------- 1 | # module ActionView 2 | # module Helpers 3 | # module AssetTagHelper 4 | # def compute_public_path_with_facebooker(*args) 5 | # public_path=compute_public_path_without_facebooker(*args) 6 | # if public_path.starts_with?(ActionController::Base.asset_host) 7 | # str=ActionController::Base.asset_host 8 | # str += "/" unless str.ends_with?("/") 9 | # public_path.gsub(/#{Regexp.escape(ActionController::Base.asset_host)}#{@controller.request.relative_url_root}\//,str) 10 | # else 11 | # public_path 12 | # end 13 | # end 14 | # 15 | # alias_method_chain :compute_public_path, :facebooker 16 | # end 17 | # end 18 | # end -------------------------------------------------------------------------------- /arrows/Facebook Application/config/initializers/new_rails_defaults.rb: -------------------------------------------------------------------------------- 1 | # These settings change the behavior of Rails 2 apps and will be defaults 2 | # for Rails 3. You can remove this initializer when Rails 3 is released. 3 | 4 | if defined?(ActiveRecord) 5 | # Include Active Record class name as root for JSON serialized output. 6 | ActiveRecord::Base.include_root_in_json = true 7 | 8 | # Store the full class name (including module namespace) in STI type column. 9 | ActiveRecord::Base.store_full_sti_class = true 10 | end 11 | 12 | # Use ISO 8601 format for JSON serialized times and dates. 13 | ActiveSupport.use_standard_json_time_format = true 14 | 15 | # Don't escape HTML entities in JSON, leave that for the #json_escape helper. 16 | # if you're including raw json in an HTML page. 17 | ActiveSupport.escape_html_entities_in_json = false -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/rails/utilities.rb: -------------------------------------------------------------------------------- 1 | module Facebooker 2 | module Rails 3 | class Utilities 4 | class << self 5 | def refresh_all_images(session) 6 | Dir.glob(File.join(RAILS_ROOT,"public","images","*.{png,jpg,gif}")).each do |img| 7 | refresh_image(session,img) 8 | end 9 | end 10 | 11 | def refresh_image(session,full_path) 12 | basename=File.basename(full_path) 13 | base_path=ActionController::Base.asset_host 14 | base_path += "/" unless base_path.ends_with?("/") 15 | image_path=base_path+"images/#{basename}" 16 | puts "refreshing: #{image_path}" 17 | session.server_cache.refresh_img_src(image_path) 18 | end 19 | end 20 | end 21 | end 22 | end -------------------------------------------------------------------------------- /arrows/Facebook Application/app/controllers/application.rb: -------------------------------------------------------------------------------- 1 | # Filters added to this controller apply to all controllers in the application. 2 | # Likewise, all the methods added will be available for all controllers. 3 | 4 | class ApplicationController < ActionController::Base 5 | helper :all # include all helpers, all the time 6 | 7 | # See ActionController::RequestForgeryProtection for details 8 | # Uncomment the :secret if you're not using the cookie session store 9 | protect_from_forgery # :secret => '185552520df057dcf211528f689f4c2e' 10 | 11 | # See ActionController::Base for details 12 | # Uncomment this to filter the contents of submitted sensitive data parameters 13 | # from your application log (in this case, all fields with names like "password"). 14 | # filter_parameter_logging :password 15 | 16 | set_facebook_session 17 | end 18 | -------------------------------------------------------------------------------- /arrows/Facebook Application/config/environments/development.rb: -------------------------------------------------------------------------------- 1 | # Settings specified here will take precedence over those in config/environment.rb 2 | 3 | # In the development environment your application's code is reloaded on 4 | # every request. This slows down response time but is perfect for development 5 | # since you don't have to restart the webserver when you make code changes. 6 | config.cache_classes = false 7 | 8 | # Log error messages when you accidentally call methods on nil. 9 | config.whiny_nils = true 10 | 11 | # Show full error reports and disable caching 12 | config.action_controller.consider_all_requests_local = true 13 | config.action_view.debug_rjs = true 14 | config.action_controller.perform_caching = false 15 | 16 | # Don't care if the mailer can't send 17 | config.action_mailer.raise_delivery_errors = false -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/generators/scaffold/templates/view_index.fbml.erb: -------------------------------------------------------------------------------- 1 |

Listing <%= plural_name %>

2 | 3 | 4 | 5 | <% for attribute in attributes -%> 6 | 7 | <% end -%> 8 | 9 | 10 | <%% for <%= singular_name %> in @<%= plural_name %> %> 11 | 12 | <% for attribute in attributes -%> 13 | 14 | <% end -%> 15 | 16 | 17 | 18 | 19 | <%% end %> 20 |
<%= attribute.column.human_name %>
<%%=h <%= singular_name %>.<%= attribute.name %> %><%%= link_to 'Show', <%= singular_name %> %><%%= link_to 'Edit', edit_<%= singular_name %>_path(<%= singular_name %>) %><%%= button_to 'Destroy', <%= singular_name %>, :method => :delete %>
21 | 22 |
23 | 24 | <%%= link_to 'New <%= singular_name %>', new_<%= singular_name %>_path %> 25 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/service.rb: -------------------------------------------------------------------------------- 1 | require 'net/http' 2 | require 'facebooker/parser' 3 | module Facebooker 4 | class Service 5 | def initialize(api_base, api_path, api_key) 6 | @api_base = api_base 7 | @api_path = api_path 8 | @api_key = api_key 9 | end 10 | 11 | # TODO: support ssl 12 | def post(params) 13 | attempt = 0 14 | Parser.parse(params[:method], Net::HTTP.post_form(url, params)) 15 | rescue Errno::ECONNRESET, EOFError 16 | if attempt == 0 17 | attempt += 1 18 | retry 19 | end 20 | end 21 | 22 | def post_file(params) 23 | Parser.parse(params[:method], Net::HTTP.post_multipart_form(url, params)) 24 | end 25 | 26 | private 27 | def url 28 | URI.parse('http://'+ @api_base + @api_path) 29 | end 30 | end 31 | end -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/generators/scaffold/templates/view_index.html.erb: -------------------------------------------------------------------------------- 1 |

Listing <%= plural_name %>

2 | 3 | 4 | 5 | <% for attribute in attributes -%> 6 | 7 | <% end -%> 8 | 9 | 10 | <%% for <%= singular_name %> in @<%= plural_name %> %> 11 | 12 | <% for attribute in attributes -%> 13 | 14 | <% end -%> 15 | 16 | 17 | 18 | 19 | <%% end %> 20 |
<%= attribute.column.human_name %>
<%%=h <%= singular_name %>.<%= attribute.name %> %><%%= link_to 'Show', <%= singular_name %> %><%%= link_to 'Edit', edit_<%= singular_name %>_path(<%= singular_name %>) %><%%= link_to 'Destroy', <%= singular_name %>, :confirm => 'Are you sure?', :method => :delete %>
21 | 22 |
23 | 24 | <%%= link_to 'New <%= singular_name %>', new_<%= singular_name %>_path %> 25 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/server_cache.rb: -------------------------------------------------------------------------------- 1 | module Facebooker 2 | class ServerCache 3 | def initialize(session) 4 | @session = session 5 | end 6 | 7 | # 8 | # Stores an FBML reference on the server for use 9 | # across multiple users in FBML 10 | def set_ref_handle(handle_name, fbml_source) 11 | (@session.post 'facebook.fbml.setRefHandle', {:handle => handle_name, :fbml => fbml_source},false) == '1' 12 | end 13 | 14 | ## 15 | # Fetches and re-caches the content stored at the given URL, for use in a fb:ref FBML tag. 16 | def refresh_ref_url(url) 17 | (@session.post 'facebook.fbml.refreshRefUrl', {:url => url},false) == '1' 18 | end 19 | 20 | def refresh_img_src(url) 21 | (@session.post 'facebook.fbml.refreshImgSrc', {:url => url},false) == '1' 22 | end 23 | end 24 | end -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/rails/facebook_request_fix.rb: -------------------------------------------------------------------------------- 1 | module ::ActionController 2 | class AbstractRequest 3 | def request_method_with_facebooker 4 | if parameters[:fb_sig_request_method]=="GET" and parameters[:_method].blank? 5 | parameters[:_method]="GET" 6 | end 7 | request_method_without_facebooker 8 | end 9 | 10 | if new.methods.include?("request_method") 11 | alias_method_chain :request_method, :facebooker 12 | end 13 | 14 | def xml_http_request_with_facebooker? 15 | parameters["fb_sig_is_mockajax"] == "1" || 16 | parameters["fb_sig_is_ajax"] == "1" || 17 | xml_http_request_without_facebooker? 18 | end 19 | alias_method_chain :xml_http_request?, :facebooker 20 | # we have to re-alias xhr? since it was pointing to the old method 21 | alias xhr? :xml_http_request? 22 | 23 | end 24 | end -------------------------------------------------------------------------------- /arrows/Rakefile: -------------------------------------------------------------------------------- 1 | task :default => [:check_scoring_versions] 2 | 3 | task :check_scoring_versions do 4 | last_version = 0 5 | files = { './C/akc.c' => 0, './Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/KeyControl.js' => 0, './Konfabulator Widget/ArrowKeyControl.widget/Contents/ArrowKeyControl.kon' => 0 } 6 | files.each_pair do |fn, ver| 7 | fnr = File.expand_path(fn) 8 | unless File.exists?(fnr) 9 | puts "Missing file #{fn}" 10 | next 11 | end 12 | 13 | File.read(fnr) =~ /scoring version (\d+)$/ 14 | 15 | unless $1 16 | puts "File #{fn} missing scoring version" 17 | next 18 | end 19 | 20 | files[fn] = $1.to_i 21 | end 22 | 23 | current_ver_fn, current_ver_ver = files.sort { |(ak, av), (bk, bv)| bv <=> av }.first 24 | puts "Current version is #{current_ver_ver}" 25 | files.delete_if { |k, v| v == current_ver_ver || v == 0 } 26 | files.each_pair do |k, v| 27 | puts "File #{k} has wrong version #{v}" 28 | end 29 | end 30 | -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AllowNetworkAccess 6 | 7 | CFBundleDevelopmentRegion 8 | English 9 | CFBundleDisplayName 10 | KeyControl 11 | CFBundleIdentifier 12 | net.bloople.widget.KeyControl 13 | CFBundleName 14 | KeyControl 15 | CFBundleShortVersionString 16 | 1.1 17 | CFBundleVersion 18 | 1.1 19 | CloseBoxInsetX 20 | 15 21 | CloseBoxInsetY 22 | 15 23 | Height 24 | 147 25 | MainHTML 26 | KeyControl.html 27 | Width 28 | 180 29 | 30 | 31 | -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AllowNetworkAccess 6 | 7 | CFBundleDevelopmentRegion 8 | English 9 | CFBundleDisplayName 10 | ArrowKeyControl 11 | CFBundleIdentifier 12 | net.bloople.widget.ArrowKeyControl 13 | CFBundleName 14 | ArrowKeyControl 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleVersion 18 | 1.0 19 | CloseBoxInsetX 20 | 15 21 | CloseBoxInsetY 22 | 15 23 | Height 24 | 180 25 | MainHTML 26 | ArrowKeyControl.html 27 | Width 28 | 200 29 | 30 | 31 | -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AllowNetworkAccess 6 | 7 | CFBundleDevelopmentRegion 8 | English 9 | CFBundleDisplayName 10 | KeyControl 11 | CFBundleIdentifier 12 | net.bloople.widget.ArrowKeyControl 13 | CFBundleName 14 | KeyControl 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleVersion 18 | 1.0 19 | CloseBoxInsetX 20 | 15 21 | CloseBoxInsetY 22 | 15 23 | Height 24 | 180 25 | MainHTML 26 | ArrowKeyControl.html 27 | Width 28 | 200 29 | 30 | 31 | -------------------------------------------------------------------------------- /arrows/Facebook Application/public/dispatch.fcgi: -------------------------------------------------------------------------------- 1 | #!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby 2 | # 3 | # You may specify the path to the FastCGI crash log (a log of unhandled 4 | # exceptions which forced the FastCGI instance to exit, great for debugging) 5 | # and the number of requests to process before running garbage collection. 6 | # 7 | # By default, the FastCGI crash log is RAILS_ROOT/log/fastcgi.crash.log 8 | # and the GC period is nil (turned off). A reasonable number of requests 9 | # could range from 10-100 depending on the memory footprint of your app. 10 | # 11 | # Example: 12 | # # Default log path, normal GC behavior. 13 | # RailsFCGIHandler.process! 14 | # 15 | # # Default log path, 50 requests between GC. 16 | # RailsFCGIHandler.process! nil, 50 17 | # 18 | # # Custom log path, normal GC behavior. 19 | # RailsFCGIHandler.process! '/var/log/myapp_fcgi_crash.log' 20 | # 21 | require File.dirname(__FILE__) + "/../config/environment" 22 | require 'fcgi_handler' 23 | 24 | RailsFCGIHandler.process! 25 | -------------------------------------------------------------------------------- /arrows/Facebook Application/config/environments/production.rb: -------------------------------------------------------------------------------- 1 | # Settings specified here will take precedence over those in config/environment.rb 2 | 3 | # The production environment is meant for finished, "live" apps. 4 | # Code is not reloaded between requests 5 | config.cache_classes = true 6 | 7 | # Use a different logger for distributed setups 8 | # config.logger = SyslogLogger.new 9 | 10 | # Full error reports are disabled and caching is turned on 11 | config.action_controller.consider_all_requests_local = false 12 | config.action_controller.perform_caching = true 13 | config.action_view.cache_template_loading = true 14 | 15 | # Use a different cache store in production 16 | # config.cache_store = :mem_cache_store 17 | 18 | # Enable serving of images, stylesheets, and javascripts from an asset server 19 | # config.action_controller.asset_host = "http://assets.example.com" 20 | 21 | # Disable delivery errors, bad email addresses will be ignored 22 | # config.action_mailer.raise_delivery_errors = false 23 | -------------------------------------------------------------------------------- /arrows/Facebook Application/public/422.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | The change you wanted was rejected (422) 9 | 21 | 22 | 23 | 24 | 25 |
26 |

The change you wanted was rejected.

27 |

Maybe you tried to change something you didn't have access to.

28 |
29 | 30 | -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/Parts/setup.js: -------------------------------------------------------------------------------- 1 | // This file was generated by Dashcode from Apple Inc. 2 | // DO NOT EDIT - This file is maintained automatically by Dashcode. 3 | function setupParts() { 4 | if (setupParts.called) return; 5 | setupParts.called = true; 6 | CreateInfoButton('info', { frontID: 'front', foregroundStyle: 'white', backgroundStyle: 'black', onclick: 'showBack' }); 7 | CreateGlassButton('done', { text: 'Done', onclick: 'showFront' }); 8 | CreateText('score', { text: 'Have Fun!' }); 9 | CreateText('biginfo', { text: 'Game Over' }); 10 | CreateText('up', { text: unescape('%u2B06') }); 11 | CreateText('down', { text: unescape('%u2B07') }); 12 | CreateGlassButton('glassbutton', { onclick: 'gotoSite', text: 'Website' }); 13 | CreateText('userDesc', { text: 'User:' }); 14 | CreateText('passDesc', { text: 'Pass:' }); 15 | CreateButton('play', { text: 'Play', onclick: 'playGame', rightImageWidth: 5, leftImageWidth: 5 }); 16 | CreateText('out', { }); 17 | } 18 | window.addEventListener('load', setupParts, false); 19 | -------------------------------------------------------------------------------- /arrows/Facebook Application/public/404.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | The page you were looking for doesn't exist (404) 9 | 21 | 22 | 23 | 24 | 25 |
26 |

The page you were looking for doesn't exist.

27 |

You may have mistyped the address or the page may have moved.

28 |
29 | 30 | -------------------------------------------------------------------------------- /arrows/Facebook Application/public/500.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | We're sorry, but something went wrong (500) 9 | 21 | 22 | 23 | 24 | 25 |
26 |

We're sorry, but something went wrong.

27 |

We've been notified about this issue and we'll take a look at it shortly.

28 |
29 | 30 | -------------------------------------------------------------------------------- /arrows/Facebook Application/config/environments/test.rb: -------------------------------------------------------------------------------- 1 | # Settings specified here will take precedence over those in config/environment.rb 2 | 3 | # The test environment is used exclusively to run your application's 4 | # test suite. You never need to work with it otherwise. Remember that 5 | # your test database is "scratch space" for the test suite and is wiped 6 | # and recreated between test runs. Don't rely on the data there! 7 | config.cache_classes = true 8 | 9 | # Log error messages when you accidentally call methods on nil. 10 | config.whiny_nils = true 11 | 12 | # Show full error reports and disable caching 13 | config.action_controller.consider_all_requests_local = true 14 | config.action_controller.perform_caching = false 15 | 16 | # Disable request forgery protection in test environment 17 | config.action_controller.allow_forgery_protection = false 18 | 19 | # Tell Action Mailer not to deliver emails to the real world. 20 | # The :test delivery method accumulates sent emails in the 21 | # ActionMailer::Base.deliveries array. 22 | config.action_mailer.delivery_method = :test 23 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/models/event.rb: -------------------------------------------------------------------------------- 1 | require 'facebooker/model' 2 | module Facebooker 3 | class Event 4 | 5 | ## 6 | # The relationship between a Facebook user and an Event to which he or she has been 7 | # invited and may or may not be attending (based on #rsvp_status) 8 | class Attendance 9 | include Model 10 | attr_accessor :eid, :uid, :rsvp_status 11 | 12 | ## 13 | # Get the full, populated Event object which this Attendance is associated with. 14 | # First access will query the Facebook API (facebook.events.get). Subsequent 15 | # calls are retrieved from in-memory cache. 16 | def event 17 | @event ||= Event.from_hash(session.post('facebook.events.get', :eids => [eid]).first) 18 | end 19 | 20 | #TODO: implement user() method 21 | end 22 | 23 | include Model 24 | attr_accessor :eid, :pic, :pic_small, :pic_big, :name, :creator, :update_time, :description, :tagline, :venue, :host, :event_type, :nid, :location, :end_time, :start_time, :event_subtype 25 | end 26 | end -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/models/page.rb: -------------------------------------------------------------------------------- 1 | require 'facebooker/model' 2 | module Facebooker 3 | class Page 4 | 5 | class Genre 6 | include Model 7 | FIELDS = [ :dance, :party, :relax, :talk, :think, :workout, :sing, :intimate, :raunchy, :headphones ] 8 | attr_accessor *FIELDS 9 | 10 | def initialize(*args) 11 | super 12 | 13 | # convert '1'/'0' to true/false 14 | FIELDS.each do |field| 15 | self.send("#{field}=", self.send(field) == '1') 16 | end 17 | end 18 | end 19 | 20 | include Model 21 | attr_accessor :page_id, :name, :pic_small, :pic_big, :pic_square, :pic_large, :type, :type, :website, :location, :hours, :band_members, :bio, :hometown, :genre, :record_label, :influences, :has_added_app, :founded, :company_overview, :mission, :products, :release_date, :starring, :written_by, :directed_by, :produced_by, :studio, :awards, :plot_outline, :network, :season, :schedule 22 | 23 | def genre=(value) 24 | @genre = value.kind_of?(Hash) ? Genre.from_hash(value) : value 25 | end 26 | end 27 | end 28 | -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Parts/InfoButton.js: -------------------------------------------------------------------------------- 1 | /* 2 | This file was generated by Dashcode and is covered by the 3 | license.txt included in the project. You may edit this file, 4 | however it is recommended to first turn off the Dashcode 5 | code generator otherwise the changes will be lost. 6 | */ 7 | 8 | function CreateInfoButton(elementOrID, spec) 9 | { 10 | var flipElement = elementOrID; 11 | if (elementOrID.nodeType != Node.ELEMENT_NODE) { 12 | flipElement = document.getElementById(elementOrID); 13 | } 14 | if (!flipElement.loaded) { 15 | flipElement.loaded = true; 16 | while (flipElement.firstChild) { 17 | flipElement.removeChild(flipElement.firstChild); 18 | } 19 | 20 | var onclick = spec.onclick || null; 21 | try { onclick = eval(onclick); } catch (e) { onclick = null; } 22 | 23 | flipElement.object = new AppleInfoButton(flipElement, document.getElementById(spec.frontID), spec.foregroundStyle, spec.backgroundStyle, onclick); 24 | flipElement.object.element = flipElement; 25 | } 26 | 27 | return flipElement.object; 28 | } 29 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/test/fixtures/multipart_post_body_with_only_parameters.txt: -------------------------------------------------------------------------------- 1 | --MichaelNiessnerIsSuperDuperAwesome 2 | Content-Disposition: form-data; name="aid" 3 | 4 | 940915667462717 5 | --MichaelNiessnerIsSuperDuperAwesome 6 | Content-Disposition: form-data; name="api_key" 7 | 8 | 77a52842357422fadd912a2600e6e53c 9 | --MichaelNiessnerIsSuperDuperAwesome 10 | Content-Disposition: form-data; name="call_id" 11 | 12 | 1172623588.023010 13 | --MichaelNiessnerIsSuperDuperAwesome 14 | Content-Disposition: form-data; name="caption" 15 | 16 | Under the sunset 17 | --MichaelNiessnerIsSuperDuperAwesome 18 | Content-Disposition: form-data; name="method" 19 | 20 | facebook.photos.upload 21 | --MichaelNiessnerIsSuperDuperAwesome 22 | Content-Disposition: form-data; name="session_key" 23 | 24 | 489727d0ab2efc6e8003018c-i2LLkn8BDb2s. 25 | --MichaelNiessnerIsSuperDuperAwesome 26 | Content-Disposition: form-data; name="sig" 27 | 28 | dfa724b8a5cd97d9df4baf2b60d3484c 29 | --MichaelNiessnerIsSuperDuperAwesome 30 | Content-Disposition: form-data; name="v" 31 | 32 | 1.0 33 | --MichaelNiessnerIsSuperDuperAwesome-- 34 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2008-2009 Brenton Fletcher (http://i.bloople.net i@bloople.net) 2 | 3 | Permission is hereby granted, free of charge, to any person 4 | obtaining a copy of this software and associated documentation 5 | files (the "Software"), to deal in the Software without 6 | restriction, including without limitation the rights to use, 7 | copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the 9 | Software is furnished to do so, subject to the following 10 | conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/admin.rb: -------------------------------------------------------------------------------- 1 | module Facebooker 2 | class Admin 3 | def initialize(session) 4 | @session = session 5 | end 6 | 7 | # ** BETA *** 8 | # +properties+: Hash of properties you want to set 9 | def set_app_properties(properties) 10 | properties = properties.respond_to?(:to_json) ? properties.to_json : properties 11 | (@session.post 'facebook.admin.setAppProperties', :properties => properties) == '1' 12 | end 13 | 14 | # ** BETA *** 15 | # +properties+: Hash of properties you want to view. 16 | def get_app_properties(*properties) 17 | json = @session.post('facebook.admin.getAppProperties', :properties => properties.to_json) 18 | hash = JSON.parse(CGI.unescapeHTML(json)) 19 | @properties = ApplicationProperties.from_hash(hash) 20 | end 21 | 22 | # Integration points include.. 23 | # :notifications_per_day, :requests_per_day, :emails_per_day, :email_disable_message_location 24 | def get_allocation(integration_point) 25 | @session.post('facebook.admin.getAllocation', :integration_point_name => integration_point.to_s).to_i 26 | end 27 | end 28 | end 29 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/COPYING: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2007 Chad Fowler 3 | # 4 | # Permission is hereby granted, free of charge, to any person obtaining a copy of 5 | # this software and associated documentation files (the "Software"), to deal in the 6 | # Software without restriction, including without limitation the rights to use, 7 | # copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the 8 | # Software, and to permit persons to whom the Software is furnished to do so, 9 | # subject to the following conditions: 10 | # 11 | # The above copyright notice and this permission notice shall be included in all 12 | # copies or substantial portions of the Software. 13 | # 14 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 16 | # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 17 | # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 18 | # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 19 | # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Parts/setup.js: -------------------------------------------------------------------------------- 1 | /* 2 | This file was generated by Dashcode and is covered by the 3 | license.txt included in the project. You may edit this file, 4 | however it is recommended to first turn off the Dashcode 5 | code generator otherwise the changes will be lost. 6 | */ 7 | var dashcodePartSpecs = { 8 | "biginfo": { "text": "Game Over", "view": "DC.Text" }, 9 | "done": { "creationFunction": "CreateGlassButton", "onclick": "showFront", "text": "Done", "view": "DC.View" }, 10 | "glassbutton": { "creationFunction": "CreateGlassButton", "onclick": "gotoSite", "text": "Website", "view": "DC.View" }, 11 | "info": { "backgroundStyle": "white", "creationFunction": "CreateInfoButton", "foregroundStyle": "white", "frontID": "front", "onclick": "showBack", "view": "DC.View" }, 12 | "out": { "view": "DC.Text" }, 13 | "passDesc": { "text": "Password:", "view": "DC.Text" }, 14 | "play": { "creationFunction": "CreateButton", "leftImageWidth": 5, "onclick": "playGame", "rightImageWidth": 5, "text": "Play", "view": "DC.View" }, 15 | "score": { "text": "Have fun!", "view": "DC.Text" }, 16 | "userDesc": { "text": "Username:", "view": "DC.Text" } 17 | }; 18 | 19 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/facebooker.yml.tpl: -------------------------------------------------------------------------------- 1 | # The api key, secret key, and canvas page name are required to get started 2 | # Tunnel configuration is only needed if you are going to use the facebooker:tunnel Rake tasks 3 | # Your callback url in Facebook should be set to http://public_host:public_port 4 | # To develop for the new profile design, add the following key.. 5 | # api: new 6 | # remove the key or set it to anything else to use the old facebook design. 7 | # This should only be necessary until the final version of the new profile is released. 8 | 9 | development: 10 | api_key: 11 | secret_key: 12 | canvas_page_name: 13 | callback_url: 14 | tunnel: 15 | public_host_username: 16 | public_host: 17 | public_port: 4007 18 | local_port: 3000 19 | 20 | test: 21 | api_key: 22 | secret_key: 23 | canvas_page_name: 24 | callback_url: 25 | tunnel: 26 | public_host_username: 27 | public_host: 28 | public_port: 4007 29 | local_port: 3000 30 | 31 | production: 32 | api_key: 33 | secret_key: 34 | canvas_page_name: 35 | callback_url: 36 | tunnel: 37 | public_host_username: 38 | public_host: 39 | public_port: 4007 40 | local_port: 3000 41 | -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Parts/GlassButton.js: -------------------------------------------------------------------------------- 1 | /* 2 | This file was generated by Dashcode and is covered by the 3 | license.txt included in the project. You may edit this file, 4 | however it is recommended to first turn off the Dashcode 5 | code generator otherwise the changes will be lost. 6 | */ 7 | 8 | function CreateGlassButton(elementOrID, spec) 9 | { 10 | var buttonElement = elementOrID; 11 | if (elementOrID.nodeType != Node.ELEMENT_NODE) { 12 | buttonElement = document.getElementById(elementOrID); 13 | } 14 | 15 | if (!buttonElement.loaded) { 16 | buttonElement.loaded = true; 17 | while (buttonElement.firstChild) { 18 | buttonElement.removeChild(buttonElement.firstChild); 19 | } 20 | 21 | var text = spec.text || ''; 22 | if (window.dashcode && dashcode.getLocalizedString) text = dashcode.getLocalizedString(text); 23 | 24 | var onclick = spec.onclick || null; 25 | try { onclick = eval(onclick); } catch (e) { onclick = null; } 26 | 27 | buttonElement.object = new AppleGlassButton(buttonElement, text, onclick); 28 | buttonElement.object.element = buttonElement; 29 | buttonElement.object.setEnabled(!spec.disabled); 30 | } 31 | 32 | return buttonElement.object; 33 | } 34 | -------------------------------------------------------------------------------- /original/C/kc.6: -------------------------------------------------------------------------------- 1 | .\" Process this file with 2 | .\" groff -man -Tascii foo.1 3 | .\" 4 | .TH KC 6 "JANUARY 2008" KeyControl "User Manuals" 5 | .SH NAME 6 | kc \- KeyControl 7 | .SH SYNOPSIS 8 | .B kc 9 | .SH DESCRIPTION 10 | .B KeyControl 11 | is a reaction testing game that tests your ability to type quickly. 12 | KeyControl does this by presenting a character on the screen. You then have 13 | to type this character on your keyboard a quickly as possible. If you 14 | enter the correct character, your score is increased; enter an incorrect 15 | character and your score drops. Once you've entered the character, a new 16 | character is shown and the process repeats. After each character, the time 17 | you have to enter the next character is decreased (i.e. the game gets 18 | harder the longer you play it). When you enter a character too slowly, 19 | the game ends and your final score is displayed. 20 | 21 | Note: You don't need to use the shift key when playing; e.g. if the games 22 | asks for ^, then you can type 6, no shift. 23 | .SH BUGS 24 | The game uses vt100 terminal commands and may not work on a vt100 incompatible terminal. 25 | The game assumes a standard PC keyboard layout for the non-alphanumeric keys; some 26 | foreign keyboard layouts may map these keys differently. 27 | .SH AUTHOR 28 | Brenton Fletcher 29 | 30 | -------------------------------------------------------------------------------- /arrows/Facebook Application/config/facebooker.yml: -------------------------------------------------------------------------------- 1 | # The api key, secret key, and canvas page name are required to get started 2 | # Tunnel configuration is only needed if you are going to use the facebooker:tunnel Rake tasks 3 | # Your callback url in Facebook should be set to http://public_host:public_port 4 | # To develop for the new profile design, add the following key.. 5 | # api: new 6 | # remove the key or set it to anything else to use the old facebook design. 7 | # This should only be necessary until the final version of the new profile is released. 8 | 9 | development: 10 | api_key: 05b4cb3f4d8eda02f83b313253e115a8 11 | secret_key: f38e99820fd1c4f69911a30924052ebe 12 | canvas_page_name: http://apps.facebook.com/keycontrol/ 13 | callback_url: http://bloople.ath.cx/ 14 | tunnel: 15 | public_host_username: 16 | public_host: 17 | public_port: 4007 18 | local_port: 3000 19 | 20 | test: 21 | api_key: 22 | secret_key: 23 | canvas_page_name: 24 | callback_url: 25 | tunnel: 26 | public_host_username: 27 | public_host: 28 | public_port: 4007 29 | local_port: 3000 30 | 31 | production: 32 | api_key: 33 | secret_key: 34 | canvas_page_name: 35 | callback_url: 36 | tunnel: 37 | public_host_username: 38 | public_host: 39 | public_port: 4007 40 | local_port: 3000 41 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/test/fixtures/multipart_post_body_with_single_file.txt: -------------------------------------------------------------------------------- 1 | --MichaelNiessnerIsSuperDuperAwesome 2 | Content-Disposition: form-data; name="aid" 3 | 4 | 940915667462717 5 | --MichaelNiessnerIsSuperDuperAwesome 6 | Content-Disposition: form-data; name="api_key" 7 | 8 | 77a52842357422fadd912a2600e6e53c 9 | --MichaelNiessnerIsSuperDuperAwesome 10 | Content-Disposition: form-data; name="call_id" 11 | 12 | 1172623588.023010 13 | --MichaelNiessnerIsSuperDuperAwesome 14 | Content-Disposition: form-data; name="caption" 15 | 16 | Under the sunset 17 | --MichaelNiessnerIsSuperDuperAwesome 18 | Content-Disposition: form-data; name="method" 19 | 20 | facebook.photos.upload 21 | --MichaelNiessnerIsSuperDuperAwesome 22 | Content-Disposition: form-data; name="session_key" 23 | 24 | 489727d0ab2efc6e8003018c-i2LLkn8BDb2s. 25 | --MichaelNiessnerIsSuperDuperAwesome 26 | Content-Disposition: form-data; name="sig" 27 | 28 | dfa724b8a5cd97d9df4baf2b60d3484c 29 | --MichaelNiessnerIsSuperDuperAwesome 30 | Content-Disposition: form-data; name="v" 31 | 32 | 1.0 33 | --MichaelNiessnerIsSuperDuperAwesome 34 | Content-Disposition: form-data; name="file"; filename="somefilename.jpg" 35 | Content-Type: image/jpg 36 | 37 | [Raw file data here] 38 | --MichaelNiessnerIsSuperDuperAwesome-- 39 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/test/fixtures/multipart_post_body_with_single_file_that_has_nil_key.txt: -------------------------------------------------------------------------------- 1 | --MichaelNiessnerIsSuperDuperAwesome 2 | Content-Disposition: form-data; name="aid" 3 | 4 | 940915667462717 5 | --MichaelNiessnerIsSuperDuperAwesome 6 | Content-Disposition: form-data; name="api_key" 7 | 8 | 77a52842357422fadd912a2600e6e53c 9 | --MichaelNiessnerIsSuperDuperAwesome 10 | Content-Disposition: form-data; name="call_id" 11 | 12 | 1172623588.023010 13 | --MichaelNiessnerIsSuperDuperAwesome 14 | Content-Disposition: form-data; name="caption" 15 | 16 | Under the sunset 17 | --MichaelNiessnerIsSuperDuperAwesome 18 | Content-Disposition: form-data; name="method" 19 | 20 | facebook.photos.upload 21 | --MichaelNiessnerIsSuperDuperAwesome 22 | Content-Disposition: form-data; name="session_key" 23 | 24 | 489727d0ab2efc6e8003018c-i2LLkn8BDb2s. 25 | --MichaelNiessnerIsSuperDuperAwesome 26 | Content-Disposition: form-data; name="sig" 27 | 28 | dfa724b8a5cd97d9df4baf2b60d3484c 29 | --MichaelNiessnerIsSuperDuperAwesome 30 | Content-Disposition: form-data; name="v" 31 | 32 | 1.0 33 | --MichaelNiessnerIsSuperDuperAwesome 34 | Content-Disposition: form-data; filename="somefilename.jpg" 35 | Content-Type: image/jpg 36 | 37 | [Raw file data here] 38 | --MichaelNiessnerIsSuperDuperAwesome-- 39 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/batch_request.rb: -------------------------------------------------------------------------------- 1 | module Facebooker 2 | class BatchRequest 3 | instance_methods.each { |m| undef_method m unless m =~ /(^__|^nil\?$|^send$|proxy_|^respond_to\?$|^new$)/ } 4 | attr_reader :uri 5 | attr_reader :method 6 | class UnexecutedRequest < StandardError; end 7 | def initialize(params,proc) 8 | @method=params[:method] 9 | @uri=params.map{|k,v| "#{k}=#{CGI.escape(v.to_s)}"}.join("&") 10 | @proc=proc 11 | end 12 | 13 | def result=(result_object) 14 | @result = @proc.nil? ? result_object : @proc.call(result_object) 15 | end 16 | 17 | def exception_raised=(ex) 18 | @exception=ex 19 | end 20 | 21 | def exception_raised? 22 | @exception.nil? ? false : raise(@exception) 23 | end 24 | 25 | def respond_to?(name) 26 | super || @result.respond_to?(name) 27 | end 28 | 29 | def ===(other) 30 | other === @result 31 | end 32 | 33 | 34 | def method_missing(name,*args,&proc) 35 | if @exception 36 | raise @exception 37 | elsif @result.nil? 38 | raise UnexecutedRequest.new("You must execute the batch before accessing the result: #{@uri}") 39 | else 40 | @result.send(name,*args,&proc) 41 | end 42 | end 43 | end 44 | end -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgtproj/projectInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AvailableProducts 6 | 7 | Widget 8 | 9 | AppIconImageSettings 10 | image-theme: 1; image-shape: 3; image-opacity: 1.00; image-top-color: 0.6095,0.6095,0.6095; image-bottom-color: 0.1946,0.1946,0.1946; image-radius: 12,12,12,12; image-border: 1; image-border-color: 0.3467,0.3467,0.3467; image-border-width: 1; shine-on: 1; shine-strength: 0.00; shine-alpha-level: 0.73; shine-height: 0.61; glass-arc-height: 0.10; shadow-include-shadow: 1; shadow-blur: 9.00; shadow-offset: -1.00,-6.00; shadow-color: 0.0000,0.0000,0.0000,0.3333; 11 | CYBackwardCompatibleExport 12 | 13 | MainCSS 14 | KeyControl.css 15 | MainJS 16 | KeyControl.js 17 | ProductDir 18 | widget.wdgt 19 | UseCustomAppIcon 20 | 21 | UseCustomDefaultImage 22 | 23 | 24 | 25 | CYProjectFormatVersion 26 | 40 27 | IsInCodeGeneratorMode 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /arrows/C/akc.6: -------------------------------------------------------------------------------- 1 | .\" Process this file with 2 | .\" groff -man -Tascii foo.1 3 | .\" 4 | .TH AKC 6 "SEPTEMBER 2009" ArrowKeyControl "User Manuals" 5 | .SH NAME 6 | akc \- ArrowKeyControl 7 | .SH SYNOPSIS 8 | .B akc 9 | .SH DESCRIPTION 10 | .B ArrowKeyControl 11 | is a reaction testing game that tests your speed and concentration. 12 | ArrowKeyControl does this by displaying an arrow; the arrow corresponds 13 | to one of the arrow keys on the keyboard. You have to type arrow 14 | displayed (which could be the up, down, left, or right arrow keys). As 15 | soon as you type a key, the arrow changes (sometimes to the same arrow 16 | as before!) and you go again. You have 1 second to hit the first key, 17 | and every time you hit a key, the time allowed to ht the next key decreases. 18 | The game continues like this as long as you press each key fast enough; 19 | too slow and the game ends. The faster you type the correct keys, the 20 | more you score; enter a wrong key and the game ends. 21 | 22 | The game waits 1 second after being started to show the first arrow; this 23 | is to give you time to prepare and move your hand to the arrow keys. 24 | 25 | .SH BUGS 26 | The game uses vt100 terminal commands and may not work on a vt100 incompatible terminal. 27 | An Unicode (UTF-8) supporting terminal is required, and the game requires valid glyphs 28 | for the triangle arrows in your terminal font to work. 29 | .SH AUTHOR 30 | Brenton Fletcher 31 | 32 | -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/projectInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AvailableProducts 6 | 7 | Widget 8 | 9 | AppIconImageSettings 10 | image-theme: 0; image-shape: 3; image-opacity: 1.00; image-top-color: 0.113138683,0.142335773,0.777372241,1; image-bottom-color: 0.609499991,0.609499991,0.609499991,1; image-radius: 12,12,12,12; image-border: 1; image-border-color: 0.295613021,0.295613021,0.295613021,1; image-border-width: 1; shine-on: 1; shine-strength: 0.13; shine-alpha-level: 0.67; shine-height: 0.50; glass-arc-height: 0.10; embossed-on: 0; embossed-depth: 0; embossed-shadow: 0.68; embossed-highlight: 0.3; shadow-include-shadow: 1; shadow-offset: -1.00,-6.00; shadow-color: 0,0,0,0.3333; 11 | CYBackwardCompatibleExport 12 | 13 | MainCSS 14 | ArrowKeyControl.css 15 | MainJS 16 | ArrowKeyControl.js 17 | ProductDir 18 | widget.wdgt 19 | UseCustomAppIcon 20 | 21 | UseCustomDefaultImage 22 | 23 | 24 | 25 | CYProjectFormatVersion 26 | 40 27 | IsInCodeGeneratorMode 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /arrows/Web Game/game.js: -------------------------------------------------------------------------------- 1 | function Game() { 2 | this.DIRECTIONS = ["left", "up", "right", "down"]; 3 | } 4 | 5 | Game.prototype.start = function() { 6 | this.allowedTime = 1000; 7 | this.score = 0; 8 | this.streak = 0; 9 | this.startTime = null; 10 | this.direction = null; 11 | } 12 | 13 | Game.prototype.nextDirection = function() { 14 | var next = this.direction; 15 | while(next == this.direction) next = this.DIRECTIONS[Math.floor(Math.random() * this.DIRECTIONS.length)]; 16 | return next; 17 | //return this.DIRECTIONS[Math.floor(Math.random() * this.DIRECTIONS.length)]; 18 | } 19 | 20 | Game.prototype.timeUsed = function() { 21 | return (Date.now() - this.startTime) / (this.allowedTime + 0.0); 22 | } 23 | 24 | Game.prototype.roundStarted = function() { 25 | this.direction = this.nextDirection(); 26 | this.startTime = Date.now(); 27 | return this.direction; 28 | } 29 | 30 | Game.prototype.roundEnded = function(playerDirection) { 31 | var diff = Date.now() - this.startTime; 32 | var correct = playerDirection == this.direction; 33 | 34 | //console.log(this.streak + "," + diff + "," + this.allowedTime); 35 | 36 | if(diff < 50 || diff > this.allowedTime || !correct) return true; 37 | 38 | this.streak++; 39 | var delta = (this.allowedTime - diff) + (this.streak * 100); 40 | if(diff <= (this.allowedTime * 0.3)) delta *= 2; 41 | this.score += delta; 42 | if((this.streak % 10 == 0) && (this.allowedTime > 300)) this.allowedTime -= 35; 43 | 44 | return false; 45 | } -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/rails/facebook_url_rewriting.rb: -------------------------------------------------------------------------------- 1 | module ::ActionController 2 | class AbstractRequest 3 | def relative_url_root 4 | Facebooker.path_prefix 5 | end 6 | end 7 | 8 | class Base 9 | def self.relative_url_root 10 | Facebooker.path_prefix 11 | end 12 | end 13 | 14 | class UrlRewriter 15 | RESERVED_OPTIONS << :canvas 16 | def link_to_new_canvas? 17 | @request.parameters["fb_sig_in_new_facebook"] == "1" 18 | end 19 | def link_to_canvas?(params, options) 20 | option_override = options[:canvas] 21 | return false if option_override == false # important to check for false. nil should use default behavior 22 | option_override || @request.parameters["fb_sig_in_canvas"] == "1" || @request.parameters[:fb_sig_in_canvas] == "1" 23 | end 24 | 25 | def rewrite_url_with_facebooker(*args) 26 | options = args.first.is_a?(Hash) ? args.first : args.last 27 | is_link_to_canvas = link_to_canvas?(@request.request_parameters, options) 28 | if is_link_to_canvas && !options.has_key?(:host) 29 | options[:host] = Facebooker.canvas_server_base 30 | end 31 | options.delete(:canvas) 32 | Facebooker.request_for_canvas(is_link_to_canvas) do 33 | rewrite_url_without_facebooker(*args) 34 | end 35 | end 36 | 37 | alias_method_chain :rewrite_url, :facebooker 38 | end 39 | end 40 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/generators/scaffold/USAGE: -------------------------------------------------------------------------------- 1 | Description: 2 | Scaffolds an entire resource, from model and migration to controller and 3 | views, along with a full test suite. The resource is ready to use as a 4 | starting point for your restful, resource-oriented application. 5 | 6 | Pass the name of the model, either CamelCased or under_scored, as the first 7 | argument, and an optional list of attribute pairs. 8 | 9 | Attribute pairs are column_name:sql_type arguments specifying the 10 | model's attributes. Timestamps are added by default, so you don't have to 11 | specify them by hand as 'created_at:datetime updated_at:datetime'. 12 | 13 | You don't have to think up every attribute up front, but it helps to 14 | sketch out a few so you can start working with the resource immediately. 15 | 16 | For example, `scaffold post title:string body:text published:boolean` 17 | gives you a model with those three attributes, a controller that handles 18 | the create/show/update/destroy, forms to create and edit your posts, and 19 | an index that lists them all, as well as a map.resources :posts 20 | declaration in config/routes.rb. 21 | 22 | Also, it creates Facebook view templates and functional tests. 23 | 24 | Examples: 25 | `./script/generate scaffold post` # no attributes, view will be anemic 26 | `./script/generate scaffold post title:string body:text published:boolean` 27 | `./script/generate scaffold purchase order_id:integer amount:decimal` 28 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/models/group.rb: -------------------------------------------------------------------------------- 1 | require 'facebooker/model' 2 | module Facebooker 3 | class Group 4 | ## 5 | # The model of a user's relationship to a group. Users can occupy different positions within a group (e.g. 'owner') 6 | class Membership 7 | include Model 8 | attr_accessor :position, :gid, :uid 9 | end 10 | include Model 11 | attr_accessor :pic, :pic_small, :pic_big, :name, :creator, :recent_news, :gid, :update_time, :group_subtype, :group_type, :website, :office, :description, :venue, :nid 12 | 13 | 14 | ## 15 | # Get the full list of members as populated User objects. First time fetches group members via Facebook API call. 16 | # Subsequent calls return cached values. 17 | # This is a convenience method for getting all of the Membership instances and instantiating User instances for each Membership. 18 | def members 19 | @members ||= memberships.map do |membership| 20 | User.new(membership.uid, session) 21 | end 22 | end 23 | 24 | ## 25 | # Get a list of Membership instances associated with this Group. First call retrieves the Membership instances via a Facebook 26 | # API call. Subsequent calls are retrieved from in-memory cache. 27 | def memberships 28 | @memberships ||= session.post('facebook.groups.getMembers', :gid => gid).map do |hash| 29 | Membership.from_hash(hash) do |membership| 30 | membership.gid = gid 31 | end 32 | end 33 | end 34 | end 35 | end -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/generators/scaffold/templates/style.css: -------------------------------------------------------------------------------- 1 | body { background-color: #fff; color: #333; } 2 | 3 | body, p, ol, ul, td { 4 | font-family: verdana, arial, helvetica, sans-serif; 5 | font-size: 13px; 6 | line-height: 18px; 7 | } 8 | 9 | pre { 10 | background-color: #eee; 11 | padding: 10px; 12 | font-size: 11px; 13 | } 14 | 15 | a { color: #000; } 16 | a:visited { color: #666; } 17 | a:hover { color: #fff; background-color:#000; } 18 | 19 | .fieldWithErrors { 20 | padding: 2px; 21 | background-color: red; 22 | display: table; 23 | } 24 | 25 | #errorExplanation { 26 | width: 400px; 27 | border: 2px solid red; 28 | padding: 7px; 29 | padding-bottom: 12px; 30 | margin-bottom: 20px; 31 | background-color: #f0f0f0; 32 | } 33 | 34 | #errorExplanation h2 { 35 | text-align: left; 36 | font-weight: bold; 37 | padding: 5px 5px 5px 15px; 38 | font-size: 12px; 39 | margin: -7px; 40 | background-color: #c00; 41 | color: #fff; 42 | } 43 | 44 | #errorExplanation p { 45 | color: #333; 46 | margin-bottom: 0; 47 | padding: 5px; 48 | } 49 | 50 | #errorExplanation ul li { 51 | font-size: 12px; 52 | list-style: square; 53 | } 54 | 55 | div.uploadStatus { 56 | margin: 5px; 57 | } 58 | 59 | div.progressBar { 60 | margin: 5px; 61 | } 62 | 63 | div.progressBar div.border { 64 | background-color: #fff; 65 | border: 1px solid gray; 66 | width: 100%; 67 | } 68 | 69 | div.progressBar div.background { 70 | background-color: #333; 71 | height: 18px; 72 | width: 0%; 73 | } 74 | 75 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/data.rb: -------------------------------------------------------------------------------- 1 | module Facebooker 2 | class Data 3 | def initialize(session) 4 | @session = session 5 | end 6 | 7 | ## 8 | # ** BETA *** 9 | # Sets a cookie on Facebook 10 | # +user+ The user for whom this cookie needs to be set. 11 | # +name+ Name of the cookie 12 | # +value+ Value of the cookie 13 | # Optional: 14 | # +expires+ Time when the cookie should expire. If not specified, the cookie never expires. 15 | # +path+ Path relative to the application's callback URL, with which the cookie should be associated. (default value is /? 16 | def set_cookie(user, name, value, expires=nil, path=nil) 17 | @session.post('facebook.data.setCookie', 18 | :uid => User.cast_to_facebook_id(user), 19 | :name => name, 20 | :value => value, 21 | :expires => expires, 22 | :path => path) {|response| response == '1'} 23 | end 24 | 25 | ## 26 | # ** BETA *** 27 | # Gets a cookie stored on Facebook 28 | # +user+ The user from whom to get the cookies. 29 | # Optional: 30 | # +name+ The name of the cookie. If not specified, all the cookies for the given user get returned. 31 | def get_cookies(user, name=nil) 32 | @cookies = @session.post( 33 | 'facebook.data.getCookies', :uid => User.cast_to_facebook_id(user), :name => name) do |response| 34 | response.map do |hash| 35 | Cookie.from_hash(hash) 36 | end 37 | end 38 | end 39 | end 40 | end -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/adapters/facebook_adapter.rb: -------------------------------------------------------------------------------- 1 | module Facebooker 2 | 3 | 4 | class FacebookAdapter < AdapterBase 5 | 6 | def canvas_server_base 7 | FacebookAdapter.new_api? ? "apps.new.facebook.com" : "apps.facebook.com" 8 | end 9 | 10 | def api_server_base 11 | FacebookAdapter.new_api? ? "api.new.facebook.com" : "api.facebook.com" 12 | end 13 | 14 | def www_server_base_url 15 | FacebookAdapter.new_api? ? "www.new.facebook.com" : "www.facebook.com" 16 | end 17 | 18 | def api_rest_path 19 | "/restserver.php" 20 | end 21 | 22 | def api_key 23 | ENV['FACEBOOK_API_KEY'] || super 24 | end 25 | 26 | def secret_key 27 | ENV['FACEBOOK_SECRET_KEY'] || super 28 | end 29 | 30 | def is_for?(application_context) 31 | application_context == :facebook 32 | end 33 | 34 | 35 | 36 | def login_url_base 37 | "http://#{www_server_base_url}/login.php?api_key=#{api_key}&v=1.0" 38 | end 39 | 40 | def install_url_base 41 | "http://#{www_server_base_url}/install.php?api_key=#{api_key}&v=1.0" 42 | end 43 | 44 | end 45 | 46 | class FacebookNewAdapter < FacebookAdapter 47 | def canvas_server_base 48 | "apps.new.facebook.com" 49 | end 50 | 51 | def api_server_base 52 | "api.new.facebook.com" 53 | end 54 | 55 | def www_server_base_url 56 | "www.new.facebook.com" 57 | end 58 | end 59 | end 60 | 61 | 62 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/generators/controller/USAGE: -------------------------------------------------------------------------------- 1 | Description: 2 | Stubs out a new controller and its views. Pass the controller name, either 3 | CamelCased or under_scored, and a list of views as arguments. 4 | 5 | To create a controller within a module, specify the controller name as a 6 | path like 'parent_module/controller_name'. 7 | 8 | This generates a controller class in app/controllers, view templates in 9 | app/views/controller_name, a helper class in app/helpers, and a functional 10 | test suite in test/functional. 11 | 12 | Also, it generates fbml view templates. 13 | 14 | Example: 15 | `./script/generate controller CreditCard open debit credit close` 16 | 17 | Credit card controller with URLs like /credit_card/debit. 18 | Controller: app/controllers/credit_card_controller.rb 19 | Views: app/views/credit_card/debit.html.erb [...], 20 | app/views/credit_card/debit.fbml.erb [...] 21 | Helper: app/helpers/credit_card_helper.rb 22 | Test: test/functional/credit_card_controller_test.rb 23 | 24 | Modules Example: 25 | `./script/generate controller 'admin/credit_card' suspend late_fee` 26 | 27 | Credit card admin controller with URLs /admin/credit_card/suspend. 28 | Controller: app/controllers/admin/credit_card_controller.rb 29 | Views: app/views/admin/credit_card/debit.html.erb [...], 30 | app/views/admin/credit_card/debit.fbml.erb [...] 31 | Helper: app/helpers/admin/credit_card_helper.rb 32 | Test: test/functional/admin/credit_card_controller_test.rb 33 | 34 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/generators/controller/controller_generator.rb: -------------------------------------------------------------------------------- 1 | class ControllerGenerator < Rails::Generator::NamedBase 2 | def manifest 3 | record do |m| 4 | # Check for class naming collisions. 5 | m.class_collisions class_path, "#{class_name}Controller", "#{class_name}ControllerTest", "#{class_name}Helper" 6 | 7 | # Controller, helper, views, and test directories. 8 | m.directory File.join('app/controllers', class_path) 9 | m.directory File.join('app/helpers', class_path) 10 | m.directory File.join('app/views', class_path, file_name) 11 | m.directory File.join('test/functional', class_path) 12 | 13 | # Controller class, functional test, and helper class. 14 | m.template 'controller.rb', 15 | File.join('app/controllers', 16 | class_path, 17 | "#{file_name}_controller.rb") 18 | 19 | m.template 'functional_test.rb', 20 | File.join('test/functional', 21 | class_path, 22 | "#{file_name}_controller_test.rb") 23 | 24 | m.template 'helper.rb', 25 | File.join('app/helpers', 26 | class_path, 27 | "#{file_name}_helper.rb") 28 | 29 | # View template for each action. 30 | actions.each do |action| 31 | html_path = File.join('app/views', class_path, file_name, "#{action}.html.erb") 32 | m.template 'view.html.erb', html_path, 33 | :assigns => { :action => action, :path => html_path } 34 | fbml_path = File.join('app/views', class_path, file_name, "#{action}.fbml.erb") 35 | m.template 'view.fbml.erb', fbml_path, 36 | :assigns => { :action => action, :path => fbml_path } 37 | end 38 | end 39 | end 40 | end 41 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/rails/profile_publisher_extensions.rb: -------------------------------------------------------------------------------- 1 | module Facebooker 2 | module Rails 3 | module ProfilePublisherExtensions 4 | 5 | ## 6 | # returns true if Facebook is requesting the interface for a profile publisher 7 | def wants_interface? 8 | params[:method] == "publisher_getInterface" 9 | end 10 | 11 | ## 12 | # render the interface for a publisher. 13 | # fbml is the content in string form. Use render_to_string to get the content from a template 14 | # publish_enabled controlls whether the post form is active by default. If it isn't, you'll need to use fbjs to activate it 15 | # comment_enabled controls whether to include a comment box 16 | def render_publisher_interface(fbml,publish_enabled=true,comment_enabled=false) 17 | render :json=>{:content=>{:fbml=>fbml,:publishEnabled=>publish_enabled,:commentEnabled=>comment_enabled}, 18 | :method=>"publisher_getInterface"} 19 | end 20 | 21 | # render an error while publishing the template 22 | # This can be used for validation errors 23 | def render_publisher_error(title,body) 24 | render :json=>{:errorCode=>1,:errorTitle=>title,:errorMessage=>body}.to_json 25 | end 26 | 27 | # render the response for a feed. This takes a user_action object like those returned from the Rails Publisher 28 | # For instance, AttackPublisher.create_attack(@attack) 29 | # The template must have been registered previously 30 | def render_publisher_response(user_action) 31 | render :json=>{:content=> { 32 | :feed=>{ 33 | :template_id=>user_action.template_id, 34 | :template_data=>user_action.data 35 | } 36 | }, 37 | :method=>"publisher_getFeedStory" 38 | } 39 | end 40 | end 41 | end 42 | end -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/rails/facebook_session_handling.rb: -------------------------------------------------------------------------------- 1 | module ActionController 2 | class CgiRequest 3 | alias :initialize_aliased_by_facebooker :initialize 4 | 5 | def initialize(cgi, session_options = {}) 6 | initialize_aliased_by_facebooker(cgi, session_options) 7 | @cgi.instance_variable_set("@request_params", request_parameters.merge(query_parameters)) 8 | end 9 | 10 | DEFAULT_SESSION_OPTIONS[:cookie_only] = false 11 | end 12 | end 13 | 14 | class CGI 15 | class Session 16 | private 17 | alias :initialize_aliased_by_facebooker :initialize 18 | attr_reader :request, :initialization_options 19 | 20 | def initialize(request, option={}) 21 | @request = request 22 | @initialization_options = option 23 | option['session_id'] = set_session_id 24 | initialize_aliased_by_facebooker(request, option) 25 | end 26 | 27 | def set_session_id 28 | if session_key_should_be_set_with_facebook_session_key? 29 | request_parameters[facebook_session_key] 30 | else 31 | request_parameters[session_key] 32 | end 33 | end 34 | 35 | def request_parameters 36 | request.instance_variable_get("@request_params") 37 | end 38 | 39 | def session_key_should_be_set_with_facebook_session_key? 40 | request_parameters[session_key].blank? && !request_parameters[facebook_session_key].blank? 41 | end 42 | 43 | def session_key 44 | initialization_options['session_key'] || '_session_id' 45 | end 46 | 47 | def facebook_session_key 48 | 'fb_sig_session_key' 49 | end 50 | 51 | alias :create_new_id_aliased_by_facebooker :create_new_id 52 | 53 | def create_new_id 54 | @new_session = true 55 | @session_id || create_new_id_aliased_by_facebooker 56 | end 57 | end 58 | end -------------------------------------------------------------------------------- /arrows/Facebook Application/test/test_helper.rb: -------------------------------------------------------------------------------- 1 | ENV["RAILS_ENV"] = "test" 2 | require File.expand_path(File.dirname(__FILE__) + "/../config/environment") 3 | require 'test_help' 4 | 5 | class Test::Unit::TestCase 6 | # Transactional fixtures accelerate your tests by wrapping each test method 7 | # in a transaction that's rolled back on completion. This ensures that the 8 | # test database remains unchanged so your fixtures don't have to be reloaded 9 | # between every test method. Fewer database queries means faster tests. 10 | # 11 | # Read Mike Clark's excellent walkthrough at 12 | # http://clarkware.com/cgi/blosxom/2005/10/24#Rails10FastTesting 13 | # 14 | # Every Active Record database supports transactions except MyISAM tables 15 | # in MySQL. Turn off transactional fixtures in this case; however, if you 16 | # don't care one way or the other, switching from MyISAM to InnoDB tables 17 | # is recommended. 18 | # 19 | # The only drawback to using transactional fixtures is when you actually 20 | # need to test transactions. Since your test is bracketed by a transaction, 21 | # any transactions started in your code will be automatically rolled back. 22 | self.use_transactional_fixtures = true 23 | 24 | # Instantiated fixtures are slow, but give you @david where otherwise you 25 | # would need people(:david). If you don't want to migrate your existing 26 | # test cases which use the @david style and don't mind the speed hit (each 27 | # instantiated fixtures translates to a database query per test method), 28 | # then set this back to true. 29 | self.use_instantiated_fixtures = false 30 | 31 | # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order. 32 | # 33 | # Note: You'll currently still have to declare fixtures explicitly in integration tests 34 | # -- they do not yet inherit this setting 35 | fixtures :all 36 | 37 | # Add more helper methods to be used by all tests here... 38 | end 39 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/test/facebook_data_test.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/test_helper.rb' 2 | 3 | class FacebookDataTest < Test::Unit::TestCase 4 | def setup 5 | @session = Facebooker::Session.create('apikey', 'secretkey') 6 | end 7 | 8 | def test_can_ask_facebook_to_set_a_cookies 9 | expect_http_posts_with_responses(example_set_cookie_xml) 10 | assert(@session.data.set_cookie(12345, 'name', 'value')) 11 | end 12 | 13 | def test_can_ask_facebook_to_get_cookies 14 | expect_http_posts_with_responses(example_get_cookies_xml) 15 | assert(@session.data.get_cookies(12345)) 16 | end 17 | 18 | def test_can_get_cookies_for_user 19 | mock_http = establish_session 20 | mock_http.should_receive(:post_form).and_return(example_get_cookies_xml).once.ordered(:posts) 21 | cookies = @session.data.get_cookies(508508326) 22 | assert_equal 'Foo', cookies.first.name 23 | assert_equal 'Bar', cookies.first.value 24 | end 25 | 26 | private 27 | def example_set_cookie_xml 28 | <<-XML 29 | 30 | 1 32 | XML 33 | end 34 | 35 | def example_get_cookies_xml 36 | <<-XML 37 | 38 | 40 | 41 | 508508326 42 | Foo 43 | Bar 44 | 0 45 | /tmp/ 46 | 47 | 48 | XML 49 | end 50 | end -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | KeyControl & ArrowKeyControl 6 | 41 | 42 |

KeyControl

43 |
44 | 45 | 46 | Play KeyControl 47 | 48 |
49 | 50 |

ArrowKeyControl

51 |
52 | 53 | 54 | Play original Dashboard Widget version of ArrowKeyControl 55 | 56 |
57 |
58 | 59 | 60 | Play updated version of ArrowKeyControl 61 | 62 |
63 |
64 | 65 | 66 | Play current version of ArrowKeyControl 67 | 68 |
69 | 70 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/tasks/tunnel.rake: -------------------------------------------------------------------------------- 1 | namespace :facebooker do 2 | 3 | namespace :tunnel do 4 | # Courtesy of Christopher Haupt 5 | # http://www.BuildingWebApps.com 6 | # http://www.LearningRails.com 7 | desc "Create a reverse ssh tunnel from a public server to a private development server." 8 | task :start => [ :environment, :config ] do 9 | puts @notification 10 | exec @ssh_command 11 | end 12 | 13 | desc "Create a reverse ssh tunnel in the background. Requires ssh keys to be setup." 14 | task :background_start => [ :environment, :config ] do 15 | puts @notification 16 | exec "#{@ssh_command} > /dev/null 2>&1 &" 17 | end 18 | 19 | # Adapted from Evan Weaver: http://blog.evanweaver.com/articles/2007/07/13/developing-a-facebook-app-locally/ 20 | desc "Check if reverse tunnel is running" 21 | task :status => [ :environment, :config ] do 22 | if `ssh #{@public_host} -l #{@public_host_username} netstat -an | 23 | egrep "tcp.*:#{@public_port}.*LISTEN" | wc`.to_i > 0 24 | puts "Seems ok" 25 | else 26 | puts "Down" 27 | end 28 | end 29 | 30 | task :config => :environment do 31 | facebook_config = File.dirname(__FILE__) + '/../../../../../config/facebooker.yml' 32 | FACEBOOKER = YAML.load_file(facebook_config)[RAILS_ENV] 33 | @public_host_username = FACEBOOKER['tunnel']['public_host_username'] 34 | @public_host = FACEBOOKER['tunnel']['public_host'] 35 | @public_port = FACEBOOKER['tunnel']['public_port'] 36 | @local_port = FACEBOOKER['tunnel']['local_port'] 37 | @ssh_port = FACEBOOKER['tunnel']['ssh_port'] || 22 38 | @notification = "Starting tunnel #{@public_host}:#{@public_port} to 0.0.0.0:#{@local_port}" 39 | @notification << " using SSH port #{@ssh_port}" unless @ssh_port == 22 40 | @ssh_command = "ssh -v -p #{@ssh_port} -nNT4 -R *:#{@public_port}:localhost:#{@local_port} #{@public_host_username}@#{@public_host}" 41 | end 42 | end 43 | end -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/README: -------------------------------------------------------------------------------- 1 | Copyright (c) 2007 Chad Fowler, Patrick Ewing 2 | 3 | = Facebooker 4 | 5 | Facebooker is a Ruby wrapper over the Facebook[http://facebook.com] {REST API}[http://developer.facebook.com]. Its goals are: 6 | 7 | * Idiomatic Ruby 8 | * No dependencies outside of the Ruby standard library (This is true with Rails 2.1. Previous Rails versions require the JSON gem) 9 | * Concrete classes and methods modeling the Facebook data, so it's easy for a Rubyist to understand what's available 10 | * Well tested 11 | 12 | = Installing (Non Rails) 13 | 14 | The best way is: 15 | 16 | gem install facebooker 17 | 18 | If, for some reason, you can't/won't use RubyGems, you can do: 19 | 20 | (sudo) ruby setup.rb 21 | 22 | = Installing (Rails) 23 | 24 | Facebooker can be installed as a Rails plugin by: 25 | 26 | script/plugin install git://github.com/mmangino/facebooker.git 27 | 28 | If you don't have git, the plugin can be downloaded from http://github.com/mmangino/facebooker/tarball/master 29 | 30 | Once the plugin is installed, you will need to configure your Facebook app in config/facebooker.yml. 31 | 32 | Your application users will need to have added the application in facebook to access all of facebooker's features. You enforce this by adding 33 | 34 | ensure_application_is_installed_by_facebook_user 35 | 36 | to your application controller. 37 | 38 | 39 | == Work in Progress 40 | 41 | I'm not saying it meets its goals fully yet. Please help. I'm especially interested in feedback and criticism re: Ruby style and design and testing. RCov has the library (at the time of this writing) at 100% coverage. I take that with a grain of salt, but it's a good start. 42 | 43 | == Contribute 44 | 45 | Please visit the {RubyForge project page}[http://rubyforge.org/projects/facebooker] to get the latest source via svn, write some tests, add/fix features, and submit a patch via the tracker. If you submit a good patch, it's likely that I'll add you to the project for commit access if you want to be added. 46 | 47 | -------------------------------------------------------------------------------- /arrows/Facebook Application/config/routes.rb: -------------------------------------------------------------------------------- 1 | ActionController::Routing::Routes.draw do |map| 2 | # The priority is based upon order of creation: first created -> highest priority. 3 | 4 | # Sample of regular route: 5 | # map.connect 'products/:id', :controller => 'catalog', :action => 'view' 6 | # Keep in mind you can assign values other than :controller and :action 7 | 8 | # Sample of named route: 9 | # map.purchase 'products/:id/purchase', :controller => 'catalog', :action => 'purchase' 10 | # This route can be invoked with purchase_url(:id => product.id) 11 | 12 | # Sample resource route (maps HTTP verbs to controller actions automatically): 13 | # map.resources :products 14 | 15 | # Sample resource route with options: 16 | # map.resources :products, :member => { :short => :get, :toggle => :post }, :collection => { :sold => :get } 17 | 18 | # Sample resource route with sub-resources: 19 | # map.resources :products, :has_many => [ :comments, :sales ], :has_one => :seller 20 | 21 | # Sample resource route with more complex sub-resources 22 | # map.resources :products do |products| 23 | # products.resources :comments 24 | # products.resources :sales, :collection => { :recent => :get } 25 | # end 26 | 27 | # Sample resource route within a namespace: 28 | # map.namespace :admin do |admin| 29 | # # Directs /admin/products/* to Admin::ProductsController (app/controllers/admin/products_controller.rb) 30 | # admin.resources :products 31 | # end 32 | 33 | # You can have the root of your site routed with map.root -- just remember to delete public/index.html. 34 | # map.root :controller => "welcome" 35 | 36 | # See how all your routes lay out with "rake routes" 37 | 38 | # Install the default routes as the lowest priority. 39 | # Note: These default routes make all actions in every controller accessible via GET requests. You should 40 | # consider removing the them or commenting them out if you're using named routes and resources. 41 | map.connect ':controller/:action/:id' 42 | map.connect ':controller/:action/:id.:format' 43 | end 44 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/init.rb: -------------------------------------------------------------------------------- 1 | # Added support to the Facebooker.yml file for switching to the new profile design.. 2 | # Config parsing needs to happen before files are required. 3 | facebook_config = "#{RAILS_ROOT}/config/facebooker.yml" 4 | 5 | require 'facebooker' 6 | FACEBOOKER = Facebooker.load_configuration(facebook_config) 7 | 8 | require 'net/http_multipart_post' 9 | require 'facebooker/rails/controller' 10 | require 'facebooker/rails/facebook_url_rewriting' 11 | require 'facebooker/rails/facebook_session_handling' 12 | require 'facebooker/rails/facebook_asset_path' 13 | require 'facebooker/rails/facebook_request_fix' 14 | require 'facebooker/rails/routing' 15 | require 'facebooker/rails/facebook_pretty_errors' rescue nil 16 | module ::ActionController 17 | class Base 18 | def self.inherited_with_facebooker(subclass) 19 | inherited_without_facebooker(subclass) 20 | if subclass.to_s == "ApplicationController" 21 | subclass.send(:include,Facebooker::Rails::Controller) 22 | subclass.helper Facebooker::Rails::Helpers 23 | end 24 | end 25 | class << self 26 | alias_method_chain :inherited, :facebooker 27 | end 28 | end 29 | end 30 | 31 | class ActionController::Routing::Route 32 | def recognition_conditions_with_facebooker 33 | defaults = recognition_conditions_without_facebooker 34 | defaults << " env[:canvas] == conditions[:canvas] " if conditions[:canvas] 35 | defaults 36 | end 37 | alias_method_chain :recognition_conditions, :facebooker 38 | end 39 | 40 | # We turn off route optimization to make named routes use our code for figuring out if they should go to the session 41 | # If this fails, it means we're on rails 1.2, we can ignore it 42 | begin 43 | ActionController::Base::optimise_named_routes = false 44 | rescue NoMethodError=>e 45 | nil 46 | end 47 | 48 | # pull :canvas=> into env in routing to allow for conditions 49 | ActionController::Routing::RouteSet.send :include, Facebooker::Rails::Routing::RouteSetExtensions 50 | ActionController::Routing::RouteSet::Mapper.send :include, Facebooker::Rails::Routing::MapperExtensions 51 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/test/facebook_cache_test.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/test_helper.rb' 2 | 3 | class FacebookCacheTest < Test::Unit::TestCase 4 | def setup 5 | @session = Facebooker::Session.create('apikey', 'secretkey') 6 | end 7 | 8 | def test_can_ask_facebook_to_store_fbml_in_a_named_reference 9 | expect_http_posts_with_responses(example_set_ref_handle_xml) 10 | assert(@session.server_cache.set_ref_handle('a_handle_name', '

Some FBML

')) 11 | end 12 | 13 | def test_can_ask_facebook_to_recache_content_stored_from_a_given_url 14 | expect_http_posts_with_responses(example_refresh_ref_url_xml) 15 | assert(@session.server_cache.refresh_ref_url('http://localhost/roflmao')) 16 | end 17 | 18 | def test_can_ask_facebook_to_recache_an_img 19 | expect_http_posts_with_responses(example_refresh_img_xml) 20 | assert(@session.server_cache.refresh_img_src('http://localhost/roflmao.jpg')) 21 | end 22 | 23 | private 24 | def example_set_ref_handle_xml 25 | <<-XML 26 | 27 | 1 28 | XML 29 | end 30 | 31 | def example_refresh_ref_url_xml 32 | <<-XML 33 | 34 | 1 35 | XML 36 | end 37 | def example_refresh_img_xml 38 | <<-XML 39 | 40 | 1 41 | XML 42 | end 43 | end -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/ArrowKeyControl.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 | 31 |
32 |
33 |
34 | 35 |
Internet Scoring
36 |
37 | 38 |
39 | 40 |
41 |
42 | 43 | 44 | -------------------------------------------------------------------------------- /original/C/kc-num.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | #define OUT(x) fputs((x), stdout) 12 | 13 | struct termios saved_attributes; 14 | 15 | void reset_term(void) 16 | { 17 | tcsetattr(STDIN_FILENO, TCSANOW, &saved_attributes); 18 | } 19 | 20 | 21 | int main(int argc, char** argv) 22 | { 23 | if(!isatty(STDIN_FILENO)) return 1; 24 | 25 | struct stat finfo; 26 | stat(argv[0], &finfo); 27 | 28 | tcgetattr(STDIN_FILENO, &saved_attributes); 29 | atexit(reset_term); 30 | 31 | struct termios tattr; 32 | tcgetattr(STDIN_FILENO, &tattr); 33 | 34 | tattr.c_lflag &= ~(ICANON | ECHO | IEXTEN); 35 | tattr.c_iflag &= ~(ICRNL | ISTRIP | CSIZE | PARENB) | CS8; 36 | tattr.c_cc[VMIN] = 0; 37 | tattr.c_cc[VTIME] = 100; 38 | 39 | tcsetattr(STDIN_FILENO, TCSAFLUSH, &tattr); 40 | 41 | setvbuf(stdout, NULL, _IONBF, 1); 42 | 43 | srand(time(NULL)); 44 | 45 | OUT("\033[?25l"); 46 | 47 | int score = 0; 48 | int correctTime = 1500000; 49 | char buffer[] = "\0\0\0\0\0"; 50 | 51 | while(1) 52 | { 53 | char out = (rand() % 10) + 48; 54 | putchar(out); 55 | 56 | struct timeval before; 57 | gettimeofday(&before, NULL); 58 | 59 | int count = read(STDIN_FILENO, buffer, 4); 60 | 61 | struct timeval after; 62 | gettimeofday(&after, NULL); 63 | 64 | long long int diff = ((after.tv_sec * 1000000) + after.tv_usec) - ((before.tv_sec * 1000000) + before.tv_usec); 65 | 66 | if(diff > correctTime) 67 | { 68 | int submitScore = score ^ finfo.st_size; 69 | 70 | printf("\033[1D%i %i\n\033[?25h", score, submitScore); 71 | return 0; 72 | } 73 | if((count > 1) || (buffer[0] == out)) 74 | { 75 | OUT(" X\033[3D"); 76 | score -= 100; 77 | } 78 | else 79 | { 80 | score += floor(pow(1.05, 1000 - (diff / 1000.0))); 81 | OUT(" \033[3D"); 82 | } 83 | 84 | if(correctTime > 252) correctTime = floor(correctTime * 0.99); 85 | } 86 | } -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/test/test_helper.rb: -------------------------------------------------------------------------------- 1 | require 'test/unit' 2 | require 'rubygems' 3 | require 'flexmock/test_unit' 4 | require 'mocha' 5 | 6 | require File.dirname(__FILE__)+'/../lib/facebooker/rails/test_helpers' 7 | 8 | $: << File.join(File.dirname(__FILE__), '..', 'lib') 9 | 10 | rails_root = File.join(File.dirname(__FILE__),'..','..') 11 | if defined? RAILS_ROOT 12 | RAILS_ROOT.replace(rails_root) 13 | else 14 | RAILS_ROOT = rails_root 15 | end 16 | 17 | require 'facebooker' 18 | 19 | class Test::Unit::TestCase 20 | include Facebooker::Rails::TestHelpers 21 | 22 | private 23 | 24 | def expect_http_posts_with_responses(*responses_xml) 25 | mock_http = establish_session 26 | responses_xml.each do |xml_string| 27 | mock_http.should_receive(:post_form).and_return(xml_string).once.ordered(:posts) 28 | end 29 | end 30 | 31 | def establish_session(session = @session) 32 | mock = flexmock(Net::HTTP).should_receive(:post_form).and_return(example_auth_token_xml).once.ordered(:posts) 33 | mock.should_receive(:post_form).and_return(example_get_session_xml).once.ordered(:posts) 34 | session.secure! 35 | mock 36 | end 37 | 38 | def example_auth_token_xml 39 | <<-XML 40 | 41 | 44 | 3e4a22bb2f5ed75114b0fc9995ea85f1 45 | 46 | XML 47 | end 48 | 49 | def example_get_session_xml 50 | <<-XML 51 | 52 | 53 | 5f34e11bfb97c762e439e6a5-8055 54 | 8055 55 | 1173309298 56 | ohairoflamao12345 57 | 58 | XML 59 | end 60 | end 61 | -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Parts/Button.js: -------------------------------------------------------------------------------- 1 | /* 2 | This file was generated by Dashcode and is covered by the 3 | license.txt included in the project. You may edit this file, 4 | however it is recommended to first turn off the Dashcode 5 | code generator otherwise the changes will be lost. 6 | */ 7 | 8 | function CreateButton(elementOrID, spec) 9 | { 10 | var buttonElement = elementOrID; 11 | if (elementOrID.nodeType != Node.ELEMENT_NODE) { 12 | buttonElement = document.getElementById(elementOrID); 13 | } 14 | 15 | if (!buttonElement.loaded) { 16 | buttonElement.loaded = true; 17 | while (buttonElement.firstChild) { 18 | buttonElement.removeChild(buttonElement.firstChild); 19 | } 20 | 21 | var text = spec.text || ''; 22 | if (window.dashcode && dashcode.getLocalizedString) text = dashcode.getLocalizedString(text); 23 | 24 | var leftImageWidth = spec.leftImageWidth || 0; 25 | var rightImageWidth = spec.rightImageWidth || 0; 26 | // when cloning template, get size from original 27 | var styleElement = buttonElement; 28 | if (spec.originalID) { 29 | styleElement = document.getElementById(spec.originalID); 30 | } 31 | var imagePrefix = "Parts/Images/" + styleElement.id + "_"; 32 | var width = dashcode.getElementWidth(styleElement) || 20; 33 | var height = dashcode.getElementHeight(styleElement) || 20; 34 | 35 | var onclick = spec.onclick || null; 36 | try { onclick = eval(onclick); } catch (e) { onclick = null; } 37 | 38 | buttonElement.object = new AppleButton(buttonElement, text, height, imagePrefix + "left.png", imagePrefix + "left_clicked.png", leftImageWidth, imagePrefix + "middle.png", imagePrefix + "middle_clicked.png", imagePrefix + "right.png", imagePrefix + "right_clicked.png", rightImageWidth, onclick); 39 | buttonElement.object.element = buttonElement; 40 | buttonElement.object._container.childNodes[2].style.width = rightImageWidth + "px"; 41 | buttonElement.object.setEnabled(!spec.disabled); 42 | buttonElement.object.textElement.style.width = (width - (leftImageWidth + rightImageWidth)) + "px"; 43 | } 44 | 45 | return buttonElement.object; 46 | } 47 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/test/http_multipart_post_test.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/test_helper.rb' 2 | require 'rubygems' 3 | require 'flexmock/test_unit' 4 | require 'net/http_multipart_post' 5 | 6 | class HttpMulitpartPostTest < Test::Unit::TestCase 7 | def setup 8 | super 9 | end 10 | 11 | def fixture(string) 12 | File.open(File.dirname(__FILE__) + "/fixtures/#{string}.txt").read 13 | end 14 | 15 | def test_multipart_post_with_only_parameters 16 | params = add_sample_facebook_params({}) 17 | post = Net::HTTP::MultipartPost.new("uri", params) 18 | assert_equal fixture("multipart_post_body_with_only_parameters"), post.send(:body) 19 | end 20 | 21 | def test_multipart_post_with_a_single_file 22 | params = add_sample_facebook_params({}) 23 | params[:file] = Net::HTTP::MultipartPostFile.new 24 | params[:file].filename = "somefilename.jpg" 25 | params[:file].content_type = "image/jpg" 26 | params[:file].data = "[Raw file data here]" 27 | post = Net::HTTP::MultipartPost.new("uri", params) 28 | assert_equal fixture("multipart_post_body_with_single_file"), post.send(:body) 29 | end 30 | 31 | def test_multipart_post_with_a_single_file_parameter_that_has_nil_key 32 | params = add_sample_facebook_params({}) 33 | params[nil] = Net::HTTP::MultipartPostFile.new("somefilename.jpg", "image/jpg", "[Raw file data here]") 34 | post = Net::HTTP::MultipartPost.new("uri", params) 35 | assert_equal fixture("multipart_post_body_with_single_file_that_has_nil_key"), post.send(:body) 36 | end 37 | 38 | def test_multipart_post_should_have_correct_content_type 39 | post = Net::HTTP::MultipartPost.new("uri", {}) 40 | assert post.send(:content_type) =~ /multipart\/form-data; boundary=/ 41 | end 42 | 43 | def add_sample_facebook_params(hash) 44 | hash[:method] = "facebook.photos.upload" 45 | hash[:v] = "1.0" 46 | hash[:api_key] = "77a52842357422fadd912a2600e6e53c" 47 | hash[:session_key] = "489727d0ab2efc6e8003018c-i2LLkn8BDb2s." 48 | hash[:call_id] = "1172623588.023010" 49 | hash[:caption] = "Under the sunset" 50 | hash[:aid] = "940915667462717" 51 | hash[:sig] = "dfa724b8a5cd97d9df4baf2b60d3484c" 52 | hash 53 | end 54 | end -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/adapters/bebo_adapter.rb: -------------------------------------------------------------------------------- 1 | module Facebooker 2 | class BeboAdapter < AdapterBase 3 | 4 | def canvas_server_base 5 | "apps.bebo.com" 6 | end 7 | 8 | def api_server_base 9 | 'apps.bebo.com' 10 | end 11 | 12 | def api_rest_path 13 | "/restserver.php" 14 | end 15 | 16 | def is_for?(application_context) 17 | application_context == :bebo 18 | end 19 | 20 | def www_server_base_url 21 | "www.bebo.com" 22 | end 23 | 24 | 25 | def login_url_base 26 | "http://#{www_server_base_url}/SignIn.jsp?ApiKey=#{api_key}&v=1.0" 27 | end 28 | 29 | def install_url_base 30 | "http://#{www_server_base_url}/c/apps/add?ApiKey=#{api_key}&v=1.0" 31 | end 32 | end 33 | end 34 | 35 | # Things that don't actually work as expected in BEBO 36 | Facebooker::PublishTemplatizedAction 37 | module Facebooker 38 | class User 39 | def set_profile_fbml_with_bebo_adapter(profile_fbml, mobile_fbml, profile_action_fbml, profile_main = nil) 40 | if(Facebooker.is_for?(:bebo)) 41 | self.session.post('facebook.profile.setFBML', :uid => @id, :markup => profile_fbml) 42 | else 43 | set_profile_fbml_without_bebo_adapter(profile_fbml,mobile_fbml, profile_action_fbml, profile_main) 44 | end 45 | end 46 | alias_method_chain :set_profile_fbml, :bebo_adapter 47 | 48 | private 49 | 50 | BEBO_FIELDS = FIELDS - [:meeting_sex, :wall_count, :meeting_for] 51 | def collect(fields) 52 | if(Facebooker.is_for?(:bebo) ) 53 | BEBO_FIELDS.reject{|field_name| !fields.empty? && !fields.include?(field_name)}.join(',') 54 | else 55 | FIELDS.reject{|field_name| !fields.empty? && !fields.include?(field_name)}.join(',') 56 | end 57 | end 58 | end 59 | 60 | 61 | class PublishTemplatizedAction < Parser#:nodoc: 62 | class <= 1.0.0'] 20 | end 21 | 22 | require 'rcov/rcovtask' 23 | 24 | namespace :test do 25 | namespace :coverage do 26 | desc "Delete aggregate coverage data." 27 | task(:clean) { rm_f "coverage.data" } 28 | end 29 | desc 'Aggregate code coverage for unit, functional and integration tests' 30 | Rcov::RcovTask.new(:coverage) do |t| 31 | t.libs << "test" 32 | t.test_files = FileList["test/*.rb"] 33 | t.output_dir = "coverage/" 34 | t.verbose = true 35 | end 36 | end 37 | # vim: syntax=Ruby 38 | # 39 | # 40 | # require File.dirname(__FILE__) + '/vendor/gardener/lib/gardener' 41 | # 42 | # require 'facebooker' 43 | # 44 | # namespace :doc do 45 | # task :readme do 46 | # puts "Readme" 47 | # end 48 | # end 49 | # 50 | # Gardener.configure do 51 | # gem_spec do |spec| 52 | # spec.name = 'facebooker' 53 | # spec.version = Gem::Version.new(Facebooker::VERSION::STRING) 54 | # spec.summary = "Pure, idiomatic Ruby wrapper for the Facebook REST API." 55 | # spec.email = 'chad@infoether.com' 56 | # spec.author = ['Chad Fowler', 'Patrick Ewing','Mike Mangino','Shane Vitarana'] 57 | # spec.extra_rdoc_files = %w(COPYING) 58 | # spec.rdoc_options = ['--title', "Gardener", 59 | # '--main', 'README', 60 | # '--line-numbers', '--inline-source'] 61 | # end 62 | # end 63 | -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/Parts/Text.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright © 2006-2007 Apple Inc. All Rights Reserved. 3 | 4 | IMPORTANT: This Apple software ("Apple Software") is supplied to you in consideration of your agreement to the following terms. Your use, installation and/or redistribution of this Apple Software constitutes acceptance of these terms. If you do not agree with these terms, please do not use, install, or redistribute this Apple Software. 5 | 6 | Provided you comply with all of the following terms, Apple grants you a personal, non-exclusive license, under Apple’s copyrights in the Apple Software, to use, reproduce, and redistribute the Apple Software for the sole purpose of creating Dashboard widgets for Mac OS X. If you redistribute the Apple Software, you must retain this entire notice in all such redistributions. 7 | 8 | You may not use the name, trademarks, service marks or logos of Apple to endorse or promote products that include the Apple Software without the prior written permission of Apple. Except as expressly stated in this notice, no other rights or licenses, express or implied, are granted by Apple herein, including but not limited to any patent rights that may be infringed by your products that incorporate the Apple Software or by other works in which the Apple Software may be incorporated. 9 | 10 | The Apple Software is provided on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS. 11 | 12 | IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 13 | */ 14 | 15 | function CreateText(textID, spec) 16 | { 17 | var text = spec.text || ''; 18 | if (window.getLocalizedString) text = getLocalizedString(text); 19 | 20 | document.getElementById(textID).innerText = text; 21 | } 22 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/test/batch_request_test.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/test_helper.rb' 2 | class BatchRequestTest < Test::Unit::TestCase 3 | 4 | def setup 5 | @proc_called=false 6 | @batch_request=Facebooker::BatchRequest.new({:params=>true},nil) 7 | end 8 | 9 | def test_can_set_result 10 | 11 | end 12 | 13 | def test_can_set_result_with_proc_and_have_proc_called 14 | p=Proc.new {@proc_called=true} 15 | 16 | @batch_request=Facebooker::BatchRequest.new({:params=>true},p) 17 | @batch_request.result="Mike" 18 | assert @proc_called 19 | end 20 | def test_can_set_result_with_proc_and_use_proc_result 21 | p=Proc.new {@proc_called=true} 22 | 23 | @batch_request=Facebooker::BatchRequest.new({:params=>true},p) 24 | @batch_request.result="Mike" 25 | assert @batch_request 26 | end 27 | 28 | def test_proxies_methods 29 | @batch_request.result="Mike" 30 | assert @batch_request == "Mike" 31 | end 32 | 33 | def test_threequal_works 34 | @batch_request.result="Mike" 35 | assert @batch_request === String 36 | end 37 | 38 | def test_can_set_exception_and_check_it 39 | @batch_request.exception_raised=ArgumentError.new 40 | assert_raises(ArgumentError) { 41 | @batch_request.exception_raised? 42 | } 43 | end 44 | def test_can_set_exception_and_have_it_raised_on_access 45 | @batch_request.exception_raised=ArgumentError.new 46 | assert_raises(ArgumentError) { 47 | @batch_request == true 48 | } 49 | end 50 | def test_exception_raised_false_when_no_exception 51 | @batch_request.result="Mike" 52 | assert ! @batch_request.exception_raised? 53 | end 54 | 55 | # def test_case_works 56 | # @batch_request.result="Mike" 57 | # case @batch_request 58 | # when String 59 | # else 60 | # fail("case failed") 61 | # end 62 | # 63 | # end 64 | 65 | def test_calling_method_without_result_raises_exception 66 | assert_raises(Facebooker::BatchRequest::UnexecutedRequest) { 67 | @batch_request.to_s 68 | } 69 | end 70 | 71 | def test_respond_to 72 | @batch_request.result=[] 73 | assert @batch_request.respond_to?(:empty?) 74 | end 75 | 76 | def test_calling_method_after_exception_re_raises_exception 77 | @batch_request.result="String" 78 | assert_raises(NoMethodError) { 79 | @batch_request.fake 80 | } 81 | end 82 | end -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/WidgetResources/.parsers/translationParser.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005, Apple Computer, Inc. All rights reserved. 3 | NOTE: Use of this source code is subject to the terms of the Software 4 | License Agreement for Mac OS X, which accompanies the code. Your use 5 | of this source code signifies your agreement to such license terms and 6 | conditions. Except as expressly granted in the Software License Agreement 7 | for Mac OS X, no other copyright, patent, or other intellectual property 8 | license or right is granted, either expressly or by implication, by Apple. 9 | */ 10 | 11 | 12 | function performXMLRequest (encodedText, encodingType, translationType, callback) 13 | { 14 | 15 | var xml_request = new XMLHttpRequest(); 16 | 17 | var postData = "id=sherlock&charset="; 18 | postData = postData + encodingType + "&api=1&lp="; 19 | postData = postData + translationType; 20 | postData = postData + "&text=" + encodedText; 21 | 22 | xml_request.onload = function(e) {xml_loaded(e, xml_request, requestID++, callback);} 23 | xml_request.onerror = function() {callback(null,"");} 24 | 25 | //http://w4.systranlinks.com/trans 26 | xml_request.open("POST", "http://wu.apple.com/trans"); 27 | xml_request.overrideMimeType("text/xml"); 28 | xml_request.setRequestHeader("Cache-Control", "no-cache"); 29 | xml_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 30 | 31 | xml_request.send(postData); 32 | 33 | return xml_request; 34 | 35 | } 36 | 37 | function xml_loaded (e, xml_request, id, callback) 38 | { 39 | if (!isXMLRequestLastOneSent(xml_request)) 40 | return; 41 | 42 | if ( xml_request.responseText ) { 43 | var response = xml_request.responseText; 44 | var termIdx = response.indexOf("!"); 45 | 46 | if ( id < receiveID ) { 47 | debug("old request: " + id); 48 | return; 49 | } 50 | 51 | receiveID = id; 52 | response = response.substr(termIdx+9,response.length-9-termIdx); 53 | termIdx = response.indexOf("]"); 54 | response = response.substr(0,termIdx); 55 | 56 | callback(response, null); 57 | } 58 | else 59 | callback(null, ""); 60 | 61 | clearLastXMLRequest(); 62 | } 63 | 64 | function findChild (element, nodeName) 65 | { 66 | var child; 67 | for (child = element.firstChild; child != null; child = child.nextSibling) 68 | { 69 | if (child.nodeName == nodeName) 70 | return child; 71 | } 72 | 73 | return null; 74 | } 75 | -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgt/WidgetResources/.parsers/translationParser.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005, Apple Computer, Inc. All rights reserved. 3 | NOTE: Use of this source code is subject to the terms of the Software 4 | License Agreement for Mac OS X, which accompanies the code. Your use 5 | of this source code signifies your agreement to such license terms and 6 | conditions. Except as expressly granted in the Software License Agreement 7 | for Mac OS X, no other copyright, patent, or other intellectual property 8 | license or right is granted, either expressly or by implication, by Apple. 9 | */ 10 | 11 | 12 | function performXMLRequest (encodedText, encodingType, translationType, callback) 13 | { 14 | 15 | var xml_request = new XMLHttpRequest(); 16 | 17 | var postData = "id=sherlock&charset="; 18 | postData = postData + encodingType + "&api=1&lp="; 19 | postData = postData + translationType; 20 | postData = postData + "&text=" + encodedText; 21 | 22 | xml_request.onload = function(e) {xml_loaded(e, xml_request, requestID++, callback);} 23 | xml_request.onerror = function() {callback(null,"");} 24 | 25 | //http://w4.systranlinks.com/trans 26 | xml_request.open("POST", "http://wu.apple.com/trans"); 27 | xml_request.overrideMimeType("text/xml"); 28 | xml_request.setRequestHeader("Cache-Control", "no-cache"); 29 | xml_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 30 | 31 | xml_request.send(postData); 32 | 33 | return xml_request; 34 | 35 | } 36 | 37 | function xml_loaded (e, xml_request, id, callback) 38 | { 39 | if (!isXMLRequestLastOneSent(xml_request)) 40 | return; 41 | 42 | if ( xml_request.responseText ) { 43 | var response = xml_request.responseText; 44 | var termIdx = response.indexOf("!"); 45 | 46 | if ( id < receiveID ) { 47 | debug("old request: " + id); 48 | return; 49 | } 50 | 51 | receiveID = id; 52 | response = response.substr(termIdx+9,response.length-9-termIdx); 53 | termIdx = response.indexOf("]"); 54 | response = response.substr(0,termIdx); 55 | 56 | callback(response, null); 57 | } 58 | else 59 | callback(null, ""); 60 | 61 | clearLastXMLRequest(); 62 | } 63 | 64 | function findChild (element, nodeName) 65 | { 66 | var child; 67 | for (child = element.firstChild; child != null; child = child.nextSibling) 68 | { 69 | if (child.nodeName == nodeName) 70 | return child; 71 | } 72 | 73 | return null; 74 | } 75 | -------------------------------------------------------------------------------- /arrows/Web Game/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ArrowKeyControl 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |
14 |
15 |
16 | Play 17 |
18 |
19 |
20 |
21 |
Wait...
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 | Game Over!
31 | Score:
32 | Rank:
33 | Combo Streak: 34 |
35 | Play 36 |
37 |
38 |
39 |
40 |
41 | 45 |
46 |
47 | 48 | 49 |
50 |
51 | 52 | 53 |
54 | 55 |
56 |
57 |
58 |

ArrowKeyControl is a reaction testing game that tests your speed and concentration.

59 |

You have to type what you see: up, down, left, or right arrow. Get it wrong and it's game over.

60 |

You have 1 second to hit the first key, and every time you hit a key, the time allowed to hit the next key 61 | decreases. The game continues like this as long as you press each key fast enough; 62 | too slow and the game ends.

63 |
64 |
65 | 66 | 67 | -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/KeyControl.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 |
26 |
27 | 28 |
29 | 30 |
31 |
32 |
33 |
34 |
35 |
36 | 37 | 38 |
39 | 40 | 41 |
42 |
43 | 44 |
Internet Scoring
45 |
46 | 47 |
48 | 49 |
50 |
51 | 52 | 53 | -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/Parts/InfoButton.js: -------------------------------------------------------------------------------- 1 | /* 2 | © Copyright 2006-2007 Apple Inc. All rights reserved. 3 | 4 | IMPORTANT: This Apple software ("Apple Software") is supplied to you in consideration of your agreement to the following terms. Your use, installation and/or redistribution of this Apple Software constitutes acceptance of these terms. If you do not agree with these terms, please do not use, install, or redistribute this Apple Software. 5 | 6 | Provided you comply with all of the following terms, Apple grants you a personal, non-exclusive license, under Apple’s copyrights in the Apple Software, to use, reproduce, and redistribute the Apple Software for the sole purpose of creating Dashboard widgets for Mac OS X. If you redistribute the Apple Software, you must retain this entire notice in all such redistributions. 7 | 8 | You may not use the name, trademarks, service marks or logos of Apple to endorse or promote products that include the Apple Software without the prior written permission of Apple. Except as expressly stated in this notice, no other rights or licenses, express or implied, are granted by Apple herein, including but not limited to any patent rights that may be infringed by your products that incorporate the Apple Software or by other works in which the Apple Software may be incorporated. 9 | 10 | The Apple Software is provided on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS. 11 | 12 | IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 13 | */ 14 | 15 | function CreateInfoButton(flipperID, spec) 16 | { 17 | var flipElement = document.getElementById(flipperID); 18 | 19 | if (!flipElement.loaded) { 20 | flipElement.loaded = true; 21 | 22 | var onclick = spec.onclick || null; 23 | try { onclick = eval(onclick); } catch (e) { onclick = null; } 24 | 25 | flipElement.object = new AppleInfoButton(flipElement, document.getElementById(spec.frontID), spec.foregroundStyle, spec.backgroundStyle, onclick); 26 | } 27 | 28 | return flipElement.object; 29 | } 30 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/Manifest.txt: -------------------------------------------------------------------------------- 1 | CHANGELOG.txt 2 | COPYING 3 | History.txt 4 | Manifest.txt 5 | README 6 | README.txt 7 | Rakefile 8 | TODO.txt 9 | facebooker.yml.tpl 10 | generators/publisher/publisher_generator.rb 11 | generators/publisher/templates/publisher.rb 12 | init.rb 13 | install.rb 14 | lib/facebooker/adapters/adapter_base.rb 15 | lib/facebooker/adapters/bebo_adapter.rb 16 | lib/facebooker/adapters/facebook_adapter.rb 17 | lib/facebooker/admin.rb 18 | lib/facebooker/batch_request.rb 19 | lib/facebooker/data.rb 20 | lib/facebooker/feed.rb 21 | lib/facebooker/model.rb 22 | lib/facebooker/models/affiliation.rb 23 | lib/facebooker/models/album.rb 24 | lib/facebooker/models/applicationproperties.rb 25 | lib/facebooker/models/cookie.rb 26 | lib/facebooker/models/education_info.rb 27 | lib/facebooker/models/event.rb 28 | lib/facebooker/models/friend_list.rb 29 | lib/facebooker/models/group.rb 30 | lib/facebooker/models/info_item.rb 31 | lib/facebooker/models/info_section.rb 32 | lib/facebooker/models/location.rb 33 | lib/facebooker/models/notifications.rb 34 | lib/facebooker/models/page.rb 35 | lib/facebooker/models/photo.rb 36 | lib/facebooker/models/tag.rb 37 | lib/facebooker/models/user.rb 38 | lib/facebooker/models/work_info.rb 39 | lib/facebooker/parser.rb 40 | lib/facebooker/rails/controller.rb 41 | lib/facebooker/rails/facebook_asset_path.rb 42 | lib/facebooker/rails/facebook_form_builder.rb 43 | lib/facebooker/rails/facebook_pretty_errors.rb 44 | lib/facebooker/rails/facebook_request_fix.rb 45 | lib/facebooker/rails/facebook_session_handling.rb 46 | lib/facebooker/rails/facebook_url_rewriting.rb 47 | lib/facebooker/rails/helpers.rb 48 | lib/facebooker/rails/profile_publisher_extensions.rb 49 | lib/facebooker/rails/publisher.rb 50 | lib/facebooker/rails/routing.rb 51 | lib/facebooker/rails/test_helpers.rb 52 | lib/facebooker/rails/utilities.rb 53 | lib/facebooker/server_cache.rb 54 | lib/facebooker/service.rb 55 | lib/facebooker/session.rb 56 | lib/facebooker/version.rb 57 | lib/facebooker.rb 58 | lib/net/http_multipart_post.rb 59 | lib/tasks/facebooker.rake 60 | lib/tasks/tunnel.rake 61 | setup.rb 62 | test/batch_request_test.rb 63 | test/event_test.rb 64 | test/facebook_admin_test.rb 65 | test/facebook_cache_test.rb 66 | test/facebook_data_test.rb 67 | test/facebooker_test.rb 68 | test/fixtures/multipart_post_body_with_only_parameters.txt 69 | test/fixtures/multipart_post_body_with_single_file.txt 70 | test/fixtures/multipart_post_body_with_single_file_that_has_nil_key.txt 71 | test/http_multipart_post_test.rb 72 | test/model_test.rb 73 | test/publisher_test.rb 74 | test/rails_integration_test.rb 75 | test/session_test.rb 76 | test/test_helper.rb 77 | test/user_test.rb 78 | -------------------------------------------------------------------------------- /arrows/Web Game/ArrowKeyControl.js: -------------------------------------------------------------------------------- 1 | function preference(key, value) { 2 | key = "akc-" + key; 3 | 4 | if(arguments.length == 2) { 5 | localStorage[key] = value; 6 | } 7 | else { 8 | return localStorage[key]; 9 | } 10 | } 11 | 12 | function showBack(event) { 13 | $("#username").value = preference('username'); 14 | $("#crypt").value = preference('crypt'); 15 | $("#netScoring").checked = preference('netScoring') != "false"; 16 | 17 | $("#front").style.display = "none"; 18 | $("#back").style.display = "block"; 19 | } 20 | 21 | function showFront(event) { 22 | $("#front").style.display = "block"; 23 | $("#back").style.display = "none"; 24 | 25 | preference('username', $("#username").value); 26 | preference('crypt', $("#crypt").value); 27 | preference('netScoring', $("#netScoring").checked ? "true" : "false"); 28 | } 29 | 30 | var $; 31 | var ajax = null; 32 | 33 | function uploadScore(score) { 34 | if(ajax == null) { 35 | ajax = new XMLHttpRequest(); 36 | ajax.overrideMimeType("text/plain"); 37 | } 38 | 39 | var ns = preference("netScoring"); 40 | if(ns == undefined || ns == "true") { 41 | ajax.onreadystatechange = function(http) { 42 | if((ajax.readyState == 4) && (ajax.responseText.length > 1)) { 43 | var parts = ajax.responseText.split("|"); 44 | if(parts[0] == "1") preference("netScoring", "false"); 45 | window.open(parts[1]); 46 | } 47 | }; 48 | 49 | ajax.open("GET", "http://akc.bloople.net/add/dashboard/10/" + preference("username") + "/" + preference("crypt") + "/" + score 50 | + "?" + Math.random()); 51 | ajax.send(" "); 52 | } 53 | } 54 | 55 | function randomCrypt(count) { 56 | var out = ""; 57 | var randChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; 58 | for(var i = 0; i < count; i++) out += randChars.charAt(Math.floor(Math.random() * randChars.length + 1) - 1); 59 | return out; 60 | } 61 | 62 | function initPreferences() { 63 | if((typeof preference('crypt')) == 'undefined' || (typeof preference('username')) == 'undefined') { 64 | preference('crypt', randomCrypt(20)); 65 | preference('username', 'Anonymous-' + randomCrypt(6)); 66 | } 67 | } 68 | 69 | function init() { 70 | $ = document.querySelector.bind(document); 71 | 72 | var engine = new Engine(uploadScore); 73 | 74 | window.addEventListener("keydown", function(event) { 75 | engine.onKeyDown(event); 76 | }) 77 | 78 | $("body").addEventListener("click", function(e) { 79 | if(e.target.matches(".play")) engine.start(); 80 | else if(e.target.matches("#settings")) showBack; 81 | else if(e.target.matches("#done")) showFront; 82 | }) 83 | 84 | initPreferences(); 85 | } 86 | 87 | document.addEventListener("DOMContentLoaded", init); -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/rails/routing.rb: -------------------------------------------------------------------------------- 1 | module Facebooker 2 | module Rails 3 | module Routing 4 | module RouteSetExtensions 5 | def self.included(base) 6 | base.alias_method_chain :extract_request_environment, :facebooker 7 | end 8 | 9 | def extract_request_environment_with_facebooker(request) 10 | env = extract_request_environment_without_facebooker(request) 11 | env.merge :canvas => (request.parameters[:fb_sig_in_canvas]=="1") 12 | end 13 | end 14 | module MapperExtensions 15 | 16 | # Generates pseudo-resource routes. Since everything is a POST, routes can't be identified 17 | # using HTTP verbs. Therefore, the action is appended to the beginning of each named route, 18 | # except for index. 19 | # 20 | # Example: 21 | # map.facebook_resources :profiles 22 | # 23 | # Generates the following routes: 24 | # 25 | # new_profile POST /profiles/new {:controller=>"profiles", :action=>"new"} 26 | # profiles POST /profiles/index {:controller=>"profiles", :action=>"index"} 27 | # show_profile POST /profiles/:id/show {:controller=>"profiles", :action=>"show"} 28 | # create_profile POST /profiles/create {:controller=>"profiles", :action=>"create"} 29 | # edit_profile POST /profiles/:id/edit {:controller=>"profiles", :action=>"edit"} 30 | # update_profile POST /profiles/:id/update {:controller=>"profiles", :action=>"update"} 31 | # destroy_profile POST /profiles/:id/destroy {:controller=>"profiles", :action=>"destroy"} 32 | # 33 | def facebook_resources(name_sym) 34 | name = name_sym.to_s 35 | 36 | with_options :controller => name, :conditions => { :method => :post } do |map| 37 | map.named_route("new_#{name.singularize}", "#{name}/new", :action => 'new') 38 | map.named_route(name, "#{name}/index", :action => 'index') 39 | map.named_route("show_#{name.singularize}", "#{name}/:id/show", :action => 'show', :id => /\d+/) 40 | map.named_route("create_#{name.singularize}", "#{name}/create", :action => 'create') 41 | map.named_route("edit_#{name.singularize}", "#{name}/:id/edit", :action => 'edit', :id => /\d+/) 42 | map.named_route("update_#{name.singularize}", "#{name}/:id/update", :action => 'update', :id => /\d+/) 43 | map.named_route("destroy_#{name.singularize}", "#{name}/:id/destroy", :action => 'destroy', :id => /\d+/) 44 | end 45 | end 46 | end 47 | end 48 | end 49 | end -------------------------------------------------------------------------------- /original/Dashboard Widget/KeyControl.wdgt/Parts/GlassButton.js: -------------------------------------------------------------------------------- 1 | /* 2 | © Copyright 2006-2007 Apple Inc. All rights reserved. 3 | 4 | IMPORTANT: This Apple software ("Apple Software") is supplied to you in consideration of your agreement to the following terms. Your use, installation and/or redistribution of this Apple Software constitutes acceptance of these terms. If you do not agree with these terms, please do not use, install, or redistribute this Apple Software. 5 | 6 | Provided you comply with all of the following terms, Apple grants you a personal, non-exclusive license, under Apple’s copyrights in the Apple Software, to use, reproduce, and redistribute the Apple Software for the sole purpose of creating Dashboard widgets for Mac OS X. If you redistribute the Apple Software, you must retain this entire notice in all such redistributions. 7 | 8 | You may not use the name, trademarks, service marks or logos of Apple to endorse or promote products that include the Apple Software without the prior written permission of Apple. Except as expressly stated in this notice, no other rights or licenses, express or implied, are granted by Apple herein, including but not limited to any patent rights that may be infringed by your products that incorporate the Apple Software or by other works in which the Apple Software may be incorporated. 9 | 10 | The Apple Software is provided on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS. 11 | 12 | IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 13 | */ 14 | 15 | function CreateGlassButton(buttonID, spec) 16 | { 17 | var buttonElement = document.getElementById(buttonID); 18 | 19 | if (!buttonElement.loaded) { 20 | buttonElement.loaded = true; 21 | 22 | var text = spec.text || ''; 23 | if (window.getLocalizedString) text = getLocalizedString(text); 24 | 25 | var onclick = spec.onclick || null; 26 | try { onclick = eval(onclick); } catch (e) { onclick = null; } 27 | 28 | buttonElement.object = new AppleGlassButton(buttonElement, text, onclick); 29 | buttonElement.object.setEnabled(!spec.disabled); 30 | } 31 | 32 | return buttonElement.object; 33 | } 34 | -------------------------------------------------------------------------------- /arrows/Dashboard Widget/ArrowKeyControl.wdgtproj/project/widget.wdgt/Parts/parts.js: -------------------------------------------------------------------------------- 1 | /* 2 | This file was generated by Dashcode and is covered by the 3 | license.txt included in the project. You may edit this file, 4 | however it is recommended to first turn off the Dashcode 5 | code generator otherwise the changes will be lost. This file 6 | is for files included by Dashcode directly. It will be replaced 7 | with an optimized version at deploy time. 8 | */ 9 | var dashcodePartSupport = { 10 | "core": ["Parts/core/utilities.js", "Parts/core/core/base.js", "Parts/core/core/array-additions.js", "Parts/core/core/array-additions-ie.js", "Parts/core/core/set.js", "Parts/core/core/oop.js", "Parts/core/core/function-additions.js", "Parts/core/core/object-additions.js", "Parts/core/core/regex-additions.js", "Parts/core/core/local.js", "Parts/core/core/Error.js", "Parts/core/core/kvo.js", "Parts/core/core/Bindable.js", "Parts/core/core/SortDescriptor.js", "Parts/core/core/transformers.js", "Parts/core/core/Binding.js", "Parts/core/core/kvo-array.js", "Parts/core/core/kvo-array-operators.js", "Parts/core/core/model.js", "Parts/core/core/string-additions.js", "Parts/core/net/Deferred.js", "Parts/core/net/XHR.js", "Parts/core/controllers/Controller.js", "Parts/core/controllers/SelectionProxy.js", "Parts/core/controllers/ObjectController.js", "Parts/core/controllers/ArrayController.js", "Parts/core/controllers/AjaxController.js", "Parts/core/controllers/ModeledXMLProxy.js", "Parts/core/dom/element.js", "Parts/core/dom/event.js", "Parts/core/dom/element-ie.js", "Parts/core/dom/event-ie.js", "Parts/core/views/view-parts.js", "Parts/core/views/view-core.js", "Parts/core/views/Responder.js", "Parts/core/views/View.js", "Parts/core/views/ViewController.js", "Parts/core/views/ImageView.js", "Parts/core/views/ImageLayout.js", "Parts/core/views/DashcodePart.js", "Parts/core/views/FormControl.js", "Parts/core/views/TextField.js", "Parts/core/views/ListView.js", "Parts/core/views/SelectField.js", "Parts/core/views/ToggleButton.js", "Parts/core/views/SearchField.js", "Parts/core/views/Slider.js", "Parts/core/views/EventLoop.js", "Parts/core/views/Page.js", "Parts/core/views/Media.js", "Parts/core/views/Video.js", "Parts/core/views/VideoLayout.js", "Parts/core/views/VideoLegacy.js"], 11 | "scripts": ["Parts/setup.js", "Parts/datasources.js", "Parts/GlassButton.js", "Parts/InfoButton.js", "Parts/Button.js"] 12 | }; 13 | 14 | (function() { 15 | var scripts = dashcodePartSupport['core']; 16 | 17 | scripts = scripts.concat(dashcodePartSupport['scripts']); 18 | 19 | for(var index in scripts) { 20 | var path = scripts[index]; 21 | var scriptTag = ''; 22 | 23 | document.write( scriptTag ); 24 | } 25 | 26 | })(); 27 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/test/model_test.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/test_helper.rb' 2 | require 'rubygems' 3 | require 'flexmock/test_unit' 4 | 5 | class TestFacebooker < Test::Unit::TestCase 6 | 7 | class ComplexThing 8 | include Facebooker::Model 9 | attr_accessor :weight, :height 10 | end 11 | 12 | class Thing 13 | include Facebooker::Model 14 | attr_accessor :name, :job 15 | hash_settable_accessor :complex_thing, ComplexThing 16 | hash_settable_list_accessor :list_of_complex_things, ComplexThing 17 | end 18 | 19 | class PopulatingThing 20 | include Facebooker::Model 21 | populating_attr_accessor :first_name 22 | end 23 | 24 | def test_can_instantiate_an_object_with_a_hash 25 | h = {:name => "Blob", :job => "Monster"} 26 | assert_equal("Blob", Thing.from_hash(h).name) 27 | end 28 | 29 | def test_if_no_hash_is_given_to_model_constructor_no_attributes_are_set 30 | assert_nothing_raised { 31 | t = Thing.new 32 | assert_nil(t.name) 33 | } 34 | end 35 | 36 | def test_can_declare_hash_settable_attributes 37 | t = Thing.new({}) 38 | t.complex_thing = {:weight => 123, :height => 5.4} 39 | assert_equal(123, t.complex_thing.weight) 40 | t.complex_thing = ComplexThing.new(:weight => 321) 41 | assert_equal(321, t.complex_thing.weight) 42 | end 43 | 44 | def test_can_declare_attributes_which_are_settable_via_a_list_of_hashes 45 | t = Thing.new 46 | t.list_of_complex_things = [{:weight => 444, :height => 123.0}, {:weight => 222, :height => 321.1}] 47 | assert_equal("123.0, 321.1", t.list_of_complex_things.map{|ct| ct.height.to_s}.sort.join(', ')) 48 | t.list_of_complex_things = [ComplexThing.new(:weight => 555), ComplexThing.new(:weight => 111)] 49 | assert_equal("111, 555", t.list_of_complex_things.map{|ct| ct.weight.to_s}.sort.join(', ')) 50 | end 51 | 52 | def test_if_you_try_to_use_a_models_session_without_initializing_it_first_you_get_a_descriptive_error 53 | t = Thing.new 54 | assert_raises(Facebooker::Model::UnboundSessionException) { 55 | t.session 56 | } 57 | end 58 | 59 | def test_populating_reader_will_call_populate_if_model_was_not_previously_populated 60 | t = PopulatingThing.new 61 | flexmock(t).should_receive(:populate).once 62 | t.first_name 63 | end 64 | 65 | def test_populating_reader_will_not_call_populate_if_model_was_previously_populated 66 | t = PopulatingThing.new 67 | flexmock(t).should_receive(:populated?).and_return(true) 68 | flexmock(t).should_receive(:populate).never 69 | t.first_name 70 | end 71 | 72 | def test_attempting_to_access_a_populating_reader_will_raise_an_exception_if_populate_was_not_defined 73 | t = PopulatingThing.new 74 | assert_raises(NotImplementedError) { 75 | t.first_name 76 | } 77 | end 78 | end 79 | 80 | -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/feed.rb: -------------------------------------------------------------------------------- 1 | module Facebooker 2 | module Feed 3 | METHODS = {'Action' => 'facebook.feed.publishActionOfUser', 'Story' => 'facebook.feed.publishStoryToUser', 4 | 'TemplatizedAction' => 'facebook.feed.publishTemplatizedAction' } 5 | 6 | class ActionBase 7 | 1.upto(4) do |num| 8 | attr_accessor "image_#{num}" 9 | attr_accessor "image_#{num}_link" 10 | end 11 | 12 | def add_image(image,link=nil) 13 | 1.upto(4) do |num| 14 | if send("image_#{num}").blank? 15 | send("image_#{num}=",image) 16 | send("image_#{num}_link=",link) unless link.nil? 17 | return num 18 | end 19 | end 20 | end 21 | 22 | 23 | protected 24 | def image_params 25 | image_hash = {} 26 | 1.upto(4) do |num| 27 | image_attribute = "image_#{num}" 28 | image_link_attribute = image_attribute + "_link" 29 | self.__send__(image_attribute) ? image_hash[image_attribute] = self.__send__(image_attribute) : nil 30 | self.__send__(image_link_attribute) ? image_hash[image_link_attribute] = self.__send__(image_link_attribute) : nil 31 | end 32 | image_hash 33 | end 34 | end 35 | 36 | ## 37 | # Representation of a templatized action to be published into a user's news feed 38 | class TemplatizedAction < ActionBase 39 | attr_accessor :page_actor_id, :title_template, :title_data, :body_template, :body_data, :body_general, :target_ids 40 | 41 | def to_params 42 | raise "Must set title_template" if self.title_template.nil? 43 | { :page_actor_id => page_actor_id, 44 | :title_template => title_template, 45 | :title_data => convert_json(title_data), 46 | :body_template => body_template, 47 | :body_data => convert_json(body_data), 48 | :body_general => body_general, 49 | :target_ids => target_ids }.merge image_params 50 | end 51 | 52 | def convert_json(hash_or_string) 53 | (hash_or_string.is_a?(Hash) and hash_or_string.respond_to?(:to_json)) ? hash_or_string.to_json : hash_or_string 54 | end 55 | end 56 | 57 | ## 58 | # Representation of a story to be published into a user's news feed. 59 | class Story < ActionBase 60 | attr_accessor :title, :body 61 | 62 | ## 63 | # Converts Story to a Hash of its attributes for use as parameters to Facebook REST API calls 64 | def to_params 65 | raise "Must set title before converting" if self.title.nil? 66 | { :title => title, :body => body }.merge image_params 67 | end 68 | 69 | end 70 | Action = Story.dup 71 | def Action.name 72 | "Action" 73 | end 74 | ## 75 | # Representation of an action to be published into a user's news feed. Alias for Story. 76 | class Action; end 77 | end 78 | end -------------------------------------------------------------------------------- /arrows/Facebook Application/vendor/plugins/facebooker/lib/facebooker/rails/test_helpers.rb: -------------------------------------------------------------------------------- 1 | module Facebooker 2 | module Rails 3 | module TestHelpers 4 | def assert_facebook_redirect_to(url) 5 | assert_response :success 6 | assert_not_nil facebook_redirect_url 7 | assert_equal url, facebook_redirect_url 8 | end 9 | 10 | def follow_facebook_redirect! 11 | facebook_post facebook_redirect_url 12 | end 13 | 14 | def facebook_get(path,params={}) 15 | facebook_verb(:get,path,params) 16 | end 17 | 18 | def facebook_post(path,params={}) 19 | facebook_verb(:post,path,params) 20 | end 21 | 22 | def facebook_put(path,params={}) 23 | facebook_verb(:put,path,params) 24 | end 25 | def facebook_delete(path,params={}) 26 | facebook_verb(:delete,path,params) 27 | end 28 | 29 | def facebook_verb(verb,path, params={}) 30 | params = default_facebook_parameters.update(params) 31 | params.merge!(:fb_sig => generate_signature(facebook_params(params).stringify_keys)) 32 | 33 | params = params.update(:canvas => true).update(params) 34 | send verb, path, params 35 | end 36 | 37 | def facebook_post(path, params={}, fb_params=facebook_parameters) 38 | params = fb_params.merge(:canvas => true).merge(params) 39 | post path, params 40 | end 41 | 42 | def facebook_parameters(overrides=nil) 43 | overrides ||= {} 44 | params = default_facebook_parameters.merge(overrides) 45 | params.merge(:fb_sig => generate_signature(params.stringify_keys)) 46 | end 47 | 48 | private 49 | 50 | def default_facebook_parameters 51 | { 52 | :fb_sig_added => "1", 53 | :fb_sig_session_key => "facebook_session_key", 54 | :fb_sig_user => "1234", 55 | :fb_sig_expires => "0", 56 | :fb_sig_in_canvas => "1", 57 | :fb_sig_time => Time.now.to_f 58 | } 59 | end 60 | 61 | def facebook_params(params) 62 | params.inject({}) do |fb_params, pair| 63 | unless pair.first.to_s.match(/^fb_sig_/).nil? 64 | fb_params[pair.first] = pair.last 65 | end 66 | fb_params 67 | end 68 | end 69 | 70 | def facebook_redirect_url 71 | match = @response.body.match(/