influxer 1.1.3 → 1.2.1

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.
Files changed (51) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +92 -0
  3. data/{MIT-LICENSE → LICENSE.txt} +1 -1
  4. data/README.md +106 -47
  5. data/lib/influxer.rb +10 -9
  6. data/lib/influxer/client.rb +1 -1
  7. data/lib/influxer/config.rb +5 -4
  8. data/lib/influxer/engine.rb +1 -1
  9. data/lib/influxer/metrics/active_model3/model.rb +2 -4
  10. data/lib/influxer/metrics/metrics.rb +10 -13
  11. data/lib/influxer/metrics/quoting/timestamp.rb +52 -9
  12. data/lib/influxer/metrics/relation.rb +33 -19
  13. data/lib/influxer/metrics/relation/calculations.rb +1 -1
  14. data/lib/influxer/metrics/relation/time_query.rb +15 -13
  15. data/lib/influxer/metrics/relation/where_clause.rb +19 -11
  16. data/lib/influxer/metrics/scoping.rb +4 -4
  17. data/lib/influxer/metrics/scoping/current_scope.rb +2 -1
  18. data/lib/influxer/metrics/scoping/default.rb +1 -1
  19. data/lib/influxer/metrics/scoping/named.rb +2 -1
  20. data/lib/influxer/model.rb +4 -9
  21. data/lib/influxer/rails/client.rb +2 -2
  22. data/lib/influxer/version.rb +1 -1
  23. metadata +30 -95
  24. data/.gitignore +0 -37
  25. data/.rspec +0 -2
  26. data/.rubocop.yml +0 -77
  27. data/.travis.yml +0 -10
  28. data/Changelog.md +0 -103
  29. data/Gemfile +0 -10
  30. data/Rakefile +0 -13
  31. data/gemfiles/rails32.gemfile +0 -7
  32. data/gemfiles/rails42.gemfile +0 -7
  33. data/gemfiles/rails5.gemfile +0 -7
  34. data/influxer.gemspec +0 -33
  35. data/spec/cases/points_spec.rb +0 -36
  36. data/spec/cases/write_points_spec.rb +0 -85
  37. data/spec/client_spec.rb +0 -46
  38. data/spec/fixtures/empty_result.json +0 -21
  39. data/spec/fixtures/single_series.json +0 -29
  40. data/spec/metrics/metrics_spec.rb +0 -283
  41. data/spec/metrics/relation_spec.rb +0 -425
  42. data/spec/metrics/scoping_spec.rb +0 -66
  43. data/spec/model/user_spec.rb +0 -46
  44. data/spec/spec_helper.rb +0 -64
  45. data/spec/support/metrics/action_metrics.rb +0 -5
  46. data/spec/support/metrics/custom_metrics.rb +0 -6
  47. data/spec/support/metrics/dummy_metrics.rb +0 -12
  48. data/spec/support/metrics/user_metrics.rb +0 -6
  49. data/spec/support/metrics/visits_metrics.rb +0 -8
  50. data/spec/support/shared_contexts/shared_query.rb +0 -16
  51. data/spec/support/user.rb +0 -16
@@ -1,14 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'active_support/core_ext/module/delegation'
4
- require 'influxer/metrics/relation/time_query'
5
- require 'influxer/metrics/relation/calculations'
6
- require 'influxer/metrics/relation/where_clause'
7
- require 'influxer/metrics/quoting/timestamp'
3
+ require "active_support/core_ext/module/delegation"
4
+ require "influxer/metrics/relation/time_query"
5
+ require "influxer/metrics/relation/calculations"
6
+ require "influxer/metrics/relation/where_clause"
7
+ require "influxer/metrics/quoting/timestamp"
8
8
 
9
9
  module Influxer
10
10
  # Relation is used to build queries
11
- # rubocop:disable Metrics/ClassLength
12
11
  class Relation
13
12
  include Influxer::TimeQuery
14
13
  include Influxer::Calculations
@@ -23,11 +22,11 @@ module Influxer
23
22
 
24
23
  MULTI_KEY_METHODS = %i[fanout].freeze
25
24
 
26
- SINGLE_VALUE_METHODS = %i[fill time limit offset slimit soffset from normalized].freeze
25
+ SINGLE_VALUE_METHODS = %i[fill time limit offset slimit soffset from normalized timezone].freeze
27
26
 
