verify_it 0.1.0 → 0.1.1
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 +4 -4
- data/CHANGELOG.md +16 -5
- data/README.md +2 -2
- data/lib/verify_it/verifiable.rb +22 -3
- data/lib/verify_it/version.rb +1 -1
- data/lib/verify_it.rb +1 -0
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a41100a91ec8bb6febdc4f760c8b1e2217353e9f606fe95efeae2b8e4ddac027
|
|
4
|
+
data.tar.gz: 2afcdf2a1588b1e74510a7f1a3c24f61f679a47f9e9ed5e488d98e43f5971f3c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: df9fbe710460044df86b666b7b04258d09ec05afba41eaffb6db80de641a3b6989a224dd67e3aa38a6a4c4a76b52fc98ff99e8fe08b10dd9a5756b5f28542e33
|
|
7
|
+
data.tar.gz: 88497353ebc57ab8076b38c16d499f7f05052cbdc61f2e2423eb61eecbb555b454adfcebac341add0e3180d879b0856273b7e2a973ba128443d69d5e9f7b9217
|
data/CHANGELOG.md
CHANGED
|
@@ -1,11 +1,22 @@
|
|
|
1
1
|
## [Unreleased]
|
|
2
2
|
|
|
3
|
+
## [0.1.1] - 2026-03-02
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- **Verifiable concern now supports multiple channels** - `verifies` now generates channel-specific method names (`send_sms_code`, `verify_email_code`) instead of generic names that overwrote each other
|
|
7
|
+
- Added validation for channel parameter (must be `:sms` or `:email`)
|
|
8
|
+
- Added validation for attribute existence at definition time
|
|
9
|
+
- Added detection of method name conflicts
|
|
10
|
+
|
|
3
11
|
### Added
|
|
4
|
-
-
|
|
5
|
-
-
|
|
6
|
-
-
|
|
7
|
-
|
|
8
|
-
|
|
12
|
+
- Comprehensive specs for Verifiable module (22 examples)
|
|
13
|
+
- Channel-based method generation: `send_{channel}_code`, `verify_{channel}_code`, `cleanup_{channel}_verification`
|
|
14
|
+
- Support for multiple verifiable attributes per model (e.g., both phone_number and email)
|
|
15
|
+
|
|
16
|
+
### Documentation
|
|
17
|
+
- Updated README with channel-based API examples
|
|
18
|
+
- Added context parameter examples (custom message templates, tracking metadata)
|
|
19
|
+
- Updated Rails integration section with correct method names
|
|
9
20
|
|
|
10
21
|
## [0.1.0] - 2026-03-01
|
|
11
22
|
|
data/README.md
CHANGED
|
@@ -394,12 +394,12 @@ bundle exec rake build # Build gem
|
|
|
394
394
|
|
|
395
395
|
## Roadmap
|
|
396
396
|
|
|
397
|
-
- [
|
|
397
|
+
- [x] Database storage adapter
|
|
398
398
|
- [ ] Voice verification support
|
|
399
399
|
- [ ] WebAuthn integration
|
|
400
400
|
- [ ] Backup code generation
|
|
401
401
|
- [ ] Multi-factor authentication helpers
|
|
402
|
-
- [
|
|
402
|
+
- [x] Rails installer (CLI)
|
|
403
403
|
|
|
404
404
|
## Contributing
|
|
405
405
|
|
data/lib/verify_it/verifiable.rb
CHANGED
|
@@ -6,7 +6,26 @@ module VerifyIt
|
|
|
6
6
|
|
|
7
7
|
module ClassMethods
|
|
8
8
|
def verifies(attribute, channel: :sms)
|
|
9
|
-
|
|
9
|
+
# Validate channel
|
|
10
|
+
unless %i[sms email].include?(channel)
|
|
11
|
+
raise ArgumentError, "Invalid channel: #{channel}. Must be :sms or :email"
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Validate attribute exists (check at definition time)
|
|
15
|
+
unless method_defined?(attribute) || private_method_defined?(attribute)
|
|
16
|
+
raise ArgumentError, "Attribute :#{attribute} does not respond to #{name}"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# Check for method conflicts
|
|
20
|
+
send_method = "send_#{channel}_code"
|
|
21
|
+
verify_method = "verify_#{channel}_code"
|
|
22
|
+
cleanup_method = "cleanup_#{channel}_verification"
|
|
23
|
+
|
|
24
|
+
if method_defined?(send_method)
|
|
25
|
+
raise ArgumentError, "Method #{send_method} is already defined on #{name}"
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
define_method(send_method) do |context: {}|
|
|
10
29
|
identifier = send(attribute)
|
|
11
30
|
VerifyIt.send_code(
|
|
12
31
|
to: identifier,
|
|
@@ -16,7 +35,7 @@ module VerifyIt
|
|
|
16
35
|
)
|
|
17
36
|
end
|
|
18
37
|
|
|
19
|
-
define_method(
|
|
38
|
+
define_method(verify_method) do |code|
|
|
20
39
|
identifier = send(attribute)
|
|
21
40
|
VerifyIt.verify_code(
|
|
22
41
|
to: identifier,
|
|
@@ -25,7 +44,7 @@ module VerifyIt
|
|
|
25
44
|
)
|
|
26
45
|
end
|
|
27
46
|
|
|
28
|
-
define_method(
|
|
47
|
+
define_method(cleanup_method) do
|
|
29
48
|
identifier = send(attribute)
|
|
30
49
|
VerifyIt.cleanup(
|
|
31
50
|
to: identifier,
|
data/lib/verify_it/version.rb
CHANGED
data/lib/verify_it.rb
CHANGED
|
@@ -13,6 +13,7 @@ require_relative "verify_it/delivery/base"
|
|
|
13
13
|
require_relative "verify_it/delivery/sms_delivery"
|
|
14
14
|
require_relative "verify_it/delivery/email_delivery"
|
|
15
15
|
require_relative "verify_it/verifier"
|
|
16
|
+
require_relative "verify_it/verifiable"
|
|
16
17
|
|
|
17
18
|
module VerifyIt
|
|
18
19
|
class Error < StandardError; end
|