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 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
@@ -1,5 +1,5 @@
1
1
  module Glass
2
2
  module Rails
3
- VERSION="0.0.8"
3
+ VERSION="0.0.9"
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.8
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-30 00:00:00.000000000 Z
13
+ date: 2013-05-31 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: railties