magic-report 0.2.0 → 0.4.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: 44873b50d04637fb2399066a73450da8572fcbdece144c679d024692e436d155
4
- data.tar.gz: cc0e332d579ed96f7aa2fa511039c55b727887729e2c49481b6bb1dd00ce6ad0
3
+ metadata.gz: cbd4ccf10ed8cef125608351f7f2fa312b30e5fca6441b32d1b0294a54c4a09f
4
+ data.tar.gz: dc6218e4caabcb061dbd122eb6db83c7a9b9c0100f43fcd573d04d92a5732fb0
5
5
  SHA512:
6
- metadata.gz: 65166e27d443bef84cd1fa581cf6da78fbc2359668190cc5c9cfc877fa1caf81274981c92f2f20da4ccdc3c1d5990ec463c08c6fd761ee912dd2f4716b90faa5
7
- data.tar.gz: 37fb6590fa41adb3d48396ecaad42a9ae57893c64a109cf93281a7e64cbed5ea87d17b1494d28670a59dad2252afdf64bbf2d7ba444c3d3e3bc7c0f867b9e5a9
6
+ metadata.gz: 93eff1f5d40e1866f0a86b9de2e69abeb185b972cc7f1eb6aa21602f43def7b0c495c2fe098fd0834f572dd5dad2aa647c43eeb8b40a9e4715fda8ce71d89dfb
7
+ data.tar.gz: 470da3706587151d4efa0a9c33ff9a725a76f522c8b28d94a21ffe479ed54abe5f6e90f60588368497a5e106c8babeda3a0a0a68306fe8adcfc347e42e7c831a
@@ -4,7 +4,7 @@ module MagicReport
4
4
  class Report
5
5
  module ClassHelpers
6
6
  def name_from_class
7
- ::MagicReport::Utils.underscore(self.class.name).tr("/", ".")
7
+ ::MagicReport::Utils.underscore(self.class.name)
8
8
  end
9
9
 
10
10
  def fields_from_class
@@ -67,8 +67,10 @@ module MagicReport
67
67
 
68
68
  klass = ::MagicReport::Utils.derive_class(opts, &block)
69
69
 
70
+ opts[:name] = ::MagicReport::Utils.underscore(opts[:name].to_s) if opts[:name]
71
+
70
72
  if (prefix = opts[:prefix])
71
- opts[:prefix] = new.instance_exec(&prefix)
73
+ opts[:prefix] = new(name: ::MagicReport::Utils.underscore(name.to_s)).instance_exec(&prefix)
72
74
  end
73
75
 
74
76
  @has_one << Configuration::HasOne.new(klass: klass, opts: opts, key: coerced_attribute)
@@ -81,8 +83,10 @@ module MagicReport
81
83
 
82
84
  klass = ::MagicReport::Utils.derive_class(opts, &block)
83
85
 
86
+ opts[:name] = ::MagicReport::Utils.underscore(opts[:name].to_s) if opts[:name]
87
+
84
88
  if (prefix = opts[:prefix])
85
- opts[:prefix] = new.instance_exec(&prefix)
89
+ opts[:prefix] = new(name: ::MagicReport::Utils.underscore(name.to_s)).instance_exec(&prefix)
86
90
  end
87
91
 
88
92
  @has_many << Configuration::HasMany.new(klass: klass, opts: opts, key: coerced_attribute)
@@ -3,10 +3,13 @@
3
3
  module MagicReport
4
4
  module Utils
5
5
  def underscore(klass)
6
+ return "ded" unless klass
7
+
6
8
  klass.gsub(/::/, "/")
7
9
  .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
8
10
  .gsub(/([a-z\d])([A-Z])/, '\1_\2')
9
11
  .tr("-", "_")
12
+ .tr("/", ".")
10
13
  .downcase
11
14
  end
12
15
 
@@ -15,6 +18,7 @@ module MagicReport
15
18
  raise "name option must be provided" unless opts[:name]
16
19
 
17
20
  cloned_klass = ::MagicReport::Report.clone
21
+ cloned_klass.define_singleton_method(:name) { opts[:name] }
18
22
  cloned_klass.class_eval(&block)
19
23
  cloned_klass
20
24
  else
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MagicReport
4
- VERSION = "0.2.0"
4
+ VERSION = "0.4.0"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: magic-report
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Pankratev