mobile_metrics 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 66ed534e226cd7151aba4d7c2bae9ca551af7361
4
- data.tar.gz: d9833bebadf111fab41104b16bfe15ebb321c52f
3
+ metadata.gz: 4fad7c783004d3f8c01f018cb3350529d04d0d4e
4
+ data.tar.gz: d1610532a69212e81f2c3fe3d83d767de954d46b
5
5
  SHA512:
6
- metadata.gz: 130948656a1dcf4546ffe2a2fb85d53ec06952409fe17c3118679903680801fe0f5cb8ad5553f730e1621a507b47022d6654be8b3cf9082a7e11c8b8f2d263b7
7
- data.tar.gz: b9a3295ba27805917a25cd024e6f51818ce5a330af93497a1503ed4c456344d15d561ba4cedd52f62779a0b03e84e88be2922c1197abe8e04e68db9808feb8ab
6
+ metadata.gz: 557743d0e0138090eb50ac275a8f68d582fcdb69a175e6f71779f685c7e72ff319e3cf8ef4a4786ac9e91500cfe253caec9dec4baabd1703d1df60a72ed7c958
7
+ data.tar.gz: 7552fda88947222053e6eb0e66521448ab1f5dfcc3667ca818328acd7fbbad6acb7fa1f73686936468cae66dbfa4fbf0ee869a4e22f0f7743fad56706bd723a3
data/.gitignore CHANGED
@@ -9,3 +9,5 @@
9
9
 
10
10
  # rspec failure tracking
11
11
  .rspec_status
12
+
13
+ *.gem
@@ -128,20 +128,17 @@ module MobileMetrics
128
128
 
129
129
  def self.log_ratio_metric(name:, ratio:)
130
130
  overrides = {name: METRIC_RATIO, data: {name: name, ratio: ratio.to_f }}
131
- metric = merge_hashes(default_metric, overrides).to_json
132
- append_to_log(metric)
131
+ log_partial_metric(overrides)
133
132
  end
134
133
 
135
134
  def self.log_counter_metric(name:, count:)
136
135
  overrides = {name: METRIC_COUNTER, data: {name: name, count: count.to_i }}
137
- metric = merge_hashes(default_metric, overrides).to_json
138
- append_to_log(metric)
136
+ log_partial_metric(overrides)
139
137
  end
140
138
 
141
139
  def self.log_size_metric(name:, sizeInBytes:, filename:, artifactUrl:)
142
140
  overrides = {name: METRIC_SIZE, data: {name: name, filename: filename, sizeInBytes: sizeInBytes, artifactUrl: artifactUrl }}
143
- metric = merge_hashes(default_metric, overrides).to_json
144
- append_to_log(metric)
141
+ log_partial_metric(overrides)
145
142
  end
146
143
 
147
144
  def self.start_timer_metric(name:)
@@ -168,8 +165,7 @@ module MobileMetrics
168
165
 
169
166
  # log to file
170
167
  overrides = {name: METRIC_TIMER, data: {name: name, duration: delta_in_ms }}
171
- metric = merge_hashes(default_metric, overrides).to_json
172
- append_to_log(metric)
168
+ log_partial_metric(overrides)
173
169
  end
174
170
 
175
171
  # Block based timer. This is the recommended way to timer operations.
@@ -292,6 +288,17 @@ module MobileMetrics
292
288
  Process.clock_gettime(Process::CLOCK_MONOTONIC)
293
289
  end
294
290
 
291
+ # Each metric should call this method.
292
+ # This method handles merging the metric hash with the default hash,
293
+ # Generates the JSON with the keys in the right order, then appends to the log.
294
+ def self.log_partial_metric(overrides)
295
+ merged_hash = merge_hashes(default_metric, overrides)
296
+ key_order = ['time', 'name', 'level', 'data', 'context']
297
+ ordered_hash = Hash[ merged_hash.sort_by { |key, val| key_order.index(key.to_s) || 999 } ]
298
+ metric = ordered_hash.to_json
299
+ append_to_log(metric)
300
+ end
301
+
295
302
  # Util method for merging the default hash values and overrides recursively as we want them
296
303
  def self.merge_hashes(default, overrides)
297
304
  default.merge(overrides) { |key, oldval, newval|
@@ -1,3 +1,3 @@
1
1
  module MobileMetrics
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mobile_metrics
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - dbeard
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-06-12 00:00:00.000000000 Z
11
+ date: 2018-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler