glass-rails 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -119,7 +119,54 @@ timeline, you are registered to listen for notifications
119
119
  that the user has acted on your card. You can specify a callback method
120
120
  using the `has_menu_item` helper method, by passing in the
121
121
 
122
+ ### Glass Models - Menu Item Callbacks
122
123
 
124
+ This framework does most of the heavy lifting for you for subscribing
125
+ to notifications to your timeline items. If a glass-user 'acts' on a menu-item
126
+ which you have specified on your card, you will generally be alerted of
127
+ that action (with the exception of a few built-in actions, like 'read-aloud').
128
+
129
+ You may want to perform actions when certain actions are performed. For
130
+ example, if you have an 'email me' menu-item defined, you may want to
131
+ perform a back-end task which emails some content to a glass-user.
132
+
133
+ The helper method `has_menu_item` therefore takes an options hash: if you specify
134
+ a key called "handles_with", then we will automatically invoke the value as an
135
+ instance method when the callback is triggered.
136
+
137
+ For example, in the code sample below:
138
+
139
+ ```ruby
140
+ class Glass::Tweet < Glass::TimelineItem
141
+ has_menu_item :email, handles_with: :respond_to_email_request
142
+ def respond_to_email_request
143
+
144
+ end
145
+ end
146
+ ```
147
+
148
+ .. whenever you receive a notification from google that an "email" action has
149
+ been performed, the method "respond_to_email_request" will be automatically
150
+ executed for you.
151
+
152
+ For greater control over handling the callback from google, if you
153
+ define your callback method as accepting a parameter, then we will pass
154
+ the response hash from google into the callback method.
155
+
156
+ For instance:
157
+
158
+ ```ruby
159
+ class Glass::Tweet < Glass::TimelineItem
160
+ has_menu_item :email, handles_with: :respond_to_email_request
161
+ def respond_to_email_request(response)
162
+ ### we will pass the response object
163
+ ### into the callback method, if you
164
+ ### have allowed the callback
165
+ ### to accept a parameter. This is done
166
+ ### via a method arity check.
167
+ end
168
+ end
169
+ ```
123
170
 
124
171
  ### Glass Models - (Posting Content)
125
172
 
@@ -160,9 +207,21 @@ mirror api for insertion into the timeline.
160
207
  Then all you have to do is use the following command to actually insert the content:
161
208
 
162
209
  ```ruby
163
- gt.client.insert
210
+ gt.insert()
164
211
  ```
165
212
 
213
+ Additionally, if you would like to merge in attributes into the hash before it is
214
+ posted to the mirror-api, then you can optionally pass in a hash of attributes
215
+ to the insert() method call, and the hash will be merged into the body_object that
216
+ is posted to the mirror api.
217
+
218
+ This last point is relevant, for example, in the case of reading aloud text.
219
+ To do so, you need to specify a speakableText: "some text to be read aloud" attribute
220
+ in the body object when it gets posted. You can therefore do something like this:
221
+
222
+ ```ruby
223
+ gt.insert(speakableText: "some text to be read aloud")
224
+ ```
166
225
 
167
226
  ## Contributing
168
227
 
@@ -16,7 +16,7 @@ class Glass::<%= model_name.camelize %> < Glass::TimelineItem
16
16
 
17
17
  has_menu_item :custom_action_name, display_name: "this is displayed",
18
18
  icon_url: "http://icons.iconarchive.com/icons/enhancedlabs/lha-objects/128/Filetype-URL-icon.png",
19
- handled_by: :custom_action_handler
19
+ handles_with: :custom_action_handler
20
20
 
21
21
 
22
22
 
@@ -1,5 +1,5 @@
1
1
  module Glass
2
2
  module Rails
3
- VERSION="0.0.6"
3
+ VERSION="0.0.7"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glass-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-05-24 00:00:00.000000000 Z
13
+ date: 2013-05-29 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: railties