greek_fire 0.4.1 → 0.5.0

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: 41151febd6fe48b5ad477f84972314d98461084a
4
- data.tar.gz: 8d67d0659e1397c3ae4d8d87fc53bbda5dcc70fa
3
+ metadata.gz: 6001cf601d2e1a55fcaea63b74aff762e12416bb
4
+ data.tar.gz: 7a8a16dcef133314ea89ba7de80c8cf8f2de759b
5
5
  SHA512:
6
- metadata.gz: ace3291cd59dbcc2141e8bf364e5dbbe065aced0076938508b3d7e8d687c7acb60750e237a15b326db2d53161247c6ffa7647d0a9692a2f3a15c426a23945369
7
- data.tar.gz: ae04df429f6f0431c632bb9f37b5975d49c6f2a7bd7a0de1d6d7158b9fc1f7b06864f8d92a485b223abc7ec66b68f102b1f10120206ddb173b99bbefd4cdf77e
6
+ metadata.gz: 5fecaf04786d7e7a344800be8d54b2c00c5c27a2e173814c2c0ff8857021ff6fc546d1926f46e4212d5f0e361838008fc97d1d7e6752550f4f75b70df512b3ee
7
+ data.tar.gz: 8a671d0d3d15ecee6569b6dfbcfdef04418ae6ad43a43338a6caeb16442db5265c0a79309d82c90ffcd8354a31753974d9bdbc889ea21f63a380438d9234dea3
@@ -18,22 +18,25 @@ module GreekFire
18
18
  def initialize(name, description:nil, labels:nil, &block)
19
19
  labels ||= {}
20
20
  @name = name
21
+ @extra_labels = if GreekFire::Measure.config.default_labels
22
+ {
23
+ app_name: ::Rails.application.class.parent_name,
24
+ app_env: Rails.env.to_s
25
+ }
26
+ else
27
+ { }
28
+ end
21
29
 
22
- @labels = if GreekFire::Measure.config.default_labels
23
- {
24
- app_name: ::Rails.application.class.parent_name,
25
- app_env: Rails.env.to_s
26
- }
27
- else
28
- { }
29
- end.merge(labels)
30
+ @labels = labels
30
31
 
31
32
  @description = description
32
33
  @callable = block
33
34
  end
34
35
 
35
36
  def labels
36
- label_products(convert_label_values_to_array @labels)
37
+ return label_products(convert_label_values_to_array(@labels.dup.clear.update(@extra_labels).merge(@labels))) if @labels.is_a?(Hash)
38
+
39
+ @labels.map.with_index { |label, i| @labels[i].dup.clear.update(@extra_labels).merge(label) }
37
40
  end
38
41
 
39
42
  def value(labels)
@@ -76,7 +79,7 @@ module GreekFire
76
79
  return [{}] unless attrs.size > 0
77
80
 
78
81
  product = attrs[0].product(*attrs[1..-1])
79
- product.map{ |p| Hash[keys.zip p] }
82
+ product.map{ |p| HashWithIndifferentAccess[keys.zip p] }
80
83
  end
81
84
 
82
85
  end
@@ -0,0 +1,22 @@
1
+ module GreekFire
2
+ class SmartLabel < HashWithIndifferentAccess
3
+ attr_reader :value
4
+
5
+ def initialize(value, key_pairs)
6
+ super(key_pairs)
7
+ @value = value
8
+ end
9
+
10
+ def update(other_hash)
11
+ super(other_hash)
12
+ @value = other_hash.value if other_hash.is_a? SmartLabel
13
+ self
14
+ end
15
+
16
+ def dup
17
+ self.class.new(value, self).tap do |new_hash|
18
+ set_defaults(new_hash)
19
+ end
20
+ end
21
+ end
22
+ end
@@ -1,3 +1,3 @@
1
1
  module GreekFire
2
- VERSION = '0.4.1'
2
+ VERSION = '0.5.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: greek_fire
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - cconstantine
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-07 00:00:00.000000000 Z
11
+ date: 2017-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec-rails
@@ -85,6 +85,7 @@ files:
85
85
  - app/models/greek_fire/measure.rb
86
86
  - app/models/greek_fire/measure_set.rb
87
87
  - app/models/greek_fire/metric.rb
88
+ - app/models/greek_fire/smart_label.rb
88
89
  - app/views/greek_fire/counters/_counter.html.erb
89
90
  - app/views/greek_fire/gauges/_gauge.html.erb
90
91
  - app/views/greek_fire/measure_sets/_measure_set.erb