hyper-resource 1.0.0.lap79 → 1.0.0.lap80

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/.yardopts +1 -0
  4. data/API.md +62 -0
  5. data/Gemfile +2 -0
  6. data/JSON_format.md +62 -0
  7. data/PubSub.md +20 -0
  8. data/README.md +2 -0
  9. data/Security.md +0 -0
  10. data/docs/HyperRecord/ClassMethods.html +2969 -0
  11. data/docs/HyperRecord/ClientInstanceMethods.html +1833 -0
  12. data/docs/HyperRecord/Collection.html +564 -0
  13. data/docs/HyperRecord/DummyValue.html +384 -0
  14. data/docs/HyperRecord/PubSub/ClassMethods.html +2047 -0
  15. data/docs/HyperRecord/PubSub.html +1679 -0
  16. data/docs/HyperRecord/ServerClassMethods.html +697 -0
  17. data/docs/HyperRecord.html +119 -0
  18. data/docs/Hyperloop/Resource/ClientDrivers.html +352 -0
  19. data/docs/Hyperloop/Resource/HTTP.html +1795 -0
  20. data/docs/Hyperloop/Resource/MethodsController.html +479 -0
  21. data/docs/Hyperloop/Resource/PropertiesController.html +225 -0
  22. data/docs/Hyperloop/Resource/PubSub/ClassMethods.html +105 -0
  23. data/docs/Hyperloop/Resource/PubSub.html +1210 -0
  24. data/docs/Hyperloop/Resource/RelationsController.html +529 -0
  25. data/docs/Hyperloop/Resource/ScopesController.html +380 -0
  26. data/docs/Hyperloop/Resource/SecurityError.html +124 -0
  27. data/docs/Hyperloop/Resource/SecurityGuards/ClassMethods.html +226 -0
  28. data/docs/Hyperloop/Resource/SecurityGuards.html +299 -0
  29. data/docs/Hyperloop/Resource.html +135 -0
  30. data/docs/Hyperloop.html +186 -0
  31. data/docs/_index.html +302 -0
  32. data/docs/class_list.html +51 -0
  33. data/docs/css/common.css +1 -0
  34. data/docs/css/full_list.css +58 -0
  35. data/docs/css/style.css +496 -0
  36. data/docs/file.API.html +138 -0
  37. data/docs/file.JSON_format.html +134 -0
  38. data/docs/file.PubSub.html +86 -0
  39. data/docs/file.README.html +192 -0
  40. data/docs/file_list.html +71 -0
  41. data/docs/frames.html +17 -0
  42. data/docs/index.html +192 -0
  43. data/docs/js/app.js +292 -0
  44. data/docs/js/full_list.js +216 -0
  45. data/docs/js/jquery.js +4 -0
  46. data/docs/method_list.html +1115 -0
  47. data/docs/top-level-namespace.html +110 -0
  48. data/hyper-resource.gemspec +19 -18
  49. data/lib/hyper_record/class_methods.rb +186 -3
  50. data/lib/hyper_record/client_instance_methods.rb +68 -3
  51. data/lib/hyper_record/collection.rb +19 -4
  52. data/lib/hyper_record/pub_sub.rb +92 -12
  53. data/lib/hyper_record/server_class_methods.rb +15 -0
  54. data/lib/hyperloop/resource/client_drivers.rb +2 -0
  55. data/lib/hyperloop/resource/http.rb +33 -22
  56. data/lib/hyperloop/resource/pub_sub.rb +2 -0
  57. data/lib/hyperloop/resource/version.rb +1 -1
  58. metadata +61 -2
