glass-rails 0.1.3 → 0.1.4
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.
- 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.
|