metricky 0.2.1 → 0.3.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
  SHA256:
3
- metadata.gz: 500237a04b0a2f93ff5ddacd686681fd76b032146f218743eb9f83820b658376
4
- data.tar.gz: e4739930fb4f3b57836267e8f9dc7822cadb22b0cd9dd40e41b0a7a09fe0bb55
3
+ metadata.gz: bad7c03b12574ccb03b4b75b108105e5d3a7c1a48919db32afe42b519ac71111
4
+ data.tar.gz: 53966d8531d8eea9f8758412b1423d15be567ca75447cc746000be6527f7f6da
5
5
  SHA512:
6
- metadata.gz: 4eebd4d284635360c281e54a792e9cc58c8f20812ddba63ae592b468c37747bb0ec3a0861534511e82143a82e1a4d599d8c09a77f5a2756b1e0b820328e5b2fb
7
- data.tar.gz: be42d09e1122aa0fff4f1e8b74ceafa48b4cec86785bd36e18b6e3aaa6259dea219cb255625198a9d4a077d498d96b36a18791d5b0f85ffccfdee148f769835e
6
+ metadata.gz: f37bdcce7fb1d595257c2de55e6193d7600b12ac10a0b21b6be74d7fa04a790c454f5831e55e92b082a008f699df1cb410a020a8f96988d7eb9b4feb377b4cb9
7
+ data.tar.gz: 5687473c60b2b130ce09aca413f46267b9f2321dfdbac744f9d29a35ae638d7752b13ab704335075aa931417cfbcf117c72301d9a0ed1a6cc282c523b1af6bb5
@@ -0,0 +1,3 @@
1
+ class ApplicationMetric < Metricky::Base
2
+
3
+ end
@@ -0,0 +1,35 @@
1
+ module Metricky
2
+ module Generators
3
+ class MetricGenerator < Rails::Generators::NamedBase
4
+ source_root File.expand_path("templates", __dir__)
5
+ check_class_collision suffix: "Metric"
6
+
7
+ class_option :scope, type: :string, aliases: %i(--scope), default: '', desc: "What class or scoped class this metric pulls from"
8
+ class_option :type, type: :string, aliases: %i(--type), default: ':count', desc: "What type of metric (:count, :max, :min, :sum, :average)"
9
+ class_option :period, type: :string, default: 'nil', aliases: %i{--period}, desc: "What class or scoped class this metric pulls from"
10
+
11
+ def create_metric_file
12
+ template "metric.rb", File.join("app/metrics", class_path, "#{file_name}_metric.rb")
13
+
14
+ in_root do
15
+ if behavior == :invoke && !File.exist?(application_metric_file_name)
16
+ template "application_metric.rb", application_metric_file_name
17
+ end
18
+ end
19
+ end
20
+
21
+ private
22
+ def file_name # :doc:
23
+ @_file_name ||= super.sub(/_metric\z/i, "")
24
+ end
25
+
26
+ def application_metric_file_name
27
+ @_application_mailer_file_name ||= if mountable_engine?
28
+ "app/metrics/#{namespaced_path}/application_metric.rb"
29
+ else
30
+ "app/metrics/application_metric.rb"
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,4 @@
1
+ <% module_namespacing do -%>
2
+ class ApplicationMetric < Metricky::Base
3
+ end
4
+ <% end %>
@@ -0,0 +1,15 @@
1
+ <% module_namespacing do -%>
2
+ class <%= class_name %>Metric < ApplicationMetric
3
+ def scope
4
+ <%= options[:scope] %>
5
+ end
6
+
7
+ def type
8
+ <%= options[:type] %>
9
+ end
10
+
11
+ def period
12
+ <%= options[:period] %>
13
+ end
14
+ end
15
+ <% end -%>
@@ -13,7 +13,7 @@ module Metricky
13
13
  metric = metric_name.safe_constantize
14
14
  else
15
15
  klass_name = "#{metric_name.to_s}Metric".camelize
16
- metric = "Metrics::#{klass_name}".safe_constantize
16
+ metric = "#{klass_name}".safe_constantize
17
17
  end
18
18
  raise NameError, "#{metric_name} does not exist" unless metric
19
19
  else
@@ -1,3 +1,3 @@
1
1
  module Metricky
2
- VERSION = '0.2.1'
2
+ VERSION = '0.3.0'
3
3
  end
data/lib/metricky.rb CHANGED
@@ -2,7 +2,6 @@ require "groupdate"
2
2
  require "chartkick"
3
3
  require "metricky/base"
4
4
  require "metricky/helper"
5
-
6
5
  require "metricky/engine"
7
6
 
8
7
  module Metricky
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metricky
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Brody
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-07 00:00:00.000000000 Z
11
+ date: 2019-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -118,7 +118,11 @@ files:
118
118
  - MIT-LICENSE
119
119
  - README.md
120
120
  - Rakefile
121
+ - app/metrics/application_metric.rb
121
122
  - app/views/metricky/_metric.html.erb
123
+ - lib/generators/metricky/metric_generator.rb
124
+ - lib/generators/metricky/templates/application_metric.rb.tt
125
+ - lib/generators/metricky/templates/metric.rb.tt
122
126
  - lib/metricky.rb
123
127
  - lib/metricky/base.rb
124
128
  - lib/metricky/engine.rb