28
27
  MULTI_VALUE_SIMPLE_METHODS = %i[select group].freeze
29
28
 
30
- SINGLE_VALUE_SIMPLE_METHODS = %i[fill limit offset slimit soffset from].freeze
29
+ SINGLE_VALUE_SIMPLE_METHODS = %i[fill limit offset slimit soffset from timezone].freeze
31
30
 
32
31
  MULTI_VALUE_METHODS.each do |name|
33
32
  class_eval <<-CODE, __FILE__, __LINE__ + 1
@@ -122,6 +121,13 @@ module Influxer
122
121
  self
123
122
  end
124
123
 
124
+ def timezone(val)
125
+ return self if val.blank?
126
+
127
+ @values[:timezone] = val
128
+ self
129
+ end
130
+
125
131
  def order(val)
126
132
  case val
127
133
  when Hash
@@ -144,22 +150,23 @@ module Influxer
144
150
 
145
151
  sql << "from #{build_series_name}"
146
152
 
147
- sql << "where #{where_values.join(' and ')}" unless where_values.empty?
153
+ sql << "where #{where_values.join(" and ")}" unless where_values.empty?
148
154
 
149
155
  unless group_values.empty? && time_value.nil?
150
- group_fields = (time_value.nil? ? [] : ['time(' + @values[:time] + ')']) + group_values
156
+ group_fields = (time_value.nil? ? [] : ["time(" + @values[:time] + ")"]) + group_values
151
157
  group_fields.uniq!
152
- sql << "group by #{group_fields.join(', ')}"
158
+ sql << "group by #{group_fields.join(", ")}"
153
159
  end
154
160
 
155
161
  sql << "fill(#{fill_value})" unless fill_value.nil?
156
162
 
157
- sql << "order by #{order_values.uniq.join(',')}" unless order_values.empty?
163
+ sql << "order by #{order_values.uniq.join(",")}" unless order_values.empty?
158
164
 
159
165
  sql << "limit #{limit_value}" unless limit_value.nil?
160
166
  sql << "offset #{offset_value}" unless offset_value.nil?
161
167
  sql << "slimit #{slimit_value}" unless slimit_value.nil?
162
168
  sql << "soffset #{soffset_value}" unless soffset_value.nil?
169
+ sql << "TZ('#{timezone_value}')" unless timezone_value.blank?
163
170
  sql.join " "
164
171
  end
165
172
  # rubocop:enable Metrics/AbcSize
@@ -169,14 +176,15 @@ module Influxer
169
176
 
170
177
  def to_a
171
178
  return @records if loaded?
179
+
172
180
  load
173
181
  end
174
182
 
175
183
  def inspect
176
184
  entries = to_a.take(11).map!(&:inspect)
177
- entries[10] = '...' if entries.size == 11
185
+ entries[10] = "..." if entries.size == 11
178
186
 
179
- "#<#{self.class.name} [#{entries.join(', ')}]>"
187
+ "#<#{self.class.name} [#{entries.join(", ")}]>"
180
188
  end
181
189
 
182
190
  def empty?
@@ -205,11 +213,15 @@ module Influxer
205
213
  end
206
214
 
207
215
  def delete_all
208
- sql = ["drop series"]
216
+ sql = if where_contains_time?
217
+ ["delete"]
218
+ else
219
+ ["drop series"]
220
+ end
209
221
 
210
222
  sql << "from #{@instance.series}"
211
223
 
212
- sql << "where #{where_values.join(' and ')}" unless where_values.empty?
224
+ sql << "where #{where_values.join(" and ")}" unless where_values.empty?
213
225
 
214
226
  sql = sql.join " "
215
227
 
@@ -228,6 +240,7 @@ module Influxer
228
240
  # rubocop:disable Metrics/MethodLength
229
241
  def merge!(rel)
230
242
  return self if rel.nil?
243
+
231
244
  MULTI_VALUE_METHODS.each do |method|
232
245
  (@values[method] ||= []).concat(rel.values[method]).uniq! unless rel.values[method].nil?
233
246
  end
@@ -268,20 +281,19 @@ module Influxer
268
281
  self
269
282
  end
270
283
 
271
- # rubocop: disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
272
284
  def quoted(val, key = nil)
273
285
  if val.is_a?(String) || val.is_a?(Symbol) || @klass.tag?(key)
