cqs 0.1.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: ffb10bdefb16bd4e808c0cc3cb190f7ac449f4727d6a2ab9847264d5e8c268b1
4
- data.tar.gz: 1b22d99030bb59a94e0a3c6e66463c0ce6bebf83723a3823d47088d66d69b4ae
3
+ metadata.gz: 496f8757958661453feed8771f9983b82f9c07dd1e838e78dd6d2ad7777b1874
4
+ data.tar.gz: 451cad9bd23c6ad545e8f02df30408624e79c664c2f074154eba422307dccdad
5
5
  SHA512:
6
- metadata.gz: 4ee5fc7cc6f2e766133c6ad716b0d1654ad391e34cc805f813e1178d2da62aaae70e9026acaef8e98c8ad8b04dbfe67fd4d5205f65846b83c9511dc9e6768cf2
7
- data.tar.gz: c78a56a8ec265fc21e45723c2f418c688934c1012e7287f0babe9f220dda8c767d0a969635a789cb40ac218c0c5293f3ded9495fc0513c26e26392992f36dd32
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,18 +1,19 @@
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
11
+ def execute
12
+ new(nil).execute
13
+ end
14
+
12
15
  def register_method(method_name)
13
- define_singleton_method(method_name) do |subject|
14
- new(subject).execute
15
- end
16
+ _register_method(method_name, :execute)
16
17
  end
17
18
  end
18
19
 
data/lib/cqs/query.rb CHANGED
@@ -1,18 +1,19 @@
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)
13
+ end
14
+
15
+ def answer
16
+ new(nil).answer
16
17
  end
17
18
  end
18
19
 
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.1.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.1.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: 2024-12-22 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