glass-rails 0.0.8 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/glass/client.rb +14 -6
- data/lib/glass/rails/version.rb +1 -1
- metadata +2 -2
data/lib/glass/client.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require "glass/api_keys"
|
2
2
|
require 'active_support/core_ext/hash/indifferent_access'
|
3
3
|
require "google/api_client"
|
4
|
+
|
4
5
|
module Glass
|
5
6
|
class Client
|
6
7
|
attr_accessor :access_token, :google_client, :mirror_api,
|
@@ -8,16 +9,12 @@ module Glass
|
|
8
9
|
:mirror_content_type, :timeline_item, :has_expired_token,
|
9
10
|
:api_keys, :timeline_list
|
10
11
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
12
|
def self.create(timeline_item, opts={})
|
15
13
|
client = new(opts.merge({google_account: timeline_item.google_account}))
|
16
14
|
client.set_timeline_item(timeline_item)
|
17
15
|
client
|
18
16
|
end
|
19
17
|
|
20
|
-
|
21
18
|
def initialize(opts)
|
22
19
|
self.api_keys = opts[:api_keys] || ::Glass::ApiKeys.new
|
23
20
|
self.google_client = ::Google::APIClient.new
|
@@ -57,12 +54,14 @@ module Glass
|
|
57
54
|
self
|
58
55
|
end
|
59
56
|
|
57
|
+
|
60
58
|
def json_content(options)
|
61
59
|
if c = options[:content]
|
62
60
|
data = c.is_a?(String) ? {text: c} : c
|
63
61
|
else
|
64
62
|
data = self.timeline_item.to_json.merge(options)
|
65
63
|
end
|
64
|
+
data = format_hash_properly(data)
|
66
65
|
mirror_api.timeline.insert.request_schema.new(data)
|
67
66
|
end
|
68
67
|
def text_content(text)
|
@@ -83,7 +82,7 @@ module Glass
|
|
83
82
|
|
84
83
|
def timeline_list(opts={as_hash: true})
|
85
84
|
retval = @timeline_list.nil? ? self.list(opts) : @timeline_list
|
86
|
-
opts[:as_hash] ? retval.map(&:to_hash) : retval
|
85
|
+
opts[:as_hash] ? retval.map(&:to_hash).map(&:with_indifferent_access) : retval
|
87
86
|
end
|
88
87
|
|
89
88
|
|
@@ -157,6 +156,15 @@ module Glass
|
|
157
156
|
ea_data_hash["id_token"] = google_data_hash["id_token"]
|
158
157
|
ea_data_hash
|
159
158
|
end
|
160
|
-
|
159
|
+
def format_hash_properly(data_hash)
|
160
|
+
data_hash.inject({}) do |acc, (key, value)|
|
161
|
+
new_key = key.to_s.camelize(:lower)
|
162
|
+
acc[new_key]= (new_key == "displayTime") ? format_date(value) : value
|
163
|
+
acc
|
164
|
+
end.with_indifferent_access
|
165
|
+
end
|
166
|
+
def format_date(time)
|
167
|
+
time.to_time.utc.iso8601.gsub("Z", ".000Z") # fucking google has a weird format
|
168
|
+
end
|
161
169
|
end
|
162
170
|
end
|
data/lib/glass/rails/version.rb
CHANGED
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.
|
4
|
+
version: 0.0.9
|
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-
|
13
|
+
date: 2013-05-31 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: railties
|