274
286
  "'#{val}'"
275
- elsif val.is_a?(Time) || val.is_a?(Date) || val.is_a?(DateTime)
287
+ elsif key.to_s == "time"
276
288
  quote_timestamp val, @instance.client
277
289
  else
278
290
  val.to_s
279
291
  end
280
292
  end
281
- # rubocop: enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
282
293
 
283
294
  def get_points(list)
284
295
  return list if normalized?
296
+
285
297
  list.reduce([]) do |a, e|
286
298
  a + e.fetch("values", []).map { |v| inject_tags(v, e["tags"] || {}) }
287
299
  end
@@ -293,11 +305,13 @@ module Influxer
293
305
 
294
306
  def method_missing(method, *args, &block)
295
307
  return super unless @klass.respond_to?(method)
308
+
296
309
  merge!(scoping { @klass.public_send(method, *args, &block) })
297
310
  end
298
311
 
299
312
  def respond_to_missing?(method, *args)
300
313
  return true if @klass.respond_to?(method)
314
+
301
315
  super
302
316
  end
303
317
  end
@@ -21,7 +21,7 @@ module Influxer
21
21
 
22
22
  def percentile(name, val, alias_name = nil)
23
23
  @values[:has_calculations] = true
24
- select_values << "percentile(#{name}, #{val})#{alias_name ? ' as ' + alias_name.to_s : ''}"
24
+ select_values << "percentile(#{name}, #{val})#{alias_name ? " as " + alias_name.to_s : ""}"
25
25
  self
26
26
  end
27
27
  end
@@ -3,14 +3,15 @@
3
3
  module Influxer
4
4
  module TimeQuery #:nodoc:
5
5
  TIME_ALIASES = {
6
- hour: '1h',
7
- minute: '1m',
8
- second: '1s',
9
- ms: '1ms',
10
- u: '1u',
11
- week: '1w',
12
- day: '1d',
13
- month: '30d'
6
+ hour: "1h",
7
+ minute: "1m",
8
+ second: "1s",
9
+ ms: "1ms",
10
+ u: "1u",
11
+ week: "1w",
12
+ day: "1d",
13
+ month: "30d",
14
+ year: "365d"
14
15
  }.freeze
15
16
 
16
17
  FILL_RESERVED = %i[null previous none].freeze
@@ -27,10 +28,10 @@ module Influxer
27
28
  # # select * from metrics group by time(4d) fill(0)
28
29
  def time(val, options = {})
29
30
  @values[:time] = if val.is_a?(Symbol)
30
- TIME_ALIASES[val] || '1' + val.to_s
31
- else
32
- val
33
- end
31
+ TIME_ALIASES[val] || "1" + val.to_s
32
+ else
33
+ val
34
+ end
34
35
 
35
36
  build_fill(options[:fill])
36
37
  self
@@ -50,7 +51,7 @@ module Influxer
50
51
  def past(val)
51
52
  case val
52
53
  when Symbol
53
- where("time > now() - #{TIME_ALIASES[val] || ('1' + val.to_s)}")
54
+ where("time > now() - #{TIME_ALIASES[val] || ("1" + val.to_s)}")
54
55
  when String
55
56
  where("time > now() - #{val}")
56
57
  else
@@ -75,6 +76,7 @@ module Influxer
75
76
 
76
77
  def build_fill(val)
77
78
  return if val.nil?
79
+
78
80
  fill(FILL_RESERVED.include?(val) ? val.to_s : val.to_i)
79
81
  end
80
82
  end
@@ -29,6 +29,7 @@ module Influxer
29
29
 
30
30
  def load
31
31
  return if @null_relation
32
+
32
33
  super
33
34
  end
34
35
 
@@ -57,14 +58,15 @@ module Influxer
57
58
  when NilClass
58
59
  build_eql(key, /.*/, !negate)
59
60
  when Regexp
60
- "#{key}#{negate ? ' !~ ' : ' =~ '}#{val.inspect}"
61
+ "#{key}#{negate ? " !~ " : " =~ "}#{val.inspect}"
61
62
  when Array
62
- return build_none if val.empty?
63
+ return build_none(negate) if val.empty?
64
+
63
65
  build_in(key, val, negate)
64
66
  when Range
65
67
  build_range(key, val, negate)
66
68
  else
67
- "#{key}#{negate ? ' <> ' : ' = '}#{quoted(val, key)}"
69
+ "#{key}#{negate ? " <> " : " = "}#{quoted(val, key)}"
68
70
  end
69
71
  end
70
72
  # rubocop:enable Metrics/CyclomaticComplexity
@@ -75,7 +77,7 @@ module Influxer
75
77
  arr.each do |val|
76
78
  buf << build_eql(key, val, negate)
77
79
  end
78
- buf.join(negate ? ' and ' : ' or ').to_s
80
+ buf.join(negate ? " and " : " or ").to_s
79
81
  end
80
82
 
81
83
  # rubocop: disable Metrics/AbcSize, Metrics/MethodLength, Style/IfInsideElse
@@ -83,24 +85,30 @@ module Influxer
83
85
  if val.exclude_end?
84
86
  # begin...end range
85
87
  if negate
86
- "#{key} < #{quoted(val.begin)} or #{key} >= #{quoted(val.end)}"
88
+ "#{key} < #{quoted(val.begin, key)} or #{key} >= #{quoted(val.end, key)}"
87
89
  else
88
- "#{key} >= #{quoted(val.begin)} and #{key} < #{quoted(val.end)}"
90
+ "#{key} >= #{quoted(val.begin, key)} and #{key} < #{quoted(val.end, key)}"
89
91
  end
90
92
  else
91
93
  # begin..end range
92
94
  if negate
93
- "#{key} < #{quoted(val.begin)} or #{key} > #{quoted(val.end)}"
95
+ "#{key} < #{quoted(val.begin, key)} or #{key} > #{quoted(val.end, key)}"
94
96
  else
95
- "#{key} >= #{quoted(val.begin)} and #{key} <= #{quoted(val.end)}"
97
+ "#{key} >= #{quoted(val.begin, key)} and #{key} <= #{quoted(val.end, key)}"
96
98
  end
97
99
  end
98
100
  end
99
101
  # rubocop: enable Metrics/AbcSize, Metrics/MethodLength, Style/IfInsideElse
100
102
 
101
- def build_none
102
- @null_relation = true
103
- build_eql(1, 0, false)
103
+ def build_none(negate = false)
104
+ @null_relation = !negate
105
+ negate ? "time >= 0" : "time < 0"
106
+ end
107
+
108
+ def where_contains_time?
109
+ where_values.any? do |where_clause|
110
+ /time( )/ === where_clause
111
+ end
104
112
  end
105
113
  end
106
114
  end
@@ -1,12 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'influxer/metrics/scoping/default'
4
- require 'influxer/metrics/scoping/named'
3
+ require "influxer/metrics/scoping/default"
4
+ require "influxer/metrics/scoping/named"
5
5
 
6
6
  if Influxer.active_model3?
7
- require 'influxer/metrics/scoping/old_current_scope'
7
+ require "influxer/metrics/scoping/old_current_scope"
8
8
  else
9
- require 'influxer/metrics/scoping/current_scope'
9
+ require "influxer/metrics/scoping/current_scope"
10
10
  end
11
11
 
12
12
  module Influxer
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'active_support/per_thread_registry'
3
+ require "active_support/per_thread_registry"
4
4
 
5
5
  module Influxer
6
6
  module Scoping
@@ -39,6 +39,7 @@ module Influxer
39
39
 
40
40
  def raise_invalid_scope_type!(scope_type)
41
41
  return if VALID_SCOPE_TYPES.include?(scope_type)
42
+
42
43
  raise ArgumentError, "Invalid scope type '#{scope_type}' sent to the registry. \
43
44
  Scope types must be included in VALID_SCOPE_TYPES"
44
45
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'active_support/concern'
3
+ require "active_support/concern"
4
4
 
5
5
  module Influxer
6
6
  module Scoping
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'active_support/concern'
3
+ require "active_support/concern"
4
4
 
5
5
  module Influxer
6
6
  module Scoping
@@ -10,6 +10,7 @@ module Influxer
10
10
  module ClassMethods
11
11
  def scope(name, scope)
12
12
  raise "Scope not defined: #{name}" if scope.nil? || !scope.respond_to?(:call)
13
+
13
14
  singleton_class.send(:define_method, name) do |*args|
14
15
  rel = all
15
16
  rel.merge!(rel.scoping { scope.call(*args) })
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'active_support'
3
+ require "active_support"
4
4
 
5
5
  module Influxer
6
6
  # Add `has_metrics` method to AR::Base
@@ -8,9 +8,6 @@ module Influxer
8
8
  extend ActiveSupport::Concern
9
9
 
10
10
  module ClassMethods # :nodoc:
11
- # rubocop:disable Naming/PredicateName
12
- # rubocop:disable Metrics/MethodLength
13
- # rubocop:disable Metrics/AbcSize
14
11
  def has_metrics(*args, **params)
15
12
  metrics_name = args.empty? ? "metrics" : args.first.to_s
16
13
 
@@ -22,12 +19,10 @@ module Influxer
22
19
  foreign_key = params.fetch(:foreign_key, to_s.foreign_key)
23
20
 
24
21
  define_method(metrics_name) do
25
- rel_attrs = foreign_key ? { foreign_key => id } : {}
22
+ rel_attrs = foreign_key ? {foreign_key => id} : {}
26
23
 
27
- unless attrs.nil?
28
- attrs.each do |key|
29
- rel_attrs[key] = send(key)
30
- end
24
+ attrs&.each do |key|
25
+ rel_attrs[key] = send(key)
31
26
  end
32
27
  Relation.new klass, attributes: rel_attrs
33
28
  end
@@ -33,13 +33,13 @@ module Influxer
33
33
  # of config.cache if defined
34
34
  def cache_options(sql = nil)
35
35
  options = Influxer.config.cache.dup
36
- options[:expires_in] = (options[:cache_now_for] || 60) if sql =~ /\snow\(\)/
36
+ options[:expires_in] = (options[:cache_now_for] || 60) if /\snow\(\)/.match?(sql)
37
37
  options
38
38
  end
39
39
 
40
40
  # add prefix; remove whitespaces
41
41
  def normalized_cache_key(sql)
42
- "influxer:#{sql.gsub(/\s*/, '')}"
42
+ "influxer:#{sql.gsub(/\s*/, "")}"
43
43
  end
44
44
 
45
45
  def logger
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Influxer # :nodoc:
4
- VERSION = "1.1.3"
4
+ VERSION = "1.2.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: influxer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vlad Dem
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-11 00:00:00.000000000 Z
11
+ date: 2020-07-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -42,14 +42,14 @@ dependencies:
42
42
  name: anyway_config
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.0'
55
55
  - !ruby/object:Gem::Dependency
@@ -66,20 +66,6 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: simplecov
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: 0.3.8
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: 0.3.8
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: rake
85
71
  requirement: !ruby/object:Gem::Requirement
@@ -95,61 +81,47 @@ dependencies:
95
81
  - !ruby/object:Gem::Version
96
82
  version: '10.1'
97
83
  - !ruby/object:Gem::Dependency
98
- name: sqlite3
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: activerecord
84
+ name: rspec
113
85
  requirement: !ruby/object:Gem::Requirement
114
86
  requirements:
115
87
  - - ">="
116
88
  - !ruby/object:Gem::Version
117
- version: 3.2.0
89
+ version: 3.1.0
118
90
  type: :development
119
91
  prerelease: false
120
92
  version_requirements: !ruby/object:Gem::Requirement
121
93
  requirements:
122
94
  - - ">="
123
95
  - !ruby/object:Gem::Version
124
- version: 3.2.0
96
+ version: 3.1.0
125
97
  - !ruby/object:Gem::Dependency
126
- name: pry-byebug
98
+ name: standard
127
99
  requirement: !ruby/object:Gem::Requirement
128
100
  requirements:
129
- - - ">="
101
+ - - "~>"
130
102
  - !ruby/object:Gem::Version
131
- version: '0'
103
+ version: 0.0.39
132
104
  type: :development
133
105
  prerelease: false
134
106
  version_requirements: !ruby/object:Gem::Requirement
135
107
  requirements:
136
- - - ">="
108
+ - - "~>"
137
109
  - !ruby/object:Gem::Version
138
- version: '0'
110
+ version: 0.0.39
139
111
  - !ruby/object:Gem::Dependency
140
- name: rspec
112
+ name: rubocop-md
141
113
  requirement: !ruby/object:Gem::Requirement
142
114
  requirements:
143
- - - ">="
115
+ - - "~>"
144
116
  - !ruby/object:Gem::Version
145
- version: 3.1.0
117
+ version: 0.2.0
146
118
  type: :development
147
119
  prerelease: false
148
120
  version_requirements: !ruby/object:Gem::Requirement
149
121
  requirements:
150
- - - ">="
122
+ - - "~>"
151
123
  - !ruby/object:Gem::Version
152
- version: 3.1.0
124
+ version: 0.2.0
153
125
  - !ruby/object:Gem::Dependency
154
126
  name: webmock
155
127
  requirement: !ruby/object:Gem::Requirement
@@ -164,20 +136,6 @@ dependencies:
164
136
  - - "~>"
165
137
  - !ruby/object:Gem::Version
166
138
  version: '2.1'
167
- - !ruby/object:Gem::Dependency
168
- name: rubocop
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - "~>"
172
- - !ruby/object:Gem::Version
173
- version: '0.52'
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - "~>"
179
- - !ruby/object:Gem::Version
180
- version: '0.52'
181
139
  description: InfluxDB the Rails way
182
140
  email:
183
141
  - dementiev.vm@gmail.com
@@ -185,19 +143,9 @@ executables: []
185
143
  extensions: []
186
144
  extra_rdoc_files: []
187
145
  files:
188
- - ".gitignore"
189
- - ".rspec"
190
- - ".rubocop.yml"
191
- - ".travis.yml"
192
- - Changelog.md
193
- - Gemfile
194
- - MIT-LICENSE
146
+ - CHANGELOG.md
147
+ - LICENSE.txt
195
148
  - README.md
196
- - Rakefile
197
- - gemfiles/rails32.gemfile
198
- - gemfiles/rails42.gemfile
199
- - gemfiles/rails5.gemfile
200
- - influxer.gemspec
201
149
  - lib/influxer.rb
202
150
  - lib/influxer/client.rb
203
151
  - lib/influxer/config.rb
@@ -217,28 +165,16 @@ files:
217
165
  - lib/influxer/model.rb
218
166
  - lib/influxer/rails/client.rb
219
167
  - lib/influxer/version.rb
220
- - spec/cases/points_spec.rb
221
- - spec/cases/write_points_spec.rb
222
- - spec/client_spec.rb
223
- - spec/fixtures/empty_result.json
224
- - spec/fixtures/single_series.json
225
- - spec/metrics/metrics_spec.rb
226
- - spec/metrics/relation_spec.rb
227
- - spec/metrics/scoping_spec.rb
228
- - spec/model/user_spec.rb
229
- - spec/spec_helper.rb
230
- - spec/support/metrics/action_metrics.rb
231
- - spec/support/metrics/custom_metrics.rb
232
- - spec/support/metrics/dummy_metrics.rb
233
- - spec/support/metrics/user_metrics.rb
234
- - spec/support/metrics/visits_metrics.rb
235
- - spec/support/shared_contexts/shared_query.rb
236
- - spec/support/user.rb
237
168
  homepage: http://github.com/palkan/influxer
238
169
  licenses:
239
170
  - MIT
240
- metadata: {}
241
- post_install_message:
171
+ metadata:
172
+ bug_tracker_uri: http://github.com/palkan/influxer/issues
173
+ changelog_uri: https://github.com/palkan/influxer/blob/master/Changelog.md
174
+ documentation_uri: http://github.com/palkan/influxer
175
+ homepage_uri: http://github.com/palkan/influxer
176
+ source_code_uri: http://github.com/palkan/influxer
177
+ post_install_message:
242
178
  rdoc_options: []
243
179
  require_paths:
244
180
  - lib
@@ -246,16 +182,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
246
182
  requirements:
247
183
  - - ">="
248
184
  - !ruby/object:Gem::Version
249
- version: '0'
185
+ version: 2.4.0
250
186
  required_rubygems_version: !ruby/object:Gem::Requirement
251
187
  requirements:
252
188
  - - ">="
253
189
  - !ruby/object:Gem::Version
254
190
  version: '0'
255
191
  requirements: []
256
- rubyforge_project:
257
- rubygems_version: 2.6.13
258
- signing_key:
192
+ rubygems_version: 3.1.2
193
+ signing_key:
259
194
  specification_version: 4
260
195
  summary: InfluxDB for Rails
261
196
  test_files: []