twi 0.6.0 → 0.8.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 +4 -4
- data/CHANGELOG.md +10 -0
- data/lib/twi/message.rb +12 -2
- data/lib/twi/mock/conversation.rb +2 -0
- data/lib/twi/mock/message.rb +2 -0
- data/lib/twi/mock.rb +3 -0
- data/lib/twi/mocking.rb +7 -0
- data/lib/twi/version.rb +1 -1
- 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: e1f97b3f51774f71277566ba6e50329a019493a1a8f36578aeb1079ae6fe0da1
|
|
4
|
+
data.tar.gz: 0bc82156d7cd71fd36a62bdf6595146424ba553fb0033981f7eea3d0d227e101
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3f2b6f37100f53f86b3f2b7792c15591e2d60d7cb6d9e5d1658862d2af84446d5590ba67846f6c26c788038cc43592f41e0ef01c0f39f8cb72f51fde389c6277
|
|
7
|
+
data.tar.gz: 00ed8b8c2b73e63547942266681009205140046043b84a75488d41cd91997ae563e42e40084bf74cea037a0fe3b1580dc74cdcd03f237dd84dcdf22e73c53865
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
## [0.8.0] - 2026-09-11
|
|
2
|
+
|
|
3
|
+
- [New] Send media with a message: `Twi.create_message media_url:` carries it as an MMS
|
|
4
|
+
- [New] Record what was sent on Twi.mock.messages, so a suite can assert it
|
|
5
|
+
|
|
6
|
+
## [0.7.0] - 2026-08-19
|
|
7
|
+
|
|
8
|
+
- [New] Add Twi.reset_mock, to stop a mocked answer outliving the test that arranged it
|
|
9
|
+
- [Fix] Answer an unarranged Twi::Mock::Conversation#create_with, as Message#create does
|
|
10
|
+
|
|
1
11
|
## [0.6.0] - 2026-07-27
|
|
2
12
|
|
|
3
13
|
- [Fix] Remove proxy_address from conversation participant
|
data/lib/twi/message.rb
CHANGED
|
@@ -40,8 +40,7 @@ module Twi
|
|
|
40
40
|
|
|
41
41
|
# Sends a message.
|
|
42
42
|
def create
|
|
43
|
-
message = api_client.messages.create
|
|
44
|
-
from: "+1#{@params[:sender]}", to: "+1#{@params[:recipient]}", body: @params[:content]
|
|
43
|
+
message = api_client.messages.create **create_params
|
|
45
44
|
|
|
46
45
|
@params = { 'MessageSid' => message.sid }
|
|
47
46
|
@id = message.sid
|
|
@@ -62,6 +61,17 @@ module Twi
|
|
|
62
61
|
|
|
63
62
|
private
|
|
64
63
|
|
|
64
|
+
# Twilio fetches whatever `media_url` names and carries it as an MMS, so a vCard among
|
|
65
|
+
# them arrives as a contact card the reader can save rather than a link they must open.
|
|
66
|
+
# @return [Hash] the arguments Twilio takes for one outbound message.
|
|
67
|
+
def create_params
|
|
68
|
+
media = Array @params[:media_url]
|
|
69
|
+
|
|
70
|
+
{ messaging_service_sid: Twi.lio.messaging_sid.to_s, from: "+1#{@params[:sender]}",
|
|
71
|
+
to: "+1#{@params[:recipient]}", body: @params[:content] }
|
|
72
|
+
.merge(media.any? ? { media_url: media } : {})
|
|
73
|
+
end
|
|
74
|
+
|
|
65
75
|
def self.media_params_for(media = [])
|
|
66
76
|
media.each_with_index.inject({ NumMedia: media.size.to_s }) do |hash, (item, index)|
|
|
67
77
|
url_key = "MediaUrl#{index}".to_sym
|
data/lib/twi/mock/message.rb
CHANGED
data/lib/twi/mock.rb
CHANGED
data/lib/twi/mocking.rb
CHANGED
|
@@ -4,6 +4,13 @@ module Twi
|
|
|
4
4
|
@mock ||= Twi::Mock.new
|
|
5
5
|
end
|
|
6
6
|
|
|
7
|
+
# Forgets every answer arranged so far and starts mocking again from nothing.
|
|
8
|
+
# A test suite calls this before each test: the mock lives on the module, so
|
|
9
|
+
# without it one test answers for the next.
|
|
10
|
+
def reset_mock
|
|
11
|
+
@mock = Twi::Mock.new
|
|
12
|
+
end
|
|
13
|
+
|
|
7
14
|
def create_phone(...)
|
|
8
15
|
phone(...).tap &:create
|
|
9
16
|
end
|
data/lib/twi/version.rb
CHANGED