cqs 0.2.1 → 0.3.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: 1b5557be64ddca321d81796a4f00f56c8d847d2b5c06be364512d20a2ef18de4
4
- data.tar.gz: 0763745d8724c54a5b7c4cd3457b3f50762daa600b1b0bf8583898d9d5fd9660
3
+ metadata.gz: 496f8757958661453feed8771f9983b82f9c07dd1e838e78dd6d2ad7777b1874
4
+ data.tar.gz: 451cad9bd23c6ad545e8f02df30408624e79c664c2f074154eba422307dccdad
5
5
  SHA512:
6
- metadata.gz: f1b815d30f2eea1ce796837e04c66c0e5afc038b70e5cc03e88e92322f9c40072b5e3d202fbdb838aadc8b14445dd2045e4ac1eabe67e8204257a0a87bf1e2bc
7
- data.tar.gz: e5e2925d6d281fa22840172d8c7ba86666900e6aaee0c3b5163e22dc87e6011717bb50bb7a7026ed5a0e1cb45ad81806add233352695a170ec398a4ef42e93c1
6
+ metadata.gz: d69e747aece3aec6421f3dadbb85cb750dc86ae588e3c1f09995eea350558011d71b2caa845e1a9a218598ebb68ce3645caeea34156b3841f32832d1dc565975
7
+ data.tar.gz: a88287a1d25aade981043a7fc8d64cabc4880b6dd37ff079faf4cbe6ff36d88d94517ffaf21dfba394b001eaefdd2fadc695f4470797f46e29413356bb3b9340
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.3.0] - 2025-02-25
4
+
5
+ - Allows renaming of the subject to implement the queries and commands more elegantly
6
+ - Cleans up the register method method
7
+
3
8
  ## [0.1.1] - 2024-12-22
4
9
 
5
10
  - Changes gem description
data/Guardfile ADDED
@@ -0,0 +1,8 @@
1
+ guard :standardrb, fix: true, all_on_start: true, progress: true do
2
+ watch(/.+\.rb$/)
3
+ end
4
+
5
+ guard :rspec, cmd: "bundle exec rspec" do
6
+ watch(%r{^lib/.+\.rb$})
7
+ watch(%r{^./spec/.+_spec\.rb$})
8
+ end
data/lib/cqs/base.rb CHANGED
@@ -2,7 +2,8 @@ module Cqs
2
2
  class Error < StandardError; end
3
3
 
4
4
  module Base
5
- def self.included(base)
5
+ def self.extended(base)
6
+ base.extend ClassMethods
6
7
  base.prepend InstanceMethods
7
8
  end
8
9
 
@@ -15,5 +16,21 @@ module Cqs
15
16
  @subject
16
17
  end
17
18
  end
19
+
20
+ module ClassMethods
21
+ def _register_method(method_name, executor)
22
+ define_singleton_method(method_name) do |subject|
23
+ new(subject).send(executor)
24
+ end
25
+ end
26
+
27
+ def subject_alias(alias_subject)
28
+ class_eval %(
29
+ def #{alias_subject}
30
+ @subject
31
+ end
32
+ ), __FILE__, __LINE__ - 4
33
+ end
34
+ end
18
35
  end
19
36
  end
data/lib/cqs/command.rb CHANGED
@@ -1,23 +1,20 @@
1
1
  require "cqs/base"
2
2
 
3
3
  module Command
4
- include Cqs::Base
5
-
6
4
  def self.included(base)
5
+ base.extend Cqs::Base
7
6
  base.extend(ClassMethods)
8
7
  base.register_method :with
9
8
  end
10
9
 
11
10
  module ClassMethods
12
- def register_method(method_name)
13
- define_singleton_method(method_name) do |subject|
14
- new(subject).execute
15
- end
16
- end
17
-
18
11
  def execute
19
12
  new(nil).execute
20
13
  end
14
+
15
+ def register_method(method_name)
16
+ _register_method(method_name, :execute)
17
+ end
21
18
  end
22
19
 
23
20
  def execute
data/lib/cqs/query.rb CHANGED
@@ -1,18 +1,15 @@
1
1
  require "cqs/base"
2
2
 
3
3
  module Query
4
- include Cqs::Base
5
-
6
4
  def self.included(base)
5
+ base.extend Cqs::Base
7
6
  base.extend(ClassMethods)
8
7
  base.register_method :in
9
8
  end
10
9
 
11
10
  module ClassMethods
12
11
  def register_method(method_name)
13
- define_singleton_method(method_name) do |subject|
14
- new(subject).answer
15
- end
12
+ _register_method(method_name, :answer)
16
13
  end
17
14
 
18
15
  def answer
data/lib/cqs/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Cqs
4
- VERSION = "0.2.1"
4
+ VERSION = "0.3.0"
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cqs
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
  - Enrique Comba Riepenhausen
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-01-02 00:00:00.000000000 Z
10
+ date: 2025-02-25 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: railties
@@ -41,6 +41,7 @@ files:
41
41
  - ".standard.yml"
42
42
  - CHANGELOG.md
43
43
  - CODE_OF_CONDUCT.md
44
+ - Guardfile
44
45
  - LICENSE.txt
45
46
  - README.md
46
47
  - Rakefile