@@ -0,0 +1,134 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ File: JSON_format
8
+
9
+ &mdash; Documentation by YARD 0.9.13
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ pathId = "JSON_format";
19
+ relpath = '';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div class="nav_wrap">
31
+ <iframe id="nav" src="file_list.html?1"></iframe>
32
+ <div id="resizer"></div>
33
+ </div>
34
+
35
+ <div id="main" tabindex="-1">
36
+ <div id="header">
37
+ <div id="menu">
38
+
39
+ <a href="_index.html">Index</a> &raquo;
40
+ <span class="title">File: JSON_format</span>
41
+
42
+ </div>
43
+
44
+ <div id="search">
45
+
46
+ <a class="full_list_link" id="class_list_link"
47
+ href="class_list.html">
48
+
49
+ <svg width="24" height="24">
50
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
51
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
52
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
53
+ </svg>
54
+ </a>
55
+
56
+ </div>
57
+ <div class="clear"></div>
58
+ </div>
59
+
60
+ <div id="content"><div id='filecontents'>
61
+ <h2 id="label-JSON+format">JSON format</h2>
62
+
63
+ <h3 id="label-In+case+of+a+error-3A">In case of a error:</h3>
64
+
65
+ <pre class="code ruby"><code class="ruby"><span class='lbrace'>{</span>
66
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>error</span><span class='label_end'>&quot;:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>error message</span><span class='tstring_end'>&quot;</span></span>
67
+ <span class='rbrace'>}</span>
68
+ </code></pre>
69
+
70
+ <p>along with HTTP response status set accordingly</p>
71
+
72
+ <h3 id="label-A+single+record">A single record</h3>
73
+
74
+ <pre class="code ruby"><code class="ruby"><span class='lbrace'>{</span>
75
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>record.class.to_s.underscore</span><span class='label_end'>&quot;:</span> <span class='lbrace'>{</span>
76
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>id</span><span class='label_end'>&quot;:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>a_string</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
77
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>updated_at</span><span class='label_end'>&quot;:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>time stamp, required at several places</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
78
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>further_properties</span><span class='label_end'>&quot;:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>at will</span><span class='tstring_end'>&quot;</span></span>
79
+ <span class='rbrace'>}</span>
80
+ <span class='rbrace'>}</span>
81
+ </code></pre>
82
+
83
+ <h3 id="label-A+relation">A relation</h3>
84
+
85
+ <pre class="code ruby"><code class="ruby">{
86
+ &quot;record.class.to_s.underscore&quot;: {
87
+ &quot;id&quot;: &quot;a_string&quot;,
88
+ &quot;relation_name&quot;: [
89
+ {
90
+ &quot;member_record.class.to_s.underscore&quot;: {
91
+ &quot;id&quot;: &quot;a_string&quot;,
92
+ &quot;further_properties&quot;: &quot;at_will&quot;
93
+ }
94
+ },
95
+ // further records ...
96
+ ]
97
+ }
98
+ }
99
+ </code></pre>
100
+
101
+ <h3 id="label-A+scope">A scope</h3>
102
+
103
+ <pre class="code ruby"><code class="ruby">{
104
+ &quot;record.class.to_s.underscore&quot;: {
105
+ &quot;scope_name&quot;: [
106
+ {
107
+ &quot;member_record.class.to_s.underscore&quot;: {
108
+ &quot;id&quot;: &quot;a_string&quot;,
109
+ &quot;further_properties&quot;: &quot;at_will&quot;
110
+ }
111
+ },
112
+ // further records ...
113
+ ]
114
+ }
115
+ }
116
+ </code></pre>
117
+
118
+ <h3 id="label-A+rest_method+or+a+rest_class_method">A rest_method or a rest_class_method</h3>
119
+
120
+ <pre class="code ruby"><code class="ruby"><span class='lbrace'>{</span>
121
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>result</span><span class='label_end'>&quot;:</span> <span class='id identifier rubyid_result_value_or_object'>result_value_or_object</span>
122
+ <span class='rbrace'>}</span>
123
+ </code></pre>
124
+ </div></div>
125
+
126
+ <div id="footer">
127
+ Generated on Tue Jun 5 23:13:52 2018 by
128
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
129
+ 0.9.13 (ruby-2.5.1).
130
+ </div>
131
+
132
+ </div>
133
+ </body>
134
+ </html>
@@ -0,0 +1,86 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ File: PubSub
8
+
9
+ &mdash; Documentation by YARD 0.9.13
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ pathId = "PubSub";
19
+ relpath = '';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div class="nav_wrap">
31
+ <iframe id="nav" src="file_list.html?1"></iframe>
32
+ <div id="resizer"></div>
33
+ </div>
34
+
35
+ <div id="main" tabindex="-1">
36
+ <div id="header">
37
+ <div id="menu">
38
+
39
+ <a href="_index.html">Index</a> &raquo;
40
+ <span class="title">File: PubSub</span>
41
+
42
+ </div>
43
+
44
+ <div id="search">
45
+
46
+ <a class="full_list_link" id="class_list_link"
47
+ href="class_list.html">
48
+
49
+ <svg width="24" height="24">
50
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
51
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
52
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
53
+ </svg>
54
+ </a>
55
+
56
+ </div>
57
+ <div class="clear"></div>
58
+ </div>
59
+
60
+ <div id="content"><div id='filecontents'>
61
+ <h2 id="label-PubSub+with+HyperResource">PubSub with HyperResource</h2>
62
+
63
+ <p>PubSub is handled in the controller. In your controller: <code> include
64
+ Hyperloop::Resource::PubSub </code></p>
65
+
66
+ <p>Then you can use the PubSub methods of Hyperloop::Resource::PubSub.</p>
67
+
68
+ <p>For example, a record has been requested, subscribe to it in the show
69
+ action of the controller: <code> subscribe_record(my_record) </code></p>
70
+
71
+ <p>When somebody updates the record, in the update action for example: <code>
72
+ publish_record(record) </code></p>
73
+
74
+ <p>All subscribers will receive a message indicating, that the record has been
75
+ updated.</p>
76
+ </div></div>
77
+
78
+ <div id="footer">
79
+ Generated on Tue Jun 5 23:13:52 2018 by
80
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
81
+ 0.9.13 (ruby-2.5.1).
82
+ </div>
83
+
84
+ </div>
85
+ </body>
86
+ </html>
@@ -0,0 +1,192 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ File: README
8
+
9
+ &mdash; Documentation by YARD 0.9.13
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ pathId = "README";
19
+ relpath = '';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div class="nav_wrap">
31
+ <iframe id="nav" src="file_list.html?1"></iframe>
32
+ <div id="resizer"></div>
33
+ </div>
34
+
35
+ <div id="main" tabindex="-1">
36
+ <div id="header">
37
+ <div id="menu">
38
+
39
+ <a href="_index.html">Index</a> &raquo;
40
+ <span class="title">File: README</span>
41
+
42
+ </div>
43
+
44
+ <div id="search">
45
+
46
+ <a class="full_list_link" id="class_list_link"
47
+ href="class_list.html">
48
+
49
+ <svg width="24" height="24">
50
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
51
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
52
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
53
+ </svg>
54
+ </a>
55
+
56
+ </div>
57
+ <div class="clear"></div>
58
+ </div>
59
+
60
+ <div id="content"><div id='filecontents'>
61
+ <h1 id="label-hyper-resource">hyper-resource</h1>
62
+
63
+ <p><a href="https://github.com/janbiedermann/hyper-resource">Github Repo</a></p>
64
+
65
+ <p>HyperResource is an affective way of moving data between your server and
66
+ clients when using Hyperloop and Rails.</p>
67
+
68
+ <p><a href="http://www.youtube.com/watch?v=fPSpESBbeMQ"><img
69
+ src="http://img.youtube.com/vi/fPSpESBbeMQ/0.jpg"></a></p>
70
+
71
+ <h2 id="label-Motivation">Motivation</h2>
72
+ <ul><li>
73
+ <p>To co-exist with a resource based REST API</p>
74
+ </li><li>
75
+ <p>To have ActiveRecord type Models shared by both the client and server code</p>
76
+ </li><li>
77
+ <p>To be ORM/database agnostic (tested with ActiveRecord on Postgres and
78
+ Neo4j.rb on Neo4j)</p>
79
+ </li><li>
80
+ <p>To fit the &#39;Rails way&#39; as far as possible (under the covers,
81
+ HyperResource is a traditional REST API)</p>
82
+ </li><li>
83
+ <p>To keep all Policy checking and authorisation logic in the Rails
84
+ Controllers</p>
85
+ </li><li>
86
+ <p>To allow a stages implementation</p>
87
+ </li></ul>
88
+
89
+ <h2 id="label-Staged+implementation">Staged implementation</h2>
90
+
91
+ <p>HyperResource is designed to be implemented in stages and each stage
92
+ delivers value in its own right, so the developer only needs to go as far
93
+ as they like.</p>
94
+
95
+ <p>A record can be of any ORM but the ORM must implement: “`ruby
96
+ record_class.find(id) # to get a record record.id # a identifier
97
+ record.updated_at # a time stamp record.destroyed? # to identify if its
98
+ scheduled for destruction</p>
99
+
100
+ <h1 id="label-when+using+relations+controller">when using relations controller</h1>
101
+
102
+ <p>record.touch # to update updated_at, identicating that something about that
103
+ record changed # for example it has been added to a relation “`</p>
104
+
105
+ <h3 id="label-Stage+1+-+Wrap+a+REST+API+with+Ruby+classes+to+represent+Models">Stage 1 - Wrap a REST API with Ruby classes to represent Models</h3>
106
+
107
+ <p>The simplest implementation of HyperResource is a client side only wrapper
108
+ of an existing REST API which treats each REST Resource as a Ruby class.</p>
109
+
110
+ <pre class="code ruby"><code class="ruby"><span class='comment'># in your client-cide code
111
+ </span><span class='kw'>class</span> <span class='const'>Customer</span>
112
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>ApplicationHyperRecord</span>
113
+ <span class='kw'>end</span>
114
+
115
+ <span class='comment'># then work with the Customer class as if it were an ActiveRecord
116
+ </span><span class='id identifier rubyid_customer'>customer</span> <span class='op'>=</span> <span class='const'>Customer</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='label'>name:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>John Smith</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
117
+ <span class='id identifier rubyid_customer'>customer</span><span class='period'>.</span><span class='id identifier rubyid_save'>save</span> <span class='comment'># ---&gt; POST api/customer.json ... {name: &#39;John Smith&#39; }
118
+ </span><span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_customer'>customer</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span> <span class='comment'># 123
119
+ </span>
120
+ <span class='comment'># to find a record
121
+ </span><span class='id identifier rubyid_customer'>customer</span> <span class='op'>=</span> <span class='const'>Customer</span><span class='period'>.</span><span class='id identifier rubyid_find'>find</span><span class='lparen'>(</span><span class='int'>123</span><span class='rparen'>)</span> <span class='comment'># ---&gt; GET api/customer/123.json
122
+ </span><span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_customer'>customer</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span> <span class='comment'># `John Smith`
123
+ </span></code></pre>
124
+
125
+ <h3 id="label-Stage+2+-+Adapt+your+Models+so+the+client+and+server+code+share+the+same+Models">Stage 2 - Adapt your Models so the client and server code share the same Models</h3>
126
+
127
+ <p>HyperResource supports ActiveRecord associations and scopes so you can DRY
128
+ up your code and the client an server can share the same Models.</p>
129
+
130
+ <pre class="code ruby"><code class="ruby"><span class='kw'>module</span> <span class='const'>ApplicationHyperRecord</span>
131
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_included'>included</span><span class='lparen'>(</span><span class='id identifier rubyid_base'>base</span><span class='rparen'>)</span>
132
+ <span class='kw'>if</span> <span class='const'>RUBY_ENGINE</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>opal</span><span class='tstring_end'>&#39;</span></span>
133
+ <span class='id identifier rubyid_base'>base</span><span class='period'>.</span><span class='id identifier rubyid_include'>include</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="HyperRecord.html" title="HyperRecord (module)">HyperRecord</a></span></span><span class='rparen'>)</span>
134
+ <span class='kw'>else</span>
135
+ <span class='id identifier rubyid_base'>base</span><span class='period'>.</span><span class='id identifier rubyid_extend'>extend</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="HyperRecord.html" title="HyperRecord (module)">HyperRecord</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="HyperRecord/ServerClassMethods.html" title="HyperRecord::ServerClassMethods (module)">ServerClassMethods</a></span></span><span class='rparen'>)</span>
136
+ <span class='kw'>end</span>
137
+ <span class='kw'>end</span>
138
+ <span class='kw'>end</span>
139
+
140
+ <span class='kw'>class</span> <span class='const'>Customer</span>
141
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>ApplicationHyperRecord</span>
142
+ <span class='id identifier rubyid_has_many'>has_many</span> <span class='symbol'>:addresses</span>
143
+
144
+ <span class='kw'>unless</span> <span class='const'>RUBY_ENGINE</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>opal</span><span class='tstring_end'>&#39;</span></span>
145
+ <span class='comment'># methods which should only exist on the server
146
+ </span> <span class='kw'>end</span>
147
+ <span class='kw'>end</span>
148
+
149
+ <span class='id identifier rubyid_customer'>customer</span> <span class='op'>=</span> <span class='const'>Customer</span><span class='period'>.</span><span class='id identifier rubyid_find'>find</span><span class='lparen'>(</span><span class='int'>123</span><span class='rparen'>)</span> <span class='comment'># ---&gt; GET api/customer/123.json
150
+ </span><span class='id identifier rubyid_customer'>customer</span><span class='period'>.</span><span class='id identifier rubyid_addresses'>addresses</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_address'>address</span><span class='op'>|</span>
151
+ <span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_address'>address</span><span class='period'>.</span><span class='id identifier rubyid_post_code'>post_code</span>
152
+ <span class='kw'>end</span>
153
+ </code></pre>
154
+
155
+ <h3 id="label-Stage+3+-+Implement+a+Redis+based+pub-sub+mechanism+so+the+client+code+is+notified+when+the+server+data+changes">Stage 3 - Implement a Redis based pub-sub mechanism so the client code is notified when the server data changes</h3>
156
+
157
+ <pre class="code ruby"><code class="ruby"><span class='kw'>class</span> <span class='const'>ApplicationController</span>
158
+ <span class='id identifier rubyid_include'>include</span> <span class='const'><span class='object_link'><a href="Hyperloop.html" title="Hyperloop (module)">Hyperloop</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Hyperloop/Resource.html" title="Hyperloop::Resource (module)">Resource</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Hyperloop/Resource/PubSub.html" title="Hyperloop::Resource::PubSub (module)">PubSub</a></span></span>
159
+
160
+ <span class='kw'>def</span> <span class='id identifier rubyid_my_action'>my_action</span>
161
+ <span class='comment'># available methods for pubsub
162
+ </span> <span class='id identifier rubyid_publish_collection'>publish_collection</span><span class='lparen'>(</span><span class='id identifier rubyid_base_record'>base_record</span><span class='comma'>,</span> <span class='id identifier rubyid_collection_name'>collection_name</span><span class='comma'>,</span> <span class='id identifier rubyid_record'>record</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
163
+ <span class='id identifier rubyid_publish_record'>publish_record</span><span class='lparen'>(</span><span class='id identifier rubyid_record'>record</span><span class='rparen'>)</span>
164
+ <span class='id identifier rubyid_publish_scope'>publish_scope</span><span class='lparen'>(</span><span class='id identifier rubyid_record_class'>record_class</span><span class='comma'>,</span> <span class='id identifier rubyid_scope_name'>scope_name</span><span class='rparen'>)</span>
165
+
166
+ <span class='id identifier rubyid_subscribe_collection'>subscribe_collection</span><span class='lparen'>(</span><span class='id identifier rubyid_collection'>collection</span><span class='comma'>,</span> <span class='id identifier rubyid_base_record'>base_record</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_collection_name'>collection_name</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
167
+ <span class='id identifier rubyid_subscribe_record'>subscribe_record</span><span class='lparen'>(</span><span class='id identifier rubyid_record'>record</span><span class='rparen'>)</span>
168
+ <span class='id identifier rubyid_subscribe_scope'>subscribe_scope</span><span class='lparen'>(</span><span class='id identifier rubyid_collection'>collection</span><span class='comma'>,</span> <span class='id identifier rubyid_record_class'>record_class</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_scope_name'>scope_name</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
169
+
170
+ <span class='id identifier rubyid_pub_sub_collection'>pub_sub_collection</span><span class='lparen'>(</span><span class='id identifier rubyid_collection'>collection</span><span class='comma'>,</span> <span class='id identifier rubyid_base_record'>base_record</span><span class='comma'>,</span> <span class='id identifier rubyid_collection_name'>collection_name</span><span class='comma'>,</span> <span class='id identifier rubyid_causing_record'>causing_record</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
171
+ <span class='id identifier rubyid_pub_sub_record'>pub_sub_record</span><span class='lparen'>(</span><span class='id identifier rubyid_record'>record</span><span class='rparen'>)</span>
172
+ <span class='id identifier rubyid_pub_sub_scope'>pub_sub_scope</span><span class='lparen'>(</span><span class='id identifier rubyid_collection'>collection</span><span class='comma'>,</span> <span class='id identifier rubyid_record_class'>record_class</span><span class='comma'>,</span> <span class='id identifier rubyid_scope_name'>scope_name</span><span class='rparen'>)</span>
173
+ <span class='kw'>end</span>
174
+ <span class='kw'>end</span>
175
+ </code></pre>
176
+
177
+ <p>EXAMPLE</p>
178
+
179
+ <h2 id="label-Implementation">Implementation</h2>
180
+
181
+ <p>How to install.…</p>
182
+ </div></div>
183
+
184
+ <div id="footer">
185
+ Generated on Tue Jun 5 23:13:52 2018 by
186
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
187
+ 0.9.13 (ruby-2.5.1).
188
+ </div>
189
+
190
+ </div>
191
+ </body>
192
+ </html>
@@ -0,0 +1,71 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
5
+ <meta charset="utf-8" />
6
+
7
+ <link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" charset="utf-8" />
8
+
9
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
10
+
11
+
12
+
13
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
14
+
15
+ <script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
16
+
17
+
18
+ <title>File List</title>
19
+ <base id="base_target" target="_parent" />
20
+ </head>
21
+ <body>
22
+ <div id="content">
23
+ <div class="fixed_header">
24
+ <h1 id="full_list_header">File List</h1>
25
+ <div id="full_list_nav">
26
+
27
+ <span><a target="_self" href="class_list.html">
28
+ Classes
29
+ </a></span>
30
+
31
+ <span><a target="_self" href="method_list.html">
32
+ Methods
33
+ </a></span>
34
+
35
+ <span><a target="_self" href="file_list.html">
36
+ Files
37
+ </a></span>
38
+
39
+ </div>
40
+
41
+ <div id="search">Search: <input type="text" /></div>
42
+ </div>
43
+
44
+ <ul id="full_list" class="file">
45
+
46
+
47
+ <li id="object_README" class="odd">
48
+ <div class="item"><span class="object_link"><a href="index.html" title="README">README</a></span></div>
49
+ </li>
50
+
51
+
52
+ <li id="object_API" class="even">
53
+ <div class="item"><span class="object_link"><a href="file.API.html" title="API">API</a></span></div>
54
+ </li>
55
+
56
+
57
+ <li id="object_JSON_format" class="odd">
58
+ <div class="item"><span class="object_link"><a href="file.JSON_format.html" title="JSON_format">JSON_format</a></span></div>
59
+ </li>
60
+
61
+
62
+ <li id="object_PubSub" class="even">
63
+ <div class="item"><span class="object_link"><a href="file.PubSub.html" title="PubSub">PubSub</a></span></div>
64
+ </li>
65
+
66
+
67
+
68
+ </ul>
69
+ </div>
70
+ </body>
71
+ </html>
data/docs/frames.html ADDED
@@ -0,0 +1,17 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>Documentation by YARD 0.9.13</title>
6
+ </head>
7
+ <script type="text/javascript" charset="utf-8">
8
+ var match = unescape(window.location.hash).match(/^#!(.+)/);
9
+ var name = match ? match[1] : 'index.html';
10
+ name = name.replace(/^(\w+):\/\//, '').replace(/^\/\//, '');
11
+ window.top.location = name;
12
+ </script>
13
+ <noscript>
14
+ <h1>Oops!</h1>
15
+ <h2>YARD requires JavaScript!</h2>
16
+ </noscript>
17
+ </html>