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 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
@@ -1,5 +1,5 @@
1
1
  module Glass
2
2
  module Rails
3
- VERSION="0.1.3"
3
+ VERSION="0.1.4"
4
4
  end
5
5
  end
@@ -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
@@ -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
- self.default_template = opts[:with] if opts[:with]
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!(glass_item_id: self.glass_item_id)
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!(glass_item_id: self.glass_item_id)
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(id: self.glass_item_id)
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.3
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-17 00:00:00.000000000 Z
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: 1.8.25
199
+ rubygems_version: 2.0.3
219
200
  signing_key:
220
- specification_version: 3
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.