mobile_metrics 0.0.1 → 0.0.2

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 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