Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Gut the old IPC::PubSub implementation

  • Loading branch information...
commit e4d6512b6c71d699857ed7ab45005b1018879956 1 parent 5bb7543
@alexmv alexmv authored
Showing with 11 additions and 3,568 deletions.
  1. +0 −38 MANIFEST
  2. +0 −1  Makefile.PL
  3. +0 −15 doc/pubsub/backend_message_types
  4. +0 −83 doc/pubsub/subscriptions
  5. +0 −1,744 doc/pubsub/system_architecture.graffle
  6. BIN  doc/pubsub/system_architecture.png
  7. +0 −6 examples/Chat/Makefile.PL
  8. +0 −15 examples/Chat/bin/jifty
  9. +0 −37 examples/Chat/etc/config.yml
  10. +0 −18 examples/Chat/lib/Chat/Action/Send.pm
  11. +0 −6 examples/Chat/lib/Chat/Event/Message.pm
  12. +0 −31 examples/Chat/lib/Chat/View.pm
  13. +0 −19 examples/Chat/t/00compile.t
  14. +0 −13 examples/Chat/t/01startup.t
  15. +0 −6 examples/Clock/Makefile.PL
  16. +0 −15 examples/Clock/bin/jifty
  17. +0 −21 examples/Clock/clockserv.pl
  18. +0 −37 examples/Clock/etc/config.yml
  19. +0 −15 examples/Clock/lib/Clock/Event/Tick.pm
  20. +0 −4 examples/Clock/share/web/templates/fragments/time
  21. +0 −36 examples/Clock/share/web/templates/index.html
  22. +0 −3  examples/Doxory/etc/config.yml
  23. +0 −3  examples/HelloKitty/etc/config.yml
  24. +0 −3  examples/MyWeblog/etc/config.yml
  25. +0 −7 examples/Ping/Makefile.PL
  26. +0 −15 examples/Ping/bin/jifty
  27. +0 −40 examples/Ping/etc/config.yml
  28. +0 −51 examples/Ping/lib/Ping/Action/AddPing.pm
  29. +0 −28 examples/Ping/lib/Ping/Action/CancelPing.pm
  30. +0 −25 examples/Ping/lib/Ping/Event/Pong.pm
  31. +0 −25 examples/Ping/lib/Ping/PingServer.pm
  32. +0 −23 examples/Ping/share/web/templates/fragments/pong
  33. +0 −49 examples/Ping/share/web/templates/index.html
  34. +0 −22 examples/Ping/t/00compile.t
  35. +0 −13 examples/Ping/t/01startup.t
  36. +0 −3  examples/ShrinkURL/etc/config.yml
  37. +0 −3  examples/Yada/etc/config.yml
  38. +2 −55 lib/Jifty.pm
  39. +0 −37 lib/Jifty/Action/Record.pm
  40. +0 −6 lib/Jifty/Action/Record/Create.pm
  41. +0 −6 lib/Jifty/Action/Record/Delete.pm
  42. +0 −6 lib/Jifty/Action/Record/Update.pm
  43. +5 −35 lib/Jifty/ClassLoader.pm
  44. +0 −4 lib/Jifty/Config.pm
  45. +0 −142 lib/Jifty/Event.pm
  46. +0 −45 lib/Jifty/Event/Log.pm
  47. +0 −52 lib/Jifty/Event/Model.pm
  48. +0 −3  lib/Jifty/Everything.pm
  49. +0 −67 lib/Jifty/Logger/EventAppender.pm
  50. +1 −7 lib/Jifty/Plugin/ViewDeclarePage/Page.pm
  51. +0 −2  lib/Jifty/Schema.pm
  52. +0 −8 lib/Jifty/Script/Schema.pm
  53. +0 −237 lib/Jifty/Subs.pm
  54. +0 −122 lib/Jifty/Subs/Render.pm
  55. +0 −7 lib/Jifty/Test.pm
  56. +2 −0  lib/Jifty/Upgrade/Internal.pm
  57. +0 −53 lib/Jifty/View/Declare/CoreTemplates.pm
  58. +1 −8 lib/Jifty/View/Declare/Page.pm
  59. +0 −1  lib/Jifty/Web.pm
  60. +0 −78 share/web/static/js/jifty_subs.js
  61. +0 −60 share/web/templates/=/subs
  62. +0 −3  share/web/templates/_elements/wrapper
  63. +0 −3  t/TestApp-Collection-Select/etc/config.yml
  64. +0 −3  t/TestApp-Dispatcher/etc/config.yml
  65. +0 −3  t/TestApp-JiftyJS/etc/config.yml
  66. +0 −3  t/TestApp-Mason/etc/config.yml
  67. +0 −3  t/TestApp-Notifications/etc/config.yml
  68. +0 −3  t/TestApp-Plugin-ActorMetadata/etc/config.yml
  69. +0 −3  t/TestApp-Plugin-AppPluginHasModels/etc/config.yml
  70. +0 −3  t/TestApp-Plugin-CompressedCSSandJS/etc/config.yml
  71. +0 −3  t/TestApp-Plugin-News/etc/config.yml
  72. +0 −3  t/TestApp-Plugin-OnClick/etc/config.yml
  73. +0 −3  t/TestApp-Plugin-PasswordAuth/etc/config.yml
  74. +0 −3  t/TestApp-Plugin-SinglePage/etc/config.yml
  75. +0 −3  t/TestApp-Regions/etc/config.yml
  76. +0 −3  t/TestApp-RestartServer/etc/config.yml
  77. +0 −3  t/TestApp-Template-Declare/etc/config.yml
  78. +0 −3  t/TestApp-Uploads/etc/config.yml
  79. +0 −3  t/TestApp/share/web/templates/_elements/wrapper
View
38 MANIFEST
@@ -65,27 +65,8 @@ doc/packaging
doc/plugin-requirements
doc/plugin-syntax
doc/plugins-restated-assumptions
-doc/pubsub/backend_message_types
-doc/pubsub/subscriptions
-doc/pubsub/system_architecture.graffle
-doc/pubsub/system_architecture.png
etc/config.yml
etc/site_config.yml
-examples/Chat/bin/jifty
-examples/Chat/etc/config.yml
-examples/Chat/lib/Chat/Action/Send.pm
-examples/Chat/lib/Chat/Event/Message.pm
-examples/Chat/lib/Chat/View.pm
-examples/Chat/Makefile.PL
-examples/Chat/t/00compile.t
-examples/Chat/t/01startup.t
-examples/Clock/bin/jifty
-examples/Clock/clockserv.pl
-examples/Clock/etc/config.yml
-examples/Clock/lib/Clock/Event/Tick.pm
-examples/Clock/Makefile.PL
-examples/Clock/share/web/templates/fragments/time
-examples/Clock/share/web/templates/index.html
examples/Doxory/bin/jifty
examples/Doxory/etc/config.yml
examples/Doxory/lib/Doxory/Dispatcher.pm
@@ -110,17 +91,6 @@ examples/MyWeblog/share/web/templates/fragments/page_of_posts
examples/MyWeblog/share/web/templates/index.html
examples/MyWeblog/share/web/templates/post
examples/MyWeblog/t/00-model-Post.t
-examples/Ping/bin/jifty
-examples/Ping/etc/config.yml
-examples/Ping/lib/Ping/Action/AddPing.pm
-examples/Ping/lib/Ping/Action/CancelPing.pm
-examples/Ping/lib/Ping/Event/Pong.pm
-examples/Ping/lib/Ping/PingServer.pm
-examples/Ping/Makefile.PL
-examples/Ping/share/web/templates/fragments/pong
-examples/Ping/share/web/templates/index.html
-examples/Ping/t/00compile.t
-examples/Ping/t/01startup.t
examples/ShrinkURL/bin/jifty
examples/ShrinkURL/etc/config.yml
examples/ShrinkURL/lib/ShrinkURL/Action/CreateShrunkenURL.pm
@@ -182,9 +152,6 @@ lib/Jifty/Continuation.pm
lib/Jifty/CurrentUser.pm
lib/Jifty/DateTime.pm
lib/Jifty/Dispatcher.pm
-lib/Jifty/Event.pm
-lib/Jifty/Event/Log.pm
-lib/Jifty/Event/Model.pm
lib/Jifty/Everything.pm
lib/Jifty/Filter/DateTime.pm
lib/Jifty/Filter/JSON.pm
@@ -194,7 +161,6 @@ lib/Jifty/I18N.pm
lib/Jifty/JSON.pm
lib/Jifty/LetMe.pm
lib/Jifty/Logger.pm
-lib/Jifty/Logger/EventAppender.pm
lib/Jifty/Manual.pm
lib/Jifty/Manual/AccessControl.pod
lib/Jifty/Manual/AccessControl_zhtw.pod
@@ -318,8 +284,6 @@ lib/Jifty/Script/Schema.pm
lib/Jifty/Script/Script.pm
lib/Jifty/Script/Server.pm
lib/Jifty/Script/WriteCCJS.pm
-lib/Jifty/Subs.pm
-lib/Jifty/Subs/Render.pm
lib/Jifty/Test.pm
lib/Jifty/Test/Dist.pm
lib/Jifty/Test/Email.pm
@@ -521,7 +485,6 @@ share/web/static/js/iutil.js
share/web/static/js/jifty.js
share/web/static/js/jifty_interface.js
share/web/static/js/jifty_smoothscroll.js
-share/web/static/js/jifty_subs.js
share/web/static/js/jifty_utils.js
share/web/static/js/jquery-1.4.1.js
share/web/static/js/jquery.ajaxQueue.js
@@ -547,7 +510,6 @@ share/web/static/js/yui/menu.js
share/web/static/js/yui/oom_select.patch
share/web/static/js/yui/tabview.js
share/web/static/js/yui/yahoo.js
-share/web/templates/=/subs
share/web/templates/__jifty/autocomplete.xml
share/web/templates/__jifty/empty
share/web/templates/__jifty/error/_elements/error_text
View
1  Makefile.PL
@@ -52,7 +52,6 @@ requires('HTTP::Date');
requires('Hash::Merge', '0.12');
requires('Hash::MultiValue', 0.05);
requires('IO::Handle::Util');
-requires('IPC::PubSub' => '0.23' );
requires('IPC::Run3');
requires('Jifty::DBI' => '0.68' ); # Jifty::DBI::Collection Jifty::DBI::Handle Jifty::DBI::Record::Cachable Jifty::DBI::SchemaGenerator
requires('JSON' => 2.17);
View
15 doc/pubsub/backend_message_types
@@ -1,15 +0,0 @@
-Payload Types:
-
-ClientAction --> Republisher
- #subscription
- - Add Subscription (IP)
- - Remove Subscription (IP)
-
-Republisher --> ClientRender
- #pong-$IP
- - Pong (IP, IS_ALIVE)
-
-Server --> Republisher
- #pong
- - Pong (IP, IS_ALIVE)
-
View
83 doc/pubsub/subscriptions
@@ -1,83 +0,0 @@
-Subscriptions we want to support
-
-
-
- Create,Read,Update,Delete
-
- Class: MyApp::Record::Foo
-
-
-
-For hiveminder: NEWS
-
- * on every page, we have a little box with the 3 most recent news entries:
-
- <h2>News</h2>
- <%perl>
- my $sub = Jifty::ClientSubscription->new(
- query_class => 'BTDT::Model::News',
- query => ['id_not' => undef],
- # Ordering?
- on_add => [
- { render_with => '/fragments/news/item',
- render => after => 'news.entries.last_child'
- },
- { # how do we remove something if there are more than 3?
- }
-
- ]);
-
-
-For hiveminder:
-
- My page is:
-
- list of: tasks matching 'owner me, complete is not true'
- each item is rendered as '/fragments/tasklist/view, with args %ARGS and record => $found
-
-
- Subscribe to:
-
- * creation of things that match 'owner me, complete is not true'
- * update, delete to anything that matches 'owner me, complete is not true' after the changes
- * update, delete to anything that matches 'owner me, complete is not true' before the changes
-
-
-
- "Render this component as":
-
- wrapper
- list of items matching the subscription 'owner me, complete is not true'
- render each item with '/fragments/tasklist/view', args => %ARGS, item $found
-
-
- my $subscription = Jifty::ClientSubscription->new(
- on_add => {
- args => \%ARGS,
- render_with => '/fragments/tasklist/view',
- render => after => '.parent.last_child'
- # before, after, replacing
-
- },
- on_remove => {
- args => \%ARGS,
- render => replacing => 'self'
- render_with => '/fragments/tasklist/fade_away'
- },
- query_class => 'BTDT::Model::Task',
- query => [ owner => 'me', complete_not => 'true' ]
- );
-
-
-# Session::ClientSide-ish encoding of SIDs to subscribe
-# Each request carries IDs of its existing subs (stashed into ->subs)
-my $sid = Jifty->subs->add(
- query_class => 'Ping',
- query => [ host => '127.0.0.1' ],
- render_with => '/fragments/pong',
-);
-Jifty->subs->cancel($sid);
-
-# This actually just calls the fragments with Publisher-msg structures as %ARGS
-# Print-on-void-context, return-on-other-contexts
-Jifty->subs->render;
View
1,744 doc/pubsub/system_architecture.graffle
@@ -1,1744 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>ActiveLayerIndex</key>
- <integer>0</integer>
- <key>AutoAdjust</key>
- <true/>
- <key>CanvasColor</key>
- <dict>
- <key>w</key>
- <string>1</string>
- </dict>
- <key>CanvasOrigin</key>
- <string>{0, 0}</string>
- <key>CanvasScale</key>
- <real>1</real>
- <key>ColumnAlign</key>
- <integer>1</integer>
- <key>ColumnSpacing</key>
- <real>36</real>
- <key>CreationDate</key>
- <string>2006-10-24 12:01:34 -0700</string>
- <key>Creator</key>
- <string>Jesse Vincent</string>
- <key>DisplayScale</key>
- <string>1 in = 1 in</string>
- <key>GraphDocumentVersion</key>
- <integer>5</integer>
- <key>GraphicsList</key>
- <array>
- <dict>
- <key>Bounds</key>
- <string>{{756, 39.835}, {211, 137}}</string>
- <key>Class</key>
- <string>ShapedGraphic</string>
- <key>ID</key>
- <integer>82</integer>
- <key>Shape</key>
- <string>Rectangle</string>
- <key>Text</key>
- <dict>
- <key>Text</key>
- <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
-{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\fs24 \cf0 Jifty Push System Architecture.\
-A. Tang and J. Vincent - \
-October 2006}</string>
- </dict>
- </dict>
- <dict>
- <key>Bounds</key>
- <string>{{330.451, 150.979}, {256, 14}}</string>
- <key>Class</key>
- <string>ShapedGraphic</string>
- <key>FitText</key>
- <string>YES</string>
- <key>FontInfo</key>
- <dict>
- <key>Color</key>
- <dict>
- <key>w</key>
- <string>0</string>
- </dict>
- <key>Font</key>
- <string>Helvetica</string>
- <key>Size</key>
- <real>12</real>
- </dict>
- <key>ID</key>
- <integer>80</integer>
- <key>Line</key>
- <dict>
- <key>ID</key>
- <integer>24</integer>
- <key>Position</key>
- <real>0.62390816211700439</real>
- <key>RotationType</key>
- <integer>0</integer>
- </dict>
- <key>Shape</key>
- <string>Rectangle</string>
- <key>Style</key>
- <dict>
- <key>shadow</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- <key>stroke</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- </dict>
- <key>Text</key>
- <dict>
- <key>Text</key>
- <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
-{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\fs24 \cf0 (With a kill-me-when-republish-to-nobody flag)}</string>
- </dict>
- </dict>
- <dict>
- <key>Class</key>
- <string>LineGraphic</string>
- <key>ID</key>
- <integer>78</integer>
- <key>Points</key>
- <array>
- <string>{822.47, 460.7}</string>
- <string>{822.329, 431.61}</string>
- </array>
- <key>Style</key>
- <dict>
- <key>stroke</key>
- <dict>
- <key>HeadArrow</key>
- <string>FilledArrow</string>
- <key>Pattern</key>
- <integer>2</integer>
- <key>TailArrow</key>
- <string>0</string>
- </dict>
- </dict>
- <key>Tail</key>
- <dict>
- <key>ID</key>
- <integer>77</integer>
- </dict>
- </dict>
- <dict>
- <key>Bounds</key>
- <string>{{748.211, 461.2}, {149, 97.8}}</string>
- <key>Class</key>
- <string>ShapedGraphic</string>
- <key>ID</key>
- <integer>77</integer>
- <key>Shape</key>
- <string>Rectangle</string>
- <key>Style</key>
- <dict>
- <key>stroke</key>
- <dict>
- <key>Pattern</key>
- <integer>2</integer>
- </dict>
- </dict>
- <key>Text</key>
- <dict>
- <key>Text</key>
- <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
-{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\fs24 \cf0 Publish unsubscription from 'ping' events \
-($SUB into $DEL-SUBS)\
-\
-(May also happen \
-upon session GC)}</string>
- </dict>
- </dict>
- <dict>
- <key>Bounds</key>
- <string>{{45.4648, 366.851}, {907.535, 54}}</string>
- <key>Class</key>
- <string>ShapedGraphic</string>
- <key>FontInfo</key>
- <dict>
- <key>Color</key>
- <dict>
- <key>w</key>
- <string>0</string>
- </dict>
- <key>Font</key>
- <string>Helvetica</string>
- <key>NSKern</key>
- <real>0.0</real>
- <key>Size</key>
- <real>12</real>
- </dict>
- <key>ID</key>
- <integer>1</integer>
- <key>Shape</key>
- <string>Rectangle</string>
- <key>Style</key>
- <dict>
- <key>fill</key>
- <dict>
- <key>GradientColor</key>
- <dict>
- <key>w</key>
- <string>0.666667</string>
- </dict>
- </dict>
- </dict>
- <key>Text</key>
- <dict>
- <key>Text</key>
- <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
-{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\fs24 \cf0 Message Bus}</string>
- </dict>
- </dict>
- <dict>
- <key>Bounds</key>
- <string>{{241.567, 505}, {149, 54}}</string>
- <key>Class</key>
- <string>ShapedGraphic</string>
- <key>ID</key>
- <integer>75</integer>
- <key>Shape</key>
- <string>Rectangle</string>
- <key>Text</key>
- <dict>
- <key>Text</key>
- <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
-{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\fs24 \cf0 Publish subscription to 'ping' events \
-($SUB into $ADD-SUBS)}</string>
- </dict>
- </dict>
- <dict>
- <key>Bounds</key>
- <string>{{105, 505}, {133, 54}}</string>
- <key>Class</key>
- <string>ShapedGraphic</string>
- <key>ID</key>
- <integer>74</integer>
- <key>Shape</key>
- <string>Rectangle</string>
- <key>Text</key>
- <dict>
- <key>Text</key>
- <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
-{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\fs24 \cf0 Start ping server}</string>
- </dict>
- </dict>
- <dict>
- <key>Bounds</key>
- <string>{{398.5, 285.356}, {49, 28}}</string>
- <key>Class</key>
- <string>ShapedGraphic</string>
- <key>FitText</key>
- <string>YES</string>
- <key>FontInfo</key>
- <dict>
- <key>Color</key>
- <dict>
- <key>w</key>
- <string>0</string>
- </dict>
- <key>Font</key>
- <string>Helvetica</string>
- <key>Size</key>
- <real>12</real>
- </dict>
- <key>ID</key>
- <integer>72</integer>
- <key>Line</key>
- <dict>
- <key>ID</key>
- <integer>71</integer>
- <key>Position</key>
- <real>0.51288449764251709</real>
- <key>RotationType</key>
- <integer>0</integer>
- </dict>
- <key>Shape</key>
- <string>Rectangle</string>
- <key>Style</key>
- <dict>
- <key>shadow</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- <key>stroke</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- </dict>
- <key>Text</key>
- <dict>
- <key>Text</key>
- <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
-{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\fs24 \cf0 Send\
-[$SUB]}</string>
- </dict>
- </dict>
- <dict>
- <key>Class</key>
- <string>LineGraphic</string>
- <key>ID</key>
- <integer>71</integer>
- <key>Points</key>
- <array>
- <string>{423, 349.516}</string>
- <string>{423, 251.716}</string>
- </array>
- <key>Style</key>
- <dict>
- <key>stroke</key>
- <dict>
- <key>HeadArrow</key>
- <string>FilledArrow</string>
- <key>TailArrow</key>
- <string>0</string>
- </dict>
- </dict>
- </dict>
- <dict>
- <key>Bounds</key>
- <string>{{784.411, 610.503}, {77, 42}}</string>
- <key>Class</key>
- <string>ShapedGraphic</string>
- <key>FitText</key>
- <string>YES</string>
- <key>FontInfo</key>
- <dict>
- <key>Color</key>
- <dict>
- <key>w</key>
- <string>0</string>
- </dict>
- <key>Font</key>
- <string>Helvetica</string>
- <key>Size</key>
- <real>12</real>
- </dict>
- <key>ID</key>
- <integer>69</integer>
- <key>Line</key>
- <dict>
- <key>ID</key>
- <integer>68</integer>
- <key>Position</key>
- <real>0.42627021670341492</real>
- <key>RotationType</key>
- <integer>0</integer>
- </dict>
- <key>Shape</key>
- <string>Rectangle</string>
- <key>Style</key>
- <dict>
- <key>shadow</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- <key>stroke</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- </dict>
- <key>Text</key>
- <dict>
- <key>Text</key>
- <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
-{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\fs24 \cf0 Jifty::Action:\
-Unsubscribe\
-Action::Ping}</string>
- </dict>
- </dict>
- <dict>
- <key>Class</key>
- <string>LineGraphic</string>
- <key>Head</key>
- <dict>
- <key>ID</key>
- <integer>77</integer>
- </dict>
- <key>ID</key>
- <integer>68</integer>
- <key>Points</key>
- <array>
- <string>{823, 685}</string>
- <string>{822.792, 559.5}</string>
- </array>
- <key>Style</key>
- <dict>
- <key>stroke</key>
- <dict>
- <key>HeadArrow</key>
- <string>FilledArrow</string>
- <key>Pattern</key>
- <integer>2</integer>
- <key>TailArrow</key>
- <string>0</string>
- </dict>
- </dict>
- </dict>
- <dict>
- <key>Bounds</key>
- <string>{{323.771, 263.402}, {83, 28}}</string>
- <key>Class</key>
- <string>ShapedGraphic</string>
- <key>FitText</key>
- <string>YES</string>
- <key>FontInfo</key>
- <dict>
- <key>Color</key>
- <dict>
- <key>w</key>
- <string>0</string>
- </dict>
- <key>Font</key>
- <string>Helvetica</string>
- <key>Size</key>
- <real>12</real>
- </dict>
- <key>ID</key>
- <integer>62</integer>
- <key>Line</key>
- <dict>
- <key>ID</key>
- <integer>61</integer>
- <key>Position</key>
- <real>0.27589595317840576</real>
- <key>RotationType</key>
- <integer>0</integer>
- </dict>
- <key>Shape</key>
- <string>Rectangle</string>
- <key>Style</key>
- <dict>
- <key>shadow</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- <key>stroke</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- </dict>
- <key>Text</key>
- <dict>
- <key>Text</key>
- <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
-{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\fs24 \cf0 Poll\
-$ADD-SUBS }</string>
- </dict>
- </dict>
- <dict>
- <key>Class</key>
- <string>LineGraphic</string>
- <key>ID</key>
- <integer>61</integer>
- <key>Points</key>
- <array>
- <string>{364.995, 247.455}</string>
- <string>{365.995, 356}</string>
- </array>
- <key>Style</key>
- <dict>
- <key>stroke</key>
- <dict>
- <key>HeadArrow</key>
- <string>FilledArrow</string>
- <key>TailArrow</key>
- <string>0</string>
- </dict>
- </dict>
- </dict>
- <dict>
- <key>Bounds</key>
- <string>{{982.555, 751.48}, {61, 14}}</string>
- <key>Class</key>
- <string>ShapedGraphic</string>
- <key>FitText</key>
- <string>YES</string>
- <key>FontInfo</key>
- <dict>
- <key>Color</key>
- <dict>
- <key>w</key>
- <string>0</string>
- </dict>
- <key>Font</key>
- <string>Helvetica</string>
- <key>Size</key>
- <real>12</real>
- </dict>
- <key>ID</key>
- <integer>60</integer>
- <key>Line</key>
- <dict>
- <key>ID</key>
- <integer>59</integer>
- <key>Position</key>
- <real>0.89849430322647095</real>
- <key>RotationType</key>
- <integer>0</integer>
- </dict>
- <key>Shape</key>
- <string>Rectangle</string>
- <key>Style</key>
- <dict>
- <key>shadow</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- <key>stroke</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- </dict>
- <key>Text</key>
- <dict>
- <key>Text</key>
- <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
-{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\fs24 \cf0 Time &gt;&gt;&gt;}</string>
- </dict>
- </dict>
- <dict>
- <key>Class</key>
- <string>LineGraphic</string>
- <key>ID</key>
- <integer>59</integer>
- <key>Points</key>
- <array>
- <string>{30.8634, 757}</string>
- <string>{1124.02, 758.647}</string>
- </array>
- <key>Style</key>
- <dict>
- <key>stroke</key>
- <dict>
- <key>HeadArrow</key>
- <string>FilledArrow</string>
- <key>TailArrow</key>
- <string>0</string>
- </dict>
- </dict>
- </dict>
- <dict>
- <key>Bounds</key>
- <string>{{652.329, 607.255}, {84, 28}}</string>
- <key>Class</key>
- <string>ShapedGraphic</string>
- <key>FitText</key>
- <string>YES</string>
- <key>FontInfo</key>
- <dict>
- <key>Color</key>
- <dict>
- <key>w</key>
- <string>0</string>
- </dict>
- <key>Font</key>
- <string>Helvetica</string>
- <key>Size</key>
- <real>12</real>
- </dict>
- <key>ID</key>
- <integer>55</integer>
- <key>Line</key>
- <dict>
- <key>ID</key>
- <integer>54</integer>
- <key>Position</key>
- <real>0.51953768730163574</real>
- <key>RotationType</key>
- <integer>0</integer>
- </dict>
- <key>Shape</key>
- <string>Rectangle</string>
- <key>Style</key>
- <dict>
- <key>shadow</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- <key>stroke</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- </dict>
- <key>Text</key>
- <dict>
- <key>Text</key>
- <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
-{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\fs24 \cf0 Push+Render\
-$EVENT}</string>
- </dict>
- </dict>
- <dict>
- <key>Class</key>
- <string>LineGraphic</string>
- <key>ID</key>
- <integer>54</integer>
- <key>Points</key>
- <array>
- <string>{694.329, 546.643}</string>
- <string>{694.329, 690.255}</string>
- </array>
- <key>Style</key>
- <dict>
- <key>stroke</key>
- <dict>
- <key>HeadArrow</key>
- <string>FilledArrow</string>
- <key>TailArrow</key>
- <string>0</string>
- </dict>
- </dict>
- </dict>
- <dict>
- <key>Bounds</key>
- <string>{{655.57, 439.363}, {49, 24}}</string>
- <key>Class</key>
- <string>ShapedGraphic</string>
- <key>FitText</key>
- <string>YES</string>
- <key>FontInfo</key>
- <dict>
- <key>Color</key>
- <dict>
- <key>w</key>
- <string>0</string>
- </dict>
- <key>Font</key>
- <string>Helvetica-Bold</string>
- <key>Size</key>
- <real>10</real>
- </dict>
- <key>ID</key>
- <integer>56</integer>
- <key>Line</key>
- <dict>
- <key>ID</key>
- <integer>52</integer>
- <key>Position</key>
- <real>0.45289328694343567</real>
- <key>RotationType</key>
- <integer>0</integer>
- </dict>
- <key>Shape</key>
- <string>Rectangle</string>
- <key>Style</key>
- <dict>
- <key>shadow</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- <key>stroke</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- </dict>
- <key>Text</key>
- <dict>
- <key>Text</key>
- <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
-{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\b\fs20 \cf0 Send\
-$EVENT}</string>
- </dict>
- </dict>
- <dict>
- <key>Class</key>
- <string>LineGraphic</string>
- <key>ID</key>
- <integer>52</integer>
- <key>Points</key>
- <array>
- <string>{680.07, 424.383}</string>
- <string>{680.07, 483.957}</string>
- </array>
- <key>Style</key>
- <dict>
- <key>stroke</key>
- <dict>
- <key>HeadArrow</key>
- <string>FilledArrow</string>
- <key>TailArrow</key>
- <string>0</string>
- </dict>
- </dict>
- </dict>
- <dict>
- <key>Bounds</key>
- <string>{{603.273, 452.914}, {52, 28}}</string>
- <key>Class</key>
- <string>ShapedGraphic</string>
- <key>FitText</key>
- <string>YES</string>
- <key>FontInfo</key>
- <dict>
- <key>Color</key>
- <dict>
- <key>w</key>
- <string>0</string>
- </dict>
- <key>Font</key>
- <string>Helvetica</string>
- <key>Size</key>
- <real>12</real>
- </dict>
- <key>ID</key>
- <integer>51</integer>
- <key>Line</key>
- <dict>
- <key>ID</key>
- <integer>50</integer>
- <key>Position</key>
- <real>0.41240772604942322</real>
- <key>RotationType</key>
- <integer>0</integer>
- </dict>
- <key>Shape</key>
- <string>Rectangle</string>
- <key>Style</key>
- <dict>
- <key>shadow</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- <key>stroke</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- </dict>
- <key>Text</key>
- <dict>
- <key>Text</key>
- <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
-{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\fs24 \cf0 Poll\
-[$SUB] }</string>
- </dict>
- </dict>
- <dict>
- <key>Class</key>
- <string>LineGraphic</string>
- <key>ID</key>
- <integer>50</integer>
- <key>Points</key>
- <array>
- <string>{629, 489.057}</string>
- <string>{629.661, 435.363}</string>
- </array>
- <key>Style</key>
- <dict>
- <key>stroke</key>
- <dict>
- <key>HeadArrow</key>
- <string>FilledArrow</string>
- <key>TailArrow</key>
- <string>0</string>
- </dict>
- </dict>
- </dict>
- <dict>
- <key>Bounds</key>
- <string>{{532.773, 447.813}, {52, 28}}</string>
- <key>Class</key>
- <string>ShapedGraphic</string>
- <key>FitText</key>
- <string>YES</string>
- <key>FontInfo</key>
- <dict>
- <key>Color</key>
- <dict>
- <key>w</key>
- <string>0</string>
- </dict>
- <key>Font</key>
- <string>Helvetica</string>
- <key>Size</key>
- <real>12</real>
- </dict>
- <key>ID</key>
- <integer>49</integer>
- <key>Line</key>
- <dict>
- <key>ID</key>
- <integer>48</integer>
- <key>Position</key>
- <real>0.41240772604942322</real>
- <key>RotationType</key>
- <integer>0</integer>
- </dict>
- <key>Shape</key>
- <string>Rectangle</string>
- <key>Style</key>
- <dict>
- <key>shadow</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- <key>stroke</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- </dict>
- <key>Text</key>
- <dict>
- <key>Text</key>
- <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
-{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\fs24 \cf0 Poll\
-[$SUB] }</string>
- </dict>
- </dict>
- <dict>
- <key>Class</key>
- <string>LineGraphic</string>
- <key>ID</key>
- <integer>48</integer>
- <key>Points</key>
- <array>
- <string>{558.5, 483.957}</string>
- <string>{559.161, 430.263}</string>
- </array>
- <key>Style</key>
- <dict>
- <key>stroke</key>
- <dict>
- <key>HeadArrow</key>
- <string>FilledArrow</string>
- <key>TailArrow</key>
- <string>0</string>
- </dict>
- </dict>
- </dict>
- <dict>
- <key>Bounds</key>
- <string>{{432.043, 446.396}, {52, 28}}</string>
- <key>Class</key>
- <string>ShapedGraphic</string>
- <key>FitText</key>
- <string>YES</string>
- <key>FontInfo</key>
- <dict>
- <key>Color</key>
- <dict>
- <key>w</key>
- <string>0</string>
- </dict>
- <key>Font</key>
- <string>Helvetica</string>
- <key>Size</key>
- <real>12</real>
- </dict>
- <key>ID</key>
- <integer>47</integer>
- <key>Line</key>
- <dict>
- <key>ID</key>
- <integer>46</integer>
- <key>Position</key>
- <real>0.36850014328956604</real>
- <key>RotationType</key>
- <integer>0</integer>
- </dict>
- <key>Shape</key>
- <string>Rectangle</string>
- <key>Style</key>
- <dict>
- <key>shadow</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- <key>stroke</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- </dict>
- <key>Text</key>
- <dict>
- <key>Text</key>
- <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
-{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\fs24 \cf0 Poll\
-[$SUB] }</string>
- </dict>
- </dict>
- <dict>
- <key>Class</key>
- <string>LineGraphic</string>
- <key>ID</key>
- <integer>46</integer>
- <key>Points</key>
- <array>
- <string>{458, 481}</string>
- <string>{458.117, 425.087}</string>
- </array>
- <key>Style</key>
- <dict>
- <key>stroke</key>
- <dict>
- <key>HeadArrow</key>
- <string>FilledArrow</string>
- <key>TailArrow</key>
- <string>0</string>
- </dict>
- </dict>
- </dict>
- <dict>
- <key>Bounds</key>
- <string>{{558.5, 256.36}, {57, 42}}</string>
- <key>Class</key>
- <string>ShapedGraphic</string>
- <key>FitText</key>
- <string>YES</string>
- <key>FontInfo</key>
- <dict>
- <key>Color</key>
- <dict>
- <key>w</key>
- <string>0</string>
- </dict>
- <key>Font</key>
- <string>Helvetica</string>
- <key>Size</key>
- <real>12</real>
- </dict>
- <key>ID</key>
- <integer>45</integer>
- <key>Line</key>
- <dict>
- <key>ID</key>
- <integer>44</integer>
- <key>Position</key>
- <real>0.24552829563617706</real>
- <key>RotationType</key>
- <integer>0</integer>
- </dict>
- <key>Shape</key>
- <string>Rectangle</string>
- <key>Style</key>
- <dict>
- <key>shadow</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- <key>stroke</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- </dict>
- <key>Text</key>
- <dict>
- <key>Text</key>
- <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
-{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\fs24 \cf0 Publish \
-$EVENT\
-to $SUB}</string>
- </dict>
- </dict>
- <dict>
- <key>Class</key>
- <string>LineGraphic</string>
- <key>ID</key>
- <integer>44</integer>
- <key>Points</key>
- <array>
- <string>{587, 249.615}</string>
- <string>{587, 362.615}</string>
- </array>
- <key>Style</key>
- <dict>
- <key>stroke</key>
- <dict>
- <key>HeadArrow</key>
- <string>FilledArrow</string>
- <key>TailArrow</key>
- <string>0</string>
- </dict>
- </dict>
- </dict>
- <dict>
- <key>Class</key>
- <string>LineGraphic</string>
- <key>ID</key>
- <integer>42</integer>
- <key>Points</key>
- <array>
- <string>{315.076, 504.5}</string>
- <string>{312.334, 428.426}</string>
- </array>
- <key>Style</key>
- <dict>
- <key>stroke</key>
- <dict>
- <key>HeadArrow</key>
- <string>FilledArrow</string>
- <key>TailArrow</key>
- <string>0</string>
- </dict>
- </dict>
- <key>Tail</key>
- <dict>
- <key>ID</key>
- <integer>75</integer>
- </dict>
- </dict>
- <dict>
- <key>Bounds</key>
- <string>{{55.0165, 435.416}, {163, 42}}</string>
- <key>Class</key>
- <string>ShapedGraphic</string>
- <key>FitText</key>
- <string>YES</string>
- <key>FontInfo</key>
- <dict>
- <key>Color</key>
- <dict>
- <key>w</key>
- <string>0</string>
- </dict>
- <key>Font</key>
- <string>Helvetica</string>
- <key>Size</key>
- <real>12</real>
- </dict>
- <key>ID</key>
- <integer>41</integer>
- <key>Line</key>
- <dict>
- <key>ID</key>
- <integer>40</integer>
- <key>Position</key>
- <real>0.48351499438285828</real>
- <key>RotationType</key>
- <integer>0</integer>
- </dict>
- <key>Shape</key>
- <string>Rectangle</string>
- <key>Style</key>
- <dict>
- <key>shadow</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- <key>stroke</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- </dict>
- <key>Text</key>
- <dict>
- <key>Text</key>
- <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
-{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\fs24 \cf0 Add \
-Subscription Channel $SUB:\
-Action::Ping}</string>
- </dict>
- </dict>
- <dict>
- <key>Class</key>
- <string>LineGraphic</string>
- <key>ID</key>
- <integer>40</integer>
- <key>Points</key>
- <array>
- <string>{137, 482.62}</string>
- <string>{136, 428.426}</string>
- </array>
- <key>Style</key>
- <dict>
- <key>stroke</key>
- <dict>
- <key>HeadArrow</key>
- <string>FilledArrow</string>
- <key>TailArrow</key>
- <string>0</string>
- </dict>
- </dict>
- </dict>
- <dict>
- <key>Bounds</key>
- <string>{{383.843, 121.654}, {149, 28}}</string>
- <key>Class</key>
- <string>ShapedGraphic</string>
- <key>FitText</key>
- <string>YES</string>
- <key>FontInfo</key>
- <dict>
- <key>Color</key>
- <dict>
- <key>w</key>
- <string>0</string>
- </dict>
- <key>Font</key>
- <string>Helvetica</string>
- <key>Size</key>
- <real>12</real>
- </dict>
- <key>ID</key>
- <integer>38</integer>
- <key>Line</key>
- <dict>
- <key>ID</key>
- <integer>24</integer>
- <key>Position</key>
- <real>0.42278197407722473</real>
- <key>RotationType</key>
- <integer>0</integer>
- </dict>
- <key>Shape</key>
- <string>Rectangle</string>
- <key>Style</key>
- <dict>
- <key>shadow</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- <key>stroke</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- </dict>
- <key>Text</key>
- <dict>
- <key>Text</key>
- <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
-{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\fs24 \cf0 Publishes Event $EVENT:\
-PING 127.0.0.1 1ms}</string>
- </dict>
- </dict>
- <dict>
- <key>Bounds</key>
- <string>{{30.8634, 623.165}, {71, 28}}</string>
- <key>Class</key>
- <string>ShapedGraphic</string>
- <key>FitText</key>
- <string>YES</string>
- <key>FontInfo</key>
- <dict>
- <key>Color</key>
- <dict>
- <key>w</key>
- <string>0</string>
- </dict>
- <key>Font</key>
- <string>Helvetica</string>
- <key>Size</key>
- <real>12</real>
- </dict>
- <key>ID</key>
- <integer>36</integer>
- <key>Line</key>
- <dict>
- <key>ID</key>
- <integer>34</integer>
- <key>Position</key>
- <real>0.38565847277641296</real>
- <key>RotationType</key>
- <integer>0</integer>
- </dict>
- <key>Shape</key>
- <string>Rectangle</string>
- <key>Style</key>
- <dict>
- <key>shadow</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- <key>stroke</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- </dict>
- <key>Text</key>
- <dict>
- <key>Text</key>
- <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
-{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\fs24 \cf0 Jifty Action:\
-Ping}</string>
- </dict>
- </dict>
- <dict>
- <key>Class</key>
- <string>LineGraphic</string>
- <key>ID</key>
- <integer>34</integer>
- <key>Points</key>
- <array>
- <string>{65, 690}</string>
- <string>{68.5352, 553}</string>
- </array>
- <key>Style</key>
- <dict>
- <key>stroke</key>
- <dict>
- <key>HeadArrow</key>
- <string>FilledArrow</string>
- <key>TailArrow</key>
- <string>0</string>
- </dict>
- </dict>
- </dict>
- <dict>
- <key>Bounds</key>
- <string>{{39, 693.868}, {1051.46, 54}}</string>
- <key>Class</key>
- <string>ShapedGraphic</string>
- <key>ID</key>
- <integer>31</integer>
- <key>Shape</key>
- <string>Rectangle</string>
- <key>Text</key>
- <dict>
- <key>Text</key>
- <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
-{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\fs24 \cf0 Client Browser}</string>
- </dict>
- </dict>
- <dict>
- <key>Bounds</key>
- <string>{{470.033, 293.501}, {88.9045, 42}}</string>
- <key>Class</key>
- <string>ShapedGraphic</string>
- <key>FitText</key>
- <string>Vertical</string>
- <key>FontInfo</key>
- <dict>
- <key>Color</key>
- <dict>
- <key>w</key>
- <string>0</string>
- </dict>
- <key>Font</key>
- <string>Helvetica</string>
- <key>Size</key>
- <real>12</real>
- </dict>
- <key>ID</key>
- <integer>29</integer>
- <key>Line</key>
- <dict>
- <key>ID</key>
- <integer>28</integer>
- <key>Position</key>
- <real>0.59332269430160522</real>
- <key>RotationType</key>
- <integer>0</integer>
- </dict>
- <key>Shape</key>
- <string>Rectangle</string>
- <key>Style</key>
- <dict>
- <key>shadow</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- <key>stroke</key>
- <dict>
- <key>Draws</key>
- <string>NO</string>
- </dict>
- </dict>
- <key>Text</key>
- <dict>
- <key>Text</key>
- <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
-{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\fs24 \cf0 Publishes to \
-Channel \
-"$SERVER"}</string>
- </dict>
- <key>Wrap</key>
- <string>YES</string>
- </dict>
- <dict>
- <key>Class</key>
- <string>LineGraphic</string>
- <key>ID</key>
- <integer>28</integer>
- <key>Points</key>
- <array>
- <string>{514.486, 247.455}</string>
- <string>{514.486, 360.455}</string>
- </array>
- <key>Style</key>
- <dict>
- <key>stroke</key>
- <dict>
- <key>HeadArrow</key>
- <string>FilledArrow</string>
- <key>TailArrow</key>
- <string>0</string>
- </dict>
- </dict>
- </dict>
- <dict>
- <key>Bounds</key>
- <string>{{44.4648, 205.059}, {907.535, 36}}</string>
- <key>Class</key>
- <string>ShapedGraphic</string>
- <key>FontInfo</key>
- <dict>
- <key>Color</key>
- <dict>
- <key>w</key>
- <string>0</string>
- </dict>
- <key>Font</key>
- <string>Helvetica</string>
- <key>NSKern</key>
- <real>0.0</real>
- <key>Size</key>
- <real>12</real>
- </dict>
- <key>ID</key>
- <integer>27</integer>
- <key>Shape</key>
- <string>Rectangle</string>
- <key>Style</key>
- <dict>
- <key>fill</key>
- <dict>
- <key>GradientColor</key>
- <dict>
- <key>w</key>
- <string>0.666667</string>
- </dict>
- </dict>
- </dict>
- <key>Text</key>
- <dict>
- <key>Text</key>
- <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
-{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\fs24 \cf0 Republisher}</string>
- </dict>
- </dict>
- <dict>
- <key>Class</key>
- <string>LineGraphic</string>
- <key>ID</key>
- <integer>24</integer>
- <key>Points</key>
- <array>
- <string>{458.117, 88.7247}</string>
- <string>{458.652, 199.725}</string>
- </array>
- <key>Style</key>
- <dict>
- <key>stroke</key>
- <dict>
- <key>HeadArrow</key>
- <string>FilledArrow</string>
- <key>TailArrow</key>
- <string>0</string>
- </dict>
- </dict>
- </dict>
- <dict>
- <key>Bounds</key>
- <string>{{174, 29.3902}, {410.773, 59.5743}}</string>
- <key>Class</key>
- <string>ShapedGraphic</string>
- <key>FontInfo</key>
- <dict>
- <key>Color</key>
- <dict>
- <key>w</key>
- <string>0</string>
- </dict>
- <key>Font</key>
- <string>Helvetica</string>
- <key>NSKern</key>
- <real>0.0</real>
- <key>Size</key>
- <real>12</real>
- </dict>
- <key>ID</key>
- <integer>4</integer>
- <key>Shape</key>
- <string>Rectangle</string>
- <key>Style</key>
- <dict>
- <key>fill</key>
- <dict>
- <key>GradientColor</key>
- <dict>
- <key>w</key>
- <string>0.666667</string>
- </dict>
- </dict>
- </dict>
- <key>Text</key>
- <dict>
- <key>Text</key>
- <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
-{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\fs24 \cf0 Server $SERVER}</string>
- </dict>
- </dict>
- <dict>
- <key>Class</key>
- <string>LineGraphic</string>
- <key>Head</key>
- <dict>
- <key>ID</key>
- <integer>4</integer>
- </dict>
- <key>ID</key>
- <integer>22</integer>
- <key>Points</key>
- <array>
- <string>{129.731, 504.727}</string>
- <string>{-23, 405}</string>
- <string>{344.348, 89.2904}</string>
- </array>
- <key>Style</key>
- <dict>
- <key>stroke</key>
- <dict>
- <key>HeadArrow</key>
- <string>FilledArrow</string>
- <key>LineType</key>
- <integer>1</integer>
- <key>TailArrow</key>
- <string>0</string>
- </dict>
- </dict>
- <key>Tail</key>
- <dict>
- <key>ID</key>
- <integer>74</integer>
- </dict>
- </dict>
- <dict>
- <key>Bounds</key>
- <string>{{65, 502}, {340.944, 59.5743}}</string>
- <key>Class</key>
- <string>ShapedGraphic</string>
- <key>ID</key>
- <integer>79</integer>
- <key>Shape</key>
- <string>Rectangle</string>
- </dict>
- <dict>
- <key>Bounds</key>
- <string>{{45.4648, 490.194}, {907.535, 54}}</string>
- <key>Class</key>
- <string>ShapedGraphic</string>
- <key>ID</key>
- <integer>32</integer>
- <key>Shape</key>
- <string>Rectangle</string>
- <key>Text</key>
- <dict>
- <key>Text</key>
- <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
-{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\fs24 \cf0 Jifty Server}</string>
- </dict>
- </dict>
- </array>
- <key>GridInfo</key>
- <dict/>
- <key>GuidesLocked</key>
- <string>NO</string>
- <key>GuidesVisible</key>
- <string>YES</string>
- <key>HPages</key>
- <integer>2</integer>
- <key>ImageCounter</key>
- <integer>1</integer>
- <key>IsPalette</key>
- <string>NO</string>
- <key>KeepToScale</key>
- <false/>
- <key>Layers</key>
- <array>
- <dict>
- <key>Lock</key>
- <string>NO</string>
- <key>Name</key>
- <string>Layer 1</string>
- <key>Print</key>
- <string>YES</string>
- <key>View</key>
- <string>YES</string>
- </dict>
- </array>
- <key>LayoutInfo</key>
- <dict>
- <key>LayoutTarget</key>
- <integer>3</integer>
- </dict>
- <key>LinksVisible</key>
- <string>NO</string>
- <key>MagnetsVisible</key>
- <string>NO</string>
- <key>MasterSheet</key>
- <string>Master 1</string>
- <key>MasterSheets</key>
- <array>
- <dict>
- <key>ActiveLayerIndex</key>
- <integer>0</integer>
- <key>AutoAdjust</key>
- <true/>
- <key>CanvasColor</key>
- <dict>
- <key>w</key>
- <string>1</string>
- </dict>
- <key>CanvasOrigin</key>
- <string>{0, 0}</string>
- <key>CanvasScale</key>
- <real>1</real>
- <key>ColumnAlign</key>
- <integer>1</integer>
- <key>ColumnSpacing</key>
- <real>36</real>
- <key>DisplayScale</key>
- <string>1 in = 1 in</string>
- <key>GraphicsList</key>
- <array/>
- <key>GridInfo</key>
- <dict/>
- <key>HPages</key>
- <integer>1</integer>
- <key>IsPalette</key>
- <string>NO</string>
- <key>KeepToScale</key>
- <false/>
- <key>Layers</key>
- <array>
- <dict>
- <key>Lock</key>
- <string>NO</string>
- <key>Name</key>
- <string>Layer 1</string>
- <key>Print</key>
- <string>YES</string>
- <key>View</key>
- <string>YES</string>
- </dict>
- </array>
- <key>LayoutInfo</key>
- <dict>
- <key>LayoutTarget</key>
- <integer>3</integer>
- </dict>
- <key>Orientation</key>
- <integer>2</integer>
- <key>OutlineStyle</key>
- <string>Basic</string>
- <key>RowAlign</key>
- <integer>1</integer>
- <key>RowSpacing</key>
- <real>36</real>
- <key>SheetTitle</key>
- <string>Master 1</string>
- <key>UniqueID</key>
- <integer>1</integer>
- <key>VPages</key>
- <integer>1</integer>
- </dict>
- </array>
- <key>ModificationDate</key>
- <string>2006-10-24 15:25:32 -0700</string>
- <key>Modifier</key>
- <string>Jesse Vincent</string>
- <key>NotesVisible</key>
- <string>NO</string>
- <key>Orientation</key>
- <integer>2</integer>
- <key>OriginVisible</key>
- <string>NO</string>
- <key>OutlineStyle</key>
- <string>Basic</string>
- <key>PageBreaks</key>
- <string>YES</string>
- <key>PrintInfo</key>
- <dict>
- <key>NSBottomMargin</key>
- <array>
- <string>float</string>
- <string>0</string>
- </array>
- <key>NSLeftMargin</key>
- <array>
- <string>float</string>
- <string>0</string>
- </array>
- <key>NSRightMargin</key>
- <array>
- <string>float</string>
- <string>0</string>
- </array>
- <key>NSTopMargin</key>
- <array>
- <string>float</string>
- <string>0</string>
- </array>
- </dict>
- <key>ReadOnly</key>
- <string>NO</string>
- <key>RowAlign</key>
- <integer>1</integer>
- <key>RowSpacing</key>
- <real>36</real>
- <key>SheetTitle</key>
- <string>Canvas 1</string>
- <key>SmartAlignmentGuidesActive</key>
- <string>YES</string>
- <key>SmartDistanceGuidesActive</key>
- <string>YES</string>
- <key>UniqueID</key>
- <integer>1</integer>
- <key>UseEntirePage</key>
- <true/>
- <key>VPages</key>
- <integer>1</integer>
- <key>WindowInfo</key>
- <dict>
- <key>CurrentSheet</key>
- <string>0</string>
- <key>DrawerOpen</key>
- <true/>
- <key>DrawerTab</key>
- <string>Outline</string>
- <key>DrawerWidth</key>
- <real>209</real>
- <key>FitInWindow</key>
- <false/>
- <key>Frame</key>
- <string>{{0, 0}, {1680, 1072}}</string>
- <key>ShowRuler</key>
- <false/>
- <key>ShowStatusBar</key>
- <true/>
- <key>VisibleRegion</key>
- <string>{{-250, -92}, {1665, 958}}</string>
- <key>Zoom</key>
- <string>1</string>
- </dict>
-</dict>
-</plist>
View
BIN  doc/pubsub/system_architecture.png
Deleted file not rendered
View
6 examples/Chat/Makefile.PL
@@ -1,6 +0,0 @@
-use inc::Module::Install;
-name('Chat');
-version('0.01');
-requires('Jifty' => '0.60912');
-
-WriteAll;
View
15 examples/Chat/bin/jifty
@@ -1,15 +0,0 @@
-#!/usr/bin/env perl
-use warnings;
-use strict;
-use File::Basename qw(dirname);
-use UNIVERSAL::require;
-
-BEGIN {
- Jifty::Util->require or die $UNIVERSAL::require::ERROR;
- my $root = Jifty::Util->app_root;
- unshift @INC, "$root/lib" if ($root);
-}
-
-use Jifty::Script;
-$SIG{INT} = $SIG{TERM} = sub { warn "Stopped\n"; exit; };
-Jifty::Script->dispatch();
View
37 examples/Chat/etc/config.yml
@@ -1,37 +0,0 @@
----
-framework:
- AdminMode: 0
- ApplicationClass: Chat
- ApplicationName: Chat
- PubSub:
- Enable: 1
- Database:
- CheckSchema: 1
- Database: chat
- Driver: SQLite
- Host: localhost
- Password: ''
- RecordBaseClass: Jifty::DBI::Record::Cachable
- User: ''
- Version: 0.0.1
- DevelMode: 0
- L10N:
- PoDir: share/po
- LogLevel: DEBUG
- Mailer: Sendmail
- MailerArgs: []
- Plugins: []
- Web:
- BaseURL: http://localhost
- DataDir: var/mason
- Globals: []
- MasonConfig:
- autoflush: 0
- default_escape_flags: h
- error_format: text
- error_mode: fatal
- Port: 8888
- ServeStaticFiles: 1
- StaticRoot: share/web/static
- TemplateRoot: share/web/templates
- ServerClass: Jifty::Server::Fork
View
18 examples/Chat/lib/Chat/Action/Send.pm
@@ -1,18 +0,0 @@
-package Chat::Action::Send;
-use warnings;
-use strict;
-
-use Jifty::Param::Schema;
-use Jifty::Action schema {
- param message =>
- label is 'Say something witty:';
-};
-
-sub take_action {
- my $self = shift;
- my $msg = $self->argument_value('message');
- $msg = "<$1\@".Jifty->web->request->address."> $msg" if Jifty->web->request->user_agent =~ /([^\W\d]+)[\W\d]*$/;
- Chat::Event::Message->new( { message => $msg } )->publish;
-}
-
-1;
View
6 examples/Chat/lib/Chat/Event/Message.pm
@@ -1,6 +0,0 @@
-package Chat::Event::Message;
-use strict;
-use warnings;
-use base 'Chat::Event';
-
-1;
View
31 examples/Chat/lib/Chat/View.pm
@@ -1,31 +0,0 @@
-use warnings;
-use strict;
-
-package Chat::View;
-use Jifty::View::Declare -base;
-
-template 'index.html' => page { title => "Jifty chat server" } content {
- Jifty->subs->add(
- class => 'Message',
- mode => 'Bottom',
- region => "message",
- render_with => '/fragments/message'
- );
- render_region( name => "message", path => '/__jifty/empty' );
- render_region( name => "sender", path => '/fragments/sender' );
-};
-
-template 'fragments/message' => sub {
- div { get('event')->data->{'message'} }
-};
-
-
-template 'fragments/sender' => sub {
- my $action = Jifty->web->new_action( class => 'Send' );
- form {
- render_param ($action => 'message', focus => 1);
- form_submit(onclick => [ { submit => $action }, { refresh_self => 1 } ]);
- }
-};
-
-1;
View
19 examples/Chat/t/00compile.t
@@ -1,19 +0,0 @@
-#!/usr/bin/perl -w
-
-use Test::More;
-
-use File::Find;
-
-my @modules;
-find sub {
- return unless /\.pm$/;
- push @modules, $File::Find::name;
-}, "lib";
-
-@modules = map { s[^lib/][]; $_ =~ s[.pm$][]; $_ =~ s[/][::]g; $_ } @modules;
-
-plan tests => scalar @modules;
-
-for my $module (@modules) {
- require_ok $module;
-}
View
13 examples/Chat/t/01startup.t
@@ -1,13 +0,0 @@
-#!/usr/bin/perl -w
-
-use Jifty::Test 'no_plan';
-use Jifty::Test::WWW::Mechanize;
-
-# Startup the server.
-my $server = Jifty::Test->make_server;
-isa_ok($server, 'Jifty::Server');
-
-my $URL = $server->started_ok;
-my $mech = Jifty::Test::WWW::Mechanize->new;
-
-$mech->get_ok("$URL", "got the front page");
View
6 examples/Clock/Makefile.PL
@@ -1,6 +0,0 @@
-use inc::Module::Install;
-name('Clock');
-version('0.01');
-requires('Jifty' => '0.60912');
-
-WriteAll;
View
15 examples/Clock/bin/jifty
@@ -1,15 +0,0 @@
-#!/usr/bin/env perl
-use warnings;
-use strict;
-use File::Basename qw(dirname);
-use UNIVERSAL::require;
-
-BEGIN {
- Jifty::Util->require or die $UNIVERSAL::require::ERROR;
- my $root = Jifty::Util->app_root;
- unshift @INC, "$root/lib" if ($root);
-}
-
-use Jifty::Script;
-$SIG{INT} = $SIG{TERM} = sub { warn "Stopped\n"; exit; };
-Jifty::Script->dispatch();
View
21 examples/Clock/clockserv.pl
@@ -1,21 +0,0 @@
-use strict;
-use lib 'lib';
-use Time::HiRes qw( time sleep );
-use Jifty;
-
-BEGIN { Jifty->new };
-
-sub ping {
- my ($class, $sub) = @_;
- while (1) {
- my $new_time = time;
- warn "Time: $new_time\n";
- Clock::Event::Tick->new($new_time)->publish;
- sleep 0.5;
- }
- exit;
-}
-
-ping();
-
-1;
View
37 examples/Clock/etc/config.yml
@@ -1,37 +0,0 @@
----
-framework:
- AdminMode: 1
- ApplicationClass: Clock
- ApplicationName: Clock
- PubSub:
- Enable: TRUE
- Database:
- CheckSchema: 1
- Database: clock
- Driver: SQLite
- Host: localhost
- Password: ''
- RecordBaseClass: Jifty::DBI::Record::Cachable
- User: ''
- Version: 0.0.1
- DevelMode: 1
- L10N:
- PoDir: share/po
- LogLevel: INFO
- Mailer: Sendmail
- MailerArgs: []
- Plugins: []
- Web:
- BaseURL: http://localhost
- DataDir: var/mason
- Globals: []
- MasonConfig:
- autoflush: 0
- default_escape_flags: h
- error_format: text
- error_mode: fatal
- Port: 8888
- ServeStaticFiles: 1
- StaticRoot: share/web/static
- TemplateRoot: share/web/templates
- ServerClass: Jifty::Server::Fork
View
15 examples/Clock/lib/Clock/Event/Tick.pm
@@ -1,15 +0,0 @@
-package Clock::Event::Tick;
-use strict;
-use warnings;
-use base 'Clock::Event';
-
-sub match {
- my $self = shift;
- my $query = shift;
- if (my $like = $query->{like}) {
- return(index($$self, $like) >= 0);
- }
- return 1;
-}
-
-1;
View
4 examples/Clock/share/web/templates/fragments/time
@@ -1,4 +0,0 @@
-<span><% $$event %></span>
-<%ARGS>
-$event
-</%ARGS>
View
36 examples/Clock/share/web/templates/index.html
@@ -1,36 +0,0 @@
-<&| /_elements/wrapper, title => "Hi", subtitle => "Welcome" &>
-<table>
-<tr><td>
-Full: <% $region->render %>
-</td><td>
-Filtered: <% $region_filtered->render %>
-</td></tr>
-</table>
-</&>
-<%init>
-my $region = Jifty::Web::PageRegion->new(
- name => "clock-time",
- path => '/__jifty/empty',
-);
-my $region_filtered = Jifty::Web::PageRegion->new(
- name => "clock-filtered",
- path => '/__jifty/empty',
-);
-
-Jifty->subs->add(
- # window_id => 'random scope',
- class => 'Tick',
- mode => 'Replace',
- region => "clock-time",
- render_with => '/fragments/time',
-);
-
-Jifty->subs->add(
- # window_id => 'random scope',
- class => 'Tick',
- queries => [{ like => '9' }],
- mode => 'Replace',
- region => "clock-filtered",
- render_with => '/fragments/time',
-);
-</%init>
View
3  examples/Doxory/etc/config.yml
@@ -29,9 +29,6 @@ framework:
- REST: {}
- SkeletonApp: {}
- PubSub:
- Backend: Memcached
- Enable: ~
TemplateClass: Doxory::View
SkipAccessControl: 1
Web:
View
3  examples/HelloKitty/etc/config.yml
@@ -21,9 +21,6 @@ framework:
Plugins: []
- PubSub:
- Backend: Memcached
- Enable: ~
TemplateClass: HelloKitty::View
Web:
BaseURL: http://localhost
View
3  examples/MyWeblog/etc/config.yml
@@ -22,9 +22,6 @@ framework:
Plugins:
- Login: {}
- PubSub:
- Backend: Memcached
- Enable: ~
Web:
BaseURL: http://localhost
DataDir: var/mason
View
7 examples/Ping/Makefile.PL
@@ -1,7 +0,0 @@
-use inc::Module::Install;
-name('Ping');
-version('0.01');
-requires('Jifty' => '0.61025');
-requires('Net::Server' => 0);
-
-WriteAll;
View
15 examples/Ping/bin/jifty
@@ -1,15 +0,0 @@
-#!/usr/bin/env perl
-use warnings;
-use strict;
-use File::Basename qw(dirname);
-use UNIVERSAL::require;
-
-BEGIN {
- Jifty::Util->require or die $UNIVERSAL::require::ERROR;
- my $root = Jifty::Util->app_root;
- unshift @INC, "$root/lib" if ($root);
-}
-
-use Jifty::Script;
-$SIG{INT} = $SIG{TERM} = sub { warn "Stopped\n"; exit; };
-Jifty::Script->dispatch();
View
40 examples/Ping/etc/config.yml
@@ -1,40 +0,0 @@
----
-framework:
- AdminMode: 1
- ApplicationClass: Ping
- ApplicationName: Ping
- PubSub:
- Enable: 1
- Database:
- CheckSchema: 1
- Database: ping
- Driver: SQLite
- Host: localhost
- Password: ''
- RecordBaseClass: Jifty::DBI::Record::Cachable
- User: ''
- Version: 0.0.1
- DevelMode: 0
- L10N:
- PoDir: share/po
- LogLevel: WARN
- Mailer: Sendmail
- MailerArgs: []
-
- Plugins: []
-
- Web:
- BaseURL: http://localhost
- DataDir: var/mason
- Globals: []
-
- MasonConfig:
- autoflush: 0
- default_escape_flags: h
- error_format: text
- error_mode: fatal
- Port: 8888
- ServeStaticFiles: 1
- StaticRoot: share/web/static
- TemplateRoot: share/web/templates
- ServerClass: Jifty::Server::Fork
View
51 examples/Ping/lib/Ping/Action/AddPing.pm
@@ -1,51 +0,0 @@
-package Ping::Action::AddPing;
-use strict;
-use Jifty::Param::Schema;
-use Jifty::Action schema {
-
-param host =>
- label is 'Hostname',
- is mandatory;
-
-param only_failure =>
- type is 'checkbox',
- label is 'Failure only?',
- hints is 'Show only failed pings to me.',
- default is 0;
-
-};
-
-sub take_action {
- my $self = shift;
- my $host = $self->argument_value('host');
- my $only_failure = $self->argument_value('only_failure');
-
- Jifty->bus->modify(hosts => sub {
- $_->{$host} ||= do {
- if (my $pid = fork) {
- $pid;
- }
- else {
- exec($^X => "-Ilib", "-MPing::PingServer", "-e", "Ping::PingServer->ping('$host')");
- }
- }
- });
-
- my $id = Jifty->web->session->id;
-
- Jifty->bus->modify("$id-ping" => sub {
- my $sid = $_->{$host};
- Jifty->subs->cancel($sid) if $sid;
- $_->{$host} = Jifty->subs->add(
- class => 'Pong',
- queries => [{ host => $host }, $only_failure ? { fail => 1 } : ()],
- mode => 'Bottom',
- region => 'pong',
- render_with => '/fragments/pong',
- );
- });
-
- $self->result->message( "Added host: $host" );
-}
-
-1;
View
28 examples/Ping/lib/Ping/Action/CancelPing.pm
@@ -1,28 +0,0 @@
-package Ping::Action::CancelPing;
-use strict;
-use Jifty::Param::Schema;
-use Jifty::Action schema {
-
-param host =>
- label is 'Hostname',
- is mandatory;
-
-};
-
-sub take_action {
- my $self = shift;
- my $host = $self->argument_value('host');
-
- my $id = Jifty->web->session->id;
- my $sid = Jifty->bus->modify("$id-ping" => sub {
- delete($_->{$host});
- });
- Jifty->bus->modify("hosts" => sub {
- kill 2, delete $_->{$host};
- });
- Jifty->subs->cancel($sid);
-
- $self->result->message( "Cancelled host: $host" );
-}
-
-1;
View
25 examples/Ping/lib/Ping/Event/Pong.pm
@@ -1,25 +0,0 @@
-package Ping::Event::Pong;
-use strict;
-use warnings;
-use base 'Ping::Event';
-
-sub match {
- my $self = shift;
- my $query = shift;
-
- if ($query->{fail}) {
- not $$self->{alive};
- }
- elsif (my $host = $query->{host}) {
- $$self->{host} eq $host;
- }
- else {
- 1;
- }
-}
-
-sub render_arguments {
- %{$_[0]->data};