glass-rails 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/glass/rails/version.rb +1 -1
- data/lib/glass/subscription.rb +1 -1
- data/lib/glass/timeline_item.rb +55 -35
- metadata +5 -24
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 19353d5df818760d42848f4b11e72c893b1111e9
|
4
|
+
data.tar.gz: e16f222e3a56f981bd1e2b4d4070bc89a5905303
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 1263100e4cd2cbddd1d795eb7ec11ef3ea5a36bad7120890f70efce8e09f64a35f6725f28806e594f360df7c1f110ba1aa521c01a01b0f039cbe82a4108ef246
|
7
|
+
data.tar.gz: 440c742944f9628d8a7b243a8c52a7b3bb934bb81c4f08f2f6ce516b46ad22a2346addd6570b5e320c97caeac514f97b5412140a4e8ae3a31cc285dfedfa15a8
|
data/lib/glass/rails/version.rb
CHANGED
data/lib/glass/subscription.rb
CHANGED
@@ -30,7 +30,7 @@ module Glass
|
|
30
30
|
|
31
31
|
## Must be HTTPS
|
32
32
|
def callback_url
|
33
|
-
Rails.application.routes.url_helpers.glass_notifications_callback_url(protocol: 'https')
|
33
|
+
::Rails.application.routes.url_helpers.glass_notifications_callback_url(protocol: 'https')
|
34
34
|
end
|
35
35
|
|
36
36
|
## Token string used to identify user in the callback
|
data/lib/glass/timeline_item.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'active_record'
|
2
|
+
require 'active_support/core_ext/hash/indifferent_access'
|
2
3
|
require "glass/menu_item"
|
3
4
|
## this is an abstract class, not intended to be
|
4
5
|
## used directly
|
@@ -14,9 +15,9 @@ module Glass
|
|
14
15
|
|
15
16
|
belongs_to :google_account
|
16
17
|
|
17
|
-
attr_accessible :display_time, :glass_content, :glass_content_type,
|
18
|
-
:glass_created_at, :glass_etag, :glass_item_id,
|
19
|
-
:glass_kind, :glass_self_link, :glass_updated_at,
|
18
|
+
attr_accessible :display_time, :glass_content, :glass_content_type,
|
19
|
+
:glass_created_at, :glass_etag, :glass_item_id,
|
20
|
+
:glass_kind, :glass_self_link, :glass_updated_at,
|
20
21
|
:is_deleted, :google_account_id
|
21
22
|
|
22
23
|
|
@@ -28,15 +29,15 @@ module Glass
|
|
28
29
|
|
29
30
|
class_attribute :actions
|
30
31
|
class_attribute :menu_items
|
31
|
-
class_attribute :default_template
|
32
|
+
class_attribute :default_template
|
32
33
|
|
33
34
|
attr_accessor :template_type, :to_json
|
34
35
|
|
35
36
|
|
36
37
|
|
37
38
|
## only a writer for these two
|
38
|
-
## because I want to hook an error
|
39
|
-
## message to each of these if they haven't
|
39
|
+
## because I want to hook an error
|
40
|
+
## message to each of these if they haven't
|
40
41
|
## had there values set yet.
|
41
42
|
attr_writer :client, :mirror_content, :template_name
|
42
43
|
|
@@ -53,7 +54,7 @@ module Glass
|
|
53
54
|
def mirror_content
|
54
55
|
raise UnserializedTemplateError unless @mirror_content
|
55
56
|
@mirror_content
|
56
|
-
end
|
57
|
+
end
|
57
58
|
def client
|
58
59
|
raise UnserializedTemplateError unless @client
|
59
60
|
@client
|
@@ -68,18 +69,36 @@ module Glass
|
|
68
69
|
|
69
70
|
|
70
71
|
## this methods sets the default template for
|
71
|
-
## all instances of the class.
|
72
|
+
## all instances of the class.
|
72
73
|
|
73
|
-
## Usage:
|
74
|
+
## Usage:
|
74
75
|
## class Glass::Tweet < Glass::TimelineItem
|
75
76
|
|
76
|
-
## defaults_template "table.html.erb"
|
77
|
+
## defaults_template with: "table.html.erb"
|
77
78
|
## this defaults to the glass_template_path
|
78
79
|
## which you set in your glass initializer.
|
79
80
|
|
80
81
|
## end
|
81
82
|
def self.defaults_template(opts={})
|
82
|
-
|
83
|
+
puts "DEPRECATION WARNING: defaults_template is now deprecated, please use defaults_template_with instead"
|
84
|
+
self.default_template = opts[:with]
|
85
|
+
end
|
86
|
+
|
87
|
+
## this methods sets the default template for
|
88
|
+
## all instances of the class.
|
89
|
+
|
90
|
+
## Usage:
|
91
|
+
## class Glass::Tweet < Glass::TimelineItem
|
92
|
+
|
93
|
+
## defaults_template_with "table.html.erb"
|
94
|
+
## this defaults to the glass_template_path
|
95
|
+
## which you set in your glass initializer.
|
96
|
+
|
97
|
+
## end
|
98
|
+
def self.defaults_template_with(name_of_template)
|
99
|
+
if name_of_template.is_a? Symbol
|
100
|
+
self.default_template = name_of_template.to_s + ".html.erb"
|
101
|
+
end
|
83
102
|
end
|
84
103
|
|
85
104
|
|
@@ -90,15 +109,15 @@ module Glass
|
|
90
109
|
|
91
110
|
|
92
111
|
## this methods sets the default template for
|
93
|
-
## all instances of the class.
|
112
|
+
## all instances of the class.
|
94
113
|
|
95
|
-
## Usage:
|
114
|
+
## Usage:
|
96
115
|
## class Glass::Tweet < Glass::TimelineItem
|
97
116
|
|
98
117
|
## manages_templates :template_manager_name
|
99
118
|
## this will set your template manager
|
100
119
|
## for this class. this will override
|
101
|
-
## defaults_template path if it is
|
120
|
+
## defaults_template path if it is
|
102
121
|
## defined.
|
103
122
|
## end
|
104
123
|
def self.manages_templates(opts={})
|
@@ -110,9 +129,9 @@ module Glass
|
|
110
129
|
|
111
130
|
|
112
131
|
## this methods sets the default template for
|
113
|
-
## all instances of the class.
|
132
|
+
## all instances of the class.
|
114
133
|
|
115
|
-
## Usage:
|
134
|
+
## Usage:
|
116
135
|
## class Glass::Tweet < Glass::TimelineItem
|
117
136
|
|
118
137
|
## has_menu_item :my_custom_action,
|
@@ -125,11 +144,11 @@ module Glass
|
|
125
144
|
## # action occurs.
|
126
145
|
## end
|
127
146
|
## end
|
128
|
-
def self.has_menu_item(action_sym, opts={})
|
147
|
+
def self.has_menu_item(action_sym, opts={})
|
129
148
|
self.actions ||= []
|
130
149
|
self.menu_items ||= []
|
131
150
|
unless self.actions.include?(action_sym)
|
132
|
-
self.actions += [action_sym]
|
151
|
+
self.actions += [action_sym]
|
133
152
|
defines_callback_methods(action_sym, opts)
|
134
153
|
menu_item = ::Glass::MenuItem.create(action_sym, opts)
|
135
154
|
self.menu_items += [menu_item]
|
@@ -139,17 +158,17 @@ module Glass
|
|
139
158
|
|
140
159
|
|
141
160
|
## this is really just a little meta-programming
|
142
|
-
## trick which basically forces a call to the method
|
161
|
+
## trick which basically forces a call to the method
|
143
162
|
## specified by with parameter in the has_menu_item method.
|
144
|
-
##
|
145
|
-
## it allows you to put the callback logic right
|
146
|
-
## there in the model.
|
163
|
+
##
|
164
|
+
## it allows you to put the callback logic right
|
165
|
+
## there in the model.
|
147
166
|
|
148
167
|
def self.defines_callback_methods(action, opts)
|
149
168
|
self.send(:define_method, "handles_#{action.to_s.underscore}") do |json|
|
150
169
|
if self.respond_to?(opts[:handles_with])
|
151
170
|
self.method(opts[:handles_with]).arity > 0 ? self.send(opts[:handles_with], json) : self.send(opts[:handles_with])
|
152
|
-
else
|
171
|
+
else
|
153
172
|
raise MenuItemHandlerIsNotDefinedError
|
154
173
|
end
|
155
174
|
end
|
@@ -173,7 +192,7 @@ module Glass
|
|
173
192
|
|
174
193
|
|
175
194
|
|
176
|
-
## this method will instantiate instance variables
|
195
|
+
## this method will instantiate instance variables
|
177
196
|
## in the erb template with the values you specify
|
178
197
|
## in a hash parameter under the key [:template_variables]
|
179
198
|
|
@@ -182,16 +201,16 @@ module Glass
|
|
182
201
|
## @timeline_object = Glass::TimelineItem.new(google_account_id: @google_account.id)
|
183
202
|
## @timeline_object.serialize({template_variables: {content: "this is the content
|
184
203
|
## i've pushed to glass"}})
|
185
|
-
##
|
204
|
+
##
|
186
205
|
## would render this erb template:
|
187
206
|
|
188
207
|
|
189
|
-
## <article>
|
208
|
+
## <article>
|
190
209
|
## <%= @content %>
|
191
210
|
## </article>
|
192
211
|
|
193
212
|
## into this:
|
194
|
-
|
213
|
+
|
195
214
|
## '<article> \n this is the content i've pushed to glass \n </article>'
|
196
215
|
##
|
197
216
|
##
|
@@ -199,7 +218,7 @@ module Glass
|
|
199
218
|
## requests you send with your push.
|
200
219
|
|
201
220
|
|
202
|
-
##
|
221
|
+
##
|
203
222
|
def serialize(opts={})
|
204
223
|
raise GoogleAccountNotSpecifiedError unless self.google_account.present?
|
205
224
|
type = self.template_type || :html
|
@@ -224,7 +243,7 @@ module Glass
|
|
224
243
|
|
225
244
|
def mirror_insert(opts={})
|
226
245
|
result = client.insert(opts)
|
227
|
-
raise TimelineInsertionError if result.error?
|
246
|
+
raise TimelineInsertionError if result.error?
|
228
247
|
save_data(result)
|
229
248
|
end
|
230
249
|
def mirror_get(opts={})
|
@@ -233,20 +252,20 @@ module Glass
|
|
233
252
|
save_data(result)
|
234
253
|
end
|
235
254
|
def mirror_patch(opts={})
|
236
|
-
opts.merge!
|
255
|
+
opts.merge! glass_item_id: self.glass_item_id
|
237
256
|
self.client = Glass::Client.create(self)
|
238
257
|
result = client.patch(opts)
|
239
258
|
save_data(result)
|
240
259
|
end
|
241
260
|
def mirror_update(timeline_item, opts={})
|
242
|
-
opts.merge!
|
261
|
+
opts.merge! glass_item_id: self.glass_item_id
|
243
262
|
self.client = Glass::Client.create(self)
|
244
|
-
result = client.update(timeline_item, opts)
|
245
|
-
save_data(result)
|
263
|
+
result = client.update(timeline_item, opts)
|
264
|
+
save_data(result)
|
246
265
|
end
|
247
266
|
def mirror_delete
|
248
267
|
self.client = Glass::Client.create(self)
|
249
|
-
client.delete
|
268
|
+
client.delete id: self.glass_item_id
|
250
269
|
self.update_attributes(is_deleted: true)
|
251
270
|
end
|
252
271
|
|
@@ -256,7 +275,7 @@ module Glass
|
|
256
275
|
[:html, :text].each do |result_type|
|
257
276
|
result_data_type = result_type if data.send(result_type).present?
|
258
277
|
end
|
259
|
-
self.update_attributes(glass_item_id: data.id,
|
278
|
+
self.update_attributes(glass_item_id: data.id,
|
260
279
|
glass_etag: data.etag,
|
261
280
|
glass_self_link: data.self_link,
|
262
281
|
glass_kind: data.kind,
|
@@ -264,6 +283,7 @@ module Glass
|
|
264
283
|
glass_updated_at: data.updated,
|
265
284
|
glass_content_type: result_data_type,
|
266
285
|
glass_content: data.send(result_data_type))
|
286
|
+
|
267
287
|
to_indifferent_json_hash(result)
|
268
288
|
end
|
269
289
|
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glass-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.4
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Kunal Modi
|
@@ -10,12 +9,11 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2013-06-
|
12
|
+
date: 2013-06-21 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: railties
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
18
|
- - '>='
|
21
19
|
- !ruby/object:Gem::Version
|
@@ -23,7 +21,6 @@ dependencies:
|
|
23
21
|
type: :runtime
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
24
|
requirements:
|
28
25
|
- - '>='
|
29
26
|
- !ruby/object:Gem::Version
|
@@ -31,7 +28,6 @@ dependencies:
|
|
31
28
|
- !ruby/object:Gem::Dependency
|
32
29
|
name: google-api-client
|
33
30
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
31
|
requirements:
|
36
32
|
- - '>='
|
37
33
|
- !ruby/object:Gem::Version
|
@@ -39,7 +35,6 @@ dependencies:
|
|
39
35
|
type: :runtime
|
40
36
|
prerelease: false
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
38
|
requirements:
|
44
39
|
- - '>='
|
45
40
|
- !ruby/object:Gem::Version
|
@@ -47,7 +42,6 @@ dependencies:
|
|
47
42
|
- !ruby/object:Gem::Dependency
|
48
43
|
name: bundler
|
49
44
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
45
|
requirements:
|
52
46
|
- - ~>
|
53
47
|
- !ruby/object:Gem::Version
|
@@ -55,7 +49,6 @@ dependencies:
|
|
55
49
|
type: :development
|
56
50
|
prerelease: false
|
57
51
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
52
|
requirements:
|
60
53
|
- - ~>
|
61
54
|
- !ruby/object:Gem::Version
|
@@ -63,7 +56,6 @@ dependencies:
|
|
63
56
|
- !ruby/object:Gem::Dependency
|
64
57
|
name: rake
|
65
58
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
59
|
requirements:
|
68
60
|
- - '>='
|
69
61
|
- !ruby/object:Gem::Version
|
@@ -71,7 +63,6 @@ dependencies:
|
|
71
63
|
type: :development
|
72
64
|
prerelease: false
|
73
65
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
66
|
requirements:
|
76
67
|
- - '>='
|
77
68
|
- !ruby/object:Gem::Version
|
@@ -79,7 +70,6 @@ dependencies:
|
|
79
70
|
- !ruby/object:Gem::Dependency
|
80
71
|
name: pry
|
81
72
|
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
73
|
requirements:
|
84
74
|
- - '>='
|
85
75
|
- !ruby/object:Gem::Version
|
@@ -87,7 +77,6 @@ dependencies:
|
|
87
77
|
type: :development
|
88
78
|
prerelease: false
|
89
79
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
80
|
requirements:
|
92
81
|
- - '>='
|
93
82
|
- !ruby/object:Gem::Version
|
@@ -95,7 +84,6 @@ dependencies:
|
|
95
84
|
- !ruby/object:Gem::Dependency
|
96
85
|
name: pry-rails
|
97
86
|
requirement: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
87
|
requirements:
|
100
88
|
- - '>='
|
101
89
|
- !ruby/object:Gem::Version
|
@@ -103,7 +91,6 @@ dependencies:
|
|
103
91
|
type: :development
|
104
92
|
prerelease: false
|
105
93
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
94
|
requirements:
|
108
95
|
- - '>='
|
109
96
|
- !ruby/object:Gem::Version
|
@@ -111,7 +98,6 @@ dependencies:
|
|
111
98
|
- !ruby/object:Gem::Dependency
|
112
99
|
name: rspec
|
113
100
|
requirement: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
101
|
requirements:
|
116
102
|
- - '>='
|
117
103
|
- !ruby/object:Gem::Version
|
@@ -119,7 +105,6 @@ dependencies:
|
|
119
105
|
type: :development
|
120
106
|
prerelease: false
|
121
107
|
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
none: false
|
123
108
|
requirements:
|
124
109
|
- - '>='
|
125
110
|
- !ruby/object:Gem::Version
|
@@ -127,7 +112,6 @@ dependencies:
|
|
127
112
|
- !ruby/object:Gem::Dependency
|
128
113
|
name: rspec-rails
|
129
114
|
requirement: !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
115
|
requirements:
|
132
116
|
- - ~>
|
133
117
|
- !ruby/object:Gem::Version
|
@@ -135,7 +119,6 @@ dependencies:
|
|
135
119
|
type: :development
|
136
120
|
prerelease: false
|
137
121
|
version_requirements: !ruby/object:Gem::Requirement
|
138
|
-
none: false
|
139
122
|
requirements:
|
140
123
|
- - ~>
|
141
124
|
- !ruby/object:Gem::Version
|
@@ -150,7 +133,6 @@ extra_rdoc_files: []
|
|
150
133
|
files:
|
151
134
|
- .DS_Store
|
152
135
|
- .gitignore
|
153
|
-
- .rvmrc
|
154
136
|
- Gemfile
|
155
137
|
- LICENSE.txt
|
156
138
|
- README.md
|
@@ -197,27 +179,26 @@ files:
|
|
197
179
|
homepage: http://thirst.github.io/glass-rails/
|
198
180
|
licenses:
|
199
181
|
- MIT
|
182
|
+
metadata: {}
|
200
183
|
post_install_message:
|
201
184
|
rdoc_options: []
|
202
185
|
require_paths:
|
203
186
|
- lib
|
204
187
|
required_ruby_version: !ruby/object:Gem::Requirement
|
205
|
-
none: false
|
206
188
|
requirements:
|
207
189
|
- - '>='
|
208
190
|
- !ruby/object:Gem::Version
|
209
191
|
version: '0'
|
210
192
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
211
|
-
none: false
|
212
193
|
requirements:
|
213
194
|
- - '>='
|
214
195
|
- !ruby/object:Gem::Version
|
215
196
|
version: '0'
|
216
197
|
requirements: []
|
217
198
|
rubyforge_project:
|
218
|
-
rubygems_version:
|
199
|
+
rubygems_version: 2.0.3
|
219
200
|
signing_key:
|
220
|
-
specification_version:
|
201
|
+
specification_version: 4
|
221
202
|
summary: A framework for creating google glass applications using ruby on rails. This
|
222
203
|
probably isn't for everyone, but we did our best to make it suitable for as many
|
223
204
|
cases as possible.
|