magic-report 0.2.0 → 0.4.0

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