rulezilla 0.4.10 → 0.4.11

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: d44c48b049fb1f13c6cc089ebb1af1ed4a113762129281cc672ab6e778e9426a
4
- data.tar.gz: f5d181ef71005a118d514dbdc3fde6a2abb44a7dafdb5100977f19e614a8aa55
3
+ metadata.gz: d1e20112814a4c66225a9aa87042999c98d669c1dec575eef927db835dc1f0b8
4
+ data.tar.gz: 93da091a13464a6e973eff0fff41782230211616b44a3cbe6f2f8837214bccb6
5
5
  SHA512:
6
- metadata.gz: 7d34a858d6034509ab63e7773d9d68a72abe3e4bcd3a3bc44161ada74a61e9ec2d38fc3dc241b5d8fc20d6c27faeee3ed07ca875ab236aa5f14b34b3a5bf00ba
7
- data.tar.gz: ac94c2580f3564883e9f24c361805cd7e93f369d8aa448bdbc9b59471fc7e613e7f4b49b19d396ef7f28419638fdc31c7b2fa98b50af1b5be49c8c08ca577971
6
+ metadata.gz: 4d061b9debff8fc71f3b0862c4a4ed56bd280668f44192b47682e1c6dc4380ba249884c255ac1ba46944a7072027ba758cf28a72461dd3212faf7aadb6851163
7
+ data.tar.gz: 6e2c37ba42c1e17e681ffdffe1183ce8e66c07b1f9279a925229c49f17a4e8769a6bbe613b79f16683e5a1e4285dcf84f9fdc6bc5c291f2c76b3877713a0d67f
data/lib/rulezilla/dsl.rb CHANGED
@@ -19,19 +19,28 @@ module Rulezilla
19
19
 
20
20
  def self.create_klass(parent_klass)
21
21
  klass_name = parent_klass.name
22
+ klass = create_record_class(parent_klass, klass_name)
23
+ setup_record_class(klass, klass_name)
24
+ klass
25
+ end
22
26
 
23
- klass = get_super(parent_klass).const_set("#{demodulize_klass_name(klass_name)}Record", Class.new)
27
+ def self.create_record_class(parent_klass, klass_name)
28
+ get_super(parent_klass).const_set("#{demodulize_klass_name(klass_name)}Record", Class.new)
29
+ end
24
30
 
31
+ def self.setup_record_class(klass, klass_name)
25
32
  klass.class_eval do
26
33
  include Rulezilla::BasicSupport
27
- begin
28
- include Object.const_get("#{klass_name}Support")
29
- rescue StandardError
30
- NameError
31
- end
34
+ include Object.const_get("#{klass_name}Support") if Object.const_defined?("#{klass_name}Support")
32
35
 
33
36
  attr_reader :record
37
+ end
34
38
 
39
+ define_record_methods(klass)
40
+ end
41
+
42
+ def self.define_record_methods(klass)
43
+ klass.class_eval do
35
44
  define_method(:initialize) do |record|
36
45
  record = OpenStruct.new(record) if record.is_a?(Hash)
37
46
  instance_variable_set(:@record, record)
@@ -41,10 +50,11 @@ module Rulezilla
41
50
  record.send(meth, *args, &block)
42
51
  end
43
52
  end
44
-
45
- private_class_method :create_klass, :get_super, :demodulize_klass_name
46
53
  end
47
54
 
55
+ private_class_method :create_klass, :get_super, :demodulize_klass_name, :create_record_class,
56
+ :setup_record_class, :define_record_methods
57
+
48
58
  module ClassMethods
49
59
  def mandatory_attributes
50
60
  @mandatory_attributes ||= []
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Rulezilla
4
- VERSION = '0.4.10'
4
+ VERSION = '0.4.11'
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rulezilla
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.10
4
+ version: 0.4.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simply Business
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-07-21 00:00:00.000000000 Z
10
+ date: 2025-08-15 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: ostruct