smess 2.0.3 → 2.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 3e03c293b16f50489ffc4ca98c0ca29faa0167b8
4
- data.tar.gz: 3bb986ac9d0a28d00ce64a710da21f0d4293c1ef
2
+ SHA256:
3
+ metadata.gz: a68f70426ddeb7e649d83a60e2d7d9eb5f250c5ab11eaba675ed0c294b230012
4
+ data.tar.gz: b99b728d7c3e87df6c583e813d595118ff3f64f9420d6a3f8ea3d059e461f569
5
5
  SHA512:
6
- metadata.gz: bb01885a6b3cd6a9cc55c4f32627d3b374ad4059ae5c4871017ce9c8f12dc195a7f47a938e00b1cdf6a4fc67e6b21cca5cd7069ce03da95b12e62b5746e32d92
7
- data.tar.gz: 682448f2af294487bc69efea434e36e0b38795938ac503f028a584bf5f157b54e171c8d2617479eb20ad5b1078d1736d8da61bddd33b2728c115f27e036e2696
6
+ metadata.gz: 29d073ccaa990bae3df15794801eb66334db92aca6be80f67a67e81aee3e03da7310fcbd51e626648db3d7b49f0d58e3533c1cb188ec73f6ff82b1dafa3a55a2
7
+ data.tar.gz: 7aae59bede4be5272effee14172f852ec31ddd6ecf82657d755374d7b223a70a364a832917bb4bfc9f3888e19ab5a096b9c284cd488596c7b35f7ae5a30a7d19
data/Gemfile.lock CHANGED
@@ -1,65 +1,85 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- smess (2.0.2)
5
- activesupport (>= 3.0)
6
- clickatell
7
- httpi
8
- mail
4
+ smess (2.0.6)
5
+ activesupport (>= 5.2.6, < 7.0.0)
6
+ clickatell (~> 0)
7
+ httpi (~> 1.1)
8
+ mail (~> 2.7)
9
9
  savon (= 1.2.0)
10
- twilio-ruby
10
+ twilio-ruby (~> 5.26)
11
11
 
12
12
  GEM
13
13
  remote: https://rubygems.org/
14
14
  specs:
15
- activesupport (4.2.6)
16
- i18n (~> 0.7)
17
- json (~> 1.7, >= 1.7.7)
18
- minitest (~> 5.1)
19
- thread_safe (~> 0.3, >= 0.3.4)
20
- tzinfo (~> 1.1)
15
+ activesupport (6.1.4.1)
16
+ concurrent-ruby (~> 1.0, >= 1.0.2)
17
+ i18n (>= 1.6, < 2)
18
+ minitest (>= 5.1)
19
+ tzinfo (~> 2.0)
20
+ zeitwerk (~> 2.3)
21
21
  akami (1.2.2)
22
22
  gyoku (>= 0.4.0)
23
23
  nokogiri
24
- builder (3.2.2)
24
+ builder (3.2.4)
25
25
  clickatell (0.8.2)
26
- diff-lcs (1.2.5)
27
- docile (1.1.5)
28
- dotenv (2.1.1)
26
+ concurrent-ruby (1.1.9)
27
+ diff-lcs (1.3)
28
+ docile (1.3.2)
29
+ dotenv (2.7.5)
30
+ faraday (1.8.0)
31
+ faraday-em_http (~> 1.0)
32
+ faraday-em_synchrony (~> 1.0)
33
+ faraday-excon (~> 1.1)
34
+ faraday-httpclient (~> 1.0.1)
35
+ faraday-net_http (~> 1.0)
36
+ faraday-net_http_persistent (~> 1.1)
37
+ faraday-patron (~> 1.0)
38
+ faraday-rack (~> 1.0)
39
+ multipart-post (>= 1.2, < 3)
40
+ ruby2_keywords (>= 0.0.4)
41
+ faraday-em_http (1.0.0)
42
+ faraday-em_synchrony (1.0.0)
43
+ faraday-excon (1.1.0)
44
+ faraday-httpclient (1.0.1)
45
+ faraday-net_http (1.0.1)
46
+ faraday-net_http_persistent (1.2.0)
47
+ faraday-patron (1.0.0)
48
+ faraday-rack (1.0.0)
29
49
  gyoku (0.4.6)
30
50
  builder (>= 2.1.2)
31
51
  httpi (1.1.1)
32
52
  rack
33
- i18n (0.7.0)
34
- json (1.8.3)
35
- jwt (1.5.4)
36
- mail (2.6.4)
37
- mime-types (>= 1.16, < 4)
38
- mime-types (3.1)
39
- mime-types-data (~> 3.2015)
40
- mime-types-data (3.2016.0521)
41
- mini_portile2 (2.1.0)
42
- minitest (5.9.0)
43
- multi_json (1.12.1)
44
- nokogiri (1.6.8)
45
- mini_portile2 (~> 2.1.0)
46
- pkg-config (~> 1.1.7)
53
+ i18n (1.8.10)
54
+ concurrent-ruby (~> 1.0)
55
+ json (2.3.0)
56
+ jwt (2.3.0)
57
+ mail (2.7.1)
58
+ mini_mime (>= 0.1.1)
59
+ mini_mime (1.1.2)
60
+ mini_portile2 (2.6.1)
61
+ minitest (5.14.4)
62
+ multipart-post (2.1.1)
63
+ nokogiri (1.12.5)
64
+ mini_portile2 (~> 2.6.1)
65
+ racc (~> 1.4)
47
66
  nori (1.1.5)
48
- pkg-config (1.1.7)
49
- rack (1.6.4)
50
- rspec (3.4.0)
51
- rspec-core (~> 3.4.0)
52
- rspec-expectations (~> 3.4.0)
53
- rspec-mocks (~> 3.4.0)
54
- rspec-core (3.4.4)
55
- rspec-support (~> 3.4.0)
56
- rspec-expectations (3.4.0)
67
+ racc (1.5.2)
68
+ rack (2.2.3)
69
+ rspec (3.9.0)
70
+ rspec-core (~> 3.9.0)
71
+ rspec-expectations (~> 3.9.0)
72
+ rspec-mocks (~> 3.9.0)
73
+ rspec-core (3.9.1)
74
+ rspec-support (~> 3.9.1)
75
+ rspec-expectations (3.9.1)
57
76
  diff-lcs (>= 1.2.0, < 2.0)
58
- rspec-support (~> 3.4.0)
59
- rspec-mocks (3.4.1)
77
+ rspec-support (~> 3.9.0)
78
+ rspec-mocks (3.9.1)
60
79
  diff-lcs (>= 1.2.0, < 2.0)
61
- rspec-support (~> 3.4.0)
62
- rspec-support (3.4.1)
80
+ rspec-support (~> 3.9.0)
81
+ rspec-support (3.9.2)
82
+ ruby2_keywords (0.0.5)
63
83
  savon (1.2.0)
64
84
  akami (~> 1.2.0)
65
85
  builder (>= 2.1.2)
@@ -68,21 +88,21 @@ GEM
68
88
  nokogiri (>= 1.4.0)
69
89
  nori (~> 1.1.0)
70
90
  wasabi (~> 2.5.0)
71
- simplecov (0.11.2)
72
- docile (~> 1.1.0)
73
- json (~> 1.8)
91
+ simplecov (0.17.1)
92
+ docile (~> 1.1)
93
+ json (>= 1.8, < 3)
74
94
  simplecov-html (~> 0.10.0)
75
- simplecov-html (0.10.0)
76
- thread_safe (0.3.5)
77
- twilio-ruby (4.11.1)
78
- builder (>= 2.1.2)
79
- jwt (~> 1.0)
80
- multi_json (>= 1.3.0)
81
- tzinfo (1.2.2)
82
- thread_safe (~> 0.1)
95
+ simplecov-html (0.10.2)
96
+ twilio-ruby (5.59.0)
97
+ faraday (>= 0.9, < 2.0)
98
+ jwt (>= 1.5, <= 2.5)
99
+ nokogiri (>= 1.6, < 2.0)
100
+ tzinfo (2.0.4)
101
+ concurrent-ruby (~> 1.0)
83
102
  wasabi (2.5.1)
84
103
  httpi (~> 1.0)
85
104
  nokogiri (>= 1.4.0)
105
+ zeitwerk (2.4.2)
86
106
 
87
107
  PLATFORMS
88
108
  ruby
@@ -94,4 +114,4 @@ DEPENDENCIES
94
114
  smess!
95
115
 
96
116
  BUNDLED WITH
97
- 1.11.2
117
+ 1.17.3
data/example_config.rb ADDED
@@ -0,0 +1,90 @@
1
+ most_of_the_caribbean = [
2
+ "1242", # Bahamas
3
+ "1246", # Barbados
4
+ "1264", # Anguilla
5
+ "1268", # Antigua and Barbuda
6
+ "1284", # British Virgin Islands
7
+ "1345", # Cayman Islands
8
+ "1473", # Grenada
9
+ "1649", # Turks and Caicos Islands
10
+ "1664", # Montserrat
11
+ "1670", # Northern Mariana Islands
12
+ "1671", # Guam
13
+ "1684", # American Samoa
14
+ "1758", # Saint Lucia
15
+ "1767", # Dominica
16
+ "1784", # Saint Vincent and the Grenadines
17
+ "1787", # Puerto Rico
18
+ "1809", # Dominican Republic
19
+ "1868", # Trinidad and Tobago
20
+ "1869", # Saint Kitts and Nevis
21
+ "1876" # Jamaica
22
+ ]
23
+
24
+ Smess.configure do |config|
25
+
26
+ config.default_sender_id = ENV["SMESS_SENDER_ID"]
27
+ config.default_output = :global_mouth
28
+ config.register_output({
29
+ name: :global_mouth,
30
+ country_codes: most_of_the_caribbean + ["20", "33", "34", "44", "46", "49", "594", "966"],
31
+ type: :global_mouth,
32
+ config: {
33
+ username: ENV["SMESS_GLOBAL_MOUTH_USER"],
34
+ password: ENV["SMESS_GLOBAL_MOUTH_PASS"],
35
+ sender_id: ENV["SMESS_GLOBAL_MOUTH_SENDER_ID"]
36
+ }
37
+ })
38
+
39
+ config.register_output({
40
+ name: :iconectiv,
41
+ country_codes: ["1"],
42
+ type: :iconectiv,
43
+ config: {
44
+ sms_url: ENV["SMESS_ICONECTIV_URL"],
45
+ username: ENV["SMESS_ICONECTIV_USER"],
46
+ password: ENV["SMESS_ICONECTIV_PASS"],
47
+ shortcode: ENV["SMESS_ICONECTIV_SHORTCODE"],
48
+ account_name: ENV["SMESS_ICONECTIV_ACCOUNT_NAME"],
49
+ service_name: ENV["SMESS_SERVICE_NAME"],
50
+ service_meta_data_verizon: ENV["SMESS_ICONECTIV_SERVICE_META_DATA_VERIZON"],
51
+ service_meta_data_t_mobile_us: ENV["SMESS_ICONECTIV_SERVICE_META_DATA_T_MOBILE_US"]
52
+ }
53
+ })
54
+
55
+ config.register_output({
56
+ name: :twilio,
57
+ country_codes: ["971"],
58
+ type: :twilio,
59
+ config: {
60
+ sid: ENV["SMESS_TWILIO_SID"],
61
+ auth_token: ENV["SMESS_TWILIO_AUTH_TOKEN"],
62
+ from: ENV["SMESS_TWILIO_FROM"],
63
+ callback_url: ENV["SMESS_TWILIO_CALLBACK_URL"]
64
+ }
65
+ })
66
+
67
+ config.register_output({
68
+ name: :card_board_fish,
69
+ country_codes: ["212"],
70
+ type: :card_board_fish,
71
+ config: {
72
+ username: ENV["SMESS_CARD_BOARD_FISH_USER"],
73
+ password: ENV["SMESS_CARD_BOARD_FISH_PASS"]
74
+ }
75
+ })
76
+
77
+ config.register_output({
78
+ name: :clickatell,
79
+ country_codes: ["1441"],
80
+ type: :clickatell,
81
+ config: {
82
+ api_id: ENV["SMESS_CLICKATELL_API_ID"],
83
+ user: ENV["SMESS_CLICKATELL_USER"],
84
+ pass: ENV["SMESS_CLICKATELL_PASS"],
85
+ sender_id: ENV["SMESS_CLICKATELL_SENDER_ID"],
86
+ sender_ids: ENV["SMESS_CLICKATELL_SENDER_IDS"]
87
+ }
88
+ })
89
+
90
+ end
@@ -0,0 +1,73 @@
1
+ require 'uri'
2
+ require 'httpi'
3
+ require 'json'
4
+
5
+ module Smess
6
+ class LinkMobility < HttpBase
7
+
8
+ def deliver
9
+ request.auth.basic(username, password)
10
+ request.url = url
11
+ request.headers["Content-Type"] = "application/json"
12
+ request.body = body
13
+
14
+ http_post request
15
+ end
16
+
17
+ attr_accessor :username, :password, :platform_id, :platform_partner_id, :gate_id
18
+ def validate_config
19
+ @username = config.fetch(:username)
20
+ @password = config.fetch(:password)
21
+ @platform_id = config.fetch(:platform_id)
22
+ @platform_partner_id = config.fetch(:platform_partner_id)
23
+ @gate_id = config.fetch(:gate_id)
24
+ @sender_id = config.fetch(:sender_id, @sender_id)
25
+ end
26
+
27
+ private
28
+
29
+ def url
30
+ config.fetch(:url)
31
+ end
32
+
33
+ def sourceTON
34
+ if !from.nil? && from[0] == "+"
35
+ "MSISDN"
36
+ else
37
+ "ALPHANUMERIC"
38
+ end
39
+ end
40
+
41
+ def body
42
+ {
43
+ source: from,
44
+ sourceTON: sourceTON,
45
+ destination: "+#{sms.to}",
46
+ userData: sms.message,
47
+ platformId: platform_id,
48
+ platformPartnerId: platform_partner_id,
49
+ dcs: "TEXT",
50
+ useDeliveryReport: true,
51
+ deliveryReportGates: [gate_id]
52
+ }.to_json
53
+ end
54
+
55
+ def normal_result(response)
56
+ response_json = JSON.parse(response.body)
57
+
58
+ response_code = response_json["resultCode"]
59
+ response_code = "0" if response_code == 1005
60
+
61
+ message_id = response_json["messageId"]
62
+ # Successful response
63
+ {
64
+ message_id: message_id,
65
+ response_code: response_code.to_s,
66
+ response: response_json,
67
+ destination_address: sms.to,
68
+ data: result_data
69
+ }
70
+ end
71
+
72
+ end
73
+ end
@@ -19,7 +19,7 @@ module Smess
19
19
  end
20
20
 
21
21
  def deliver
22
- send_one_sms sms.message.strip_nongsm_chars
22
+ send_one_sms sms.message
23
23
  end
24
24
 
25
25
  private
@@ -31,7 +31,7 @@ module Smess
31
31
  end
32
32
 
33
33
  def split_parts
34
- Smess.separate_sms(sms.message.strip_nongsm_chars).reject {|s| s.empty? }
34
+ Smess.separate_sms(sms.message).reject {|s| s.empty? }
35
35
  end
36
36
 
37
37
  def send_one_sms(message)
@@ -46,16 +46,19 @@ module Smess
46
46
  else
47
47
  opts[:from] = from
48
48
  end
49
+ puts "about to create_client_message"
49
50
  response = create_client_message(opts)
51
+ puts "got response #{response.inspect}"
50
52
  result = normal_result(response)
51
53
  rescue => e
54
+ puts "got exception #{e.inspect}"
52
55
  result = result_for_error(e)
53
56
  end
54
57
  result
55
58
  end
56
59
 
57
60
  def create_client_message(params)
58
- client.account.messages.create(params)
61
+ client.api.account.messages.create(params)
59
62
  end
60
63
 
61
64
  def client
@@ -69,18 +72,25 @@ module Smess
69
72
  {
70
73
  message_id: response.sid,
71
74
  response_code: response_code.to_s,
72
- response: MultiJson.load(client.last_response.body),
75
+ response: {
76
+ sid: response.sid,
77
+ status: response.status,
78
+ error_code: response.error_code,
79
+ error_message: response.error_message
80
+ },
73
81
  destination_address: sms.to,
74
82
  data: result_data
75
83
  }
76
84
  end
77
85
 
78
86
  def result_for_error(e)
87
+ code = "-1"
88
+ code = e.code.to_s rescue code
79
89
  {
80
- response_code: '-1',
90
+ response_code: code,
81
91
  response: {
82
92
  temporaryError: 'true',
83
- responseCode: '-1',
93
+ responseCode: code,
84
94
  responseText: e.message
85
95
  },
86
96
  data: result_data
@@ -90,7 +100,7 @@ module Smess
90
100
  def result_data
91
101
  {
92
102
  to: sms.to,
93
- text: sms.message.strip_nongsm_chars,
103
+ text: sms.message,
94
104
  from: from
95
105
  }
96
106
  end
data/lib/smess/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Smess
2
- VERSION = '2.0.3'
2
+ VERSION = '2.0.7'
3
3
  end
data/lib/smess.rb CHANGED
@@ -20,6 +20,7 @@ require 'smess/outputs/card_board_fish'
20
20
  require 'smess/outputs/clickatell'
21
21
  require 'smess/outputs/smsglobal'
22
22
  require 'smess/outputs/global_mouth'
23
+ require 'smess/outputs/link_mobility'
23
24
  require 'smess/outputs/mblox'
24
25
  require 'smess/outputs/twilio'
25
26
  require 'smess/outputs/iconectiv'
@@ -58,7 +59,7 @@ module Smess
58
59
  @nothing = false
59
60
  @default_output = nil
60
61
  @default_sender_id = "Smess"
61
- @output_types = %i{auto card_board_fish clickatell global_mouth iconectiv mblox smsglobal twilio}
62
+ @output_types = %i{auto card_board_fish clickatell global_mouth link_mobility iconectiv mblox smsglobal twilio}
62
63
  @configured_outputs = {}
63
64
  @output_by_country_code = {}
64
65
 
data/lib/string_ext.rb CHANGED
@@ -62,7 +62,7 @@ class String
62
62
  end
63
63
 
64
64
  pattern = Regexp.new( "[^"+allowed+"]" )
65
- self.gsub!(pattern,"")
65
+ self.gsub!(pattern, replacement)
66
66
  end
67
67
 
68
68
 
data/smess.gemspec ADDED
@@ -0,0 +1,30 @@
1
+ $:.push File.expand_path("../lib", __FILE__)
2
+ require "smess/version"
3
+
4
+ Gem::Specification.new do |s|
5
+ s.platform = Gem::Platform::RUBY
6
+ s.name = "smess"
7
+ s.version = Smess::VERSION
8
+ s.date = Time.now
9
+ s.summary = "A messy SMS messenger supporting every aggregator I have gotten my hands on"
10
+ s.description = "A mess of SMS messaging"
11
+ s.require_paths = ["lib"]
12
+ s.author = "Martin Westin"
13
+ s.email = "martin@eimermusic.com"
14
+ s.homepage = "https://github.com/eimermusic/smess"
15
+ s.license = 'MIT'
16
+
17
+ s.add_development_dependency 'rspec', '>= 2.4.0'
18
+ s.add_development_dependency 'simplecov'
19
+ s.add_development_dependency 'dotenv'
20
+ s.add_dependency 'mail', '~> 2.7'
21
+ s.add_dependency 'savon', '1.2.0'
22
+ s.add_dependency 'httpi', '~> 1.1'
23
+ s.add_dependency 'clickatell', '~> 0'
24
+ s.add_dependency 'twilio-ruby', '~> 5.26'
25
+ s.add_dependency 'activesupport', '>= 5.2.6', '< 7.0.0'
26
+
27
+ s.files = Dir["{lib}/**/*", "[A-Z]*", "init.rb"]
28
+ s.required_ruby_version = ">= 2.0.0"
29
+ s.required_rubygems_version = ">= 1.3.7"
30
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smess
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.3
4
+ version: 2.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Westin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-02 00:00:00.000000000 Z
11
+ date: 2021-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -56,16 +56,16 @@ dependencies:
56
56
  name: mail
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '2.7'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '2.7'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: savon
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -84,58 +84,64 @@ dependencies:
84
84
  name: httpi
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: '1.1'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: '1.1'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: clickatell
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: twilio-ruby
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">="
115
+ - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '0'
117
+ version: '5.26'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ">="
122
+ - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '0'
124
+ version: '5.26'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: activesupport
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - ">="
130
130
  - !ruby/object:Gem::Version
131
- version: '3.0'
131
+ version: 5.2.6
132
+ - - "<"
133
+ - !ruby/object:Gem::Version
134
+ version: 7.0.0
132
135
  type: :runtime
133
136
  prerelease: false
134
137
  version_requirements: !ruby/object:Gem::Requirement
135
138
  requirements:
136
139
  - - ">="
137
140
  - !ruby/object:Gem::Version
138
- version: '3.0'
141
+ version: 5.2.6
142
+ - - "<"
143
+ - !ruby/object:Gem::Version
144
+ version: 7.0.0
139
145
  description: A mess of SMS messaging
140
146
  email: martin@eimermusic.com
141
147
  executables: []
@@ -146,6 +152,7 @@ files:
146
152
  - Gemfile.lock
147
153
  - LICENSE
148
154
  - README.md
155
+ - example_config.rb
149
156
  - lib/smess.rb
150
157
  - lib/smess/logging.rb
151
158
  - lib/smess/output.rb
@@ -157,6 +164,7 @@ files:
157
164
  - lib/smess/outputs/iconectiv.rb
158
165
  - lib/smess/outputs/ipx.rb
159
166
  - lib/smess/outputs/ipxus.rb
167
+ - lib/smess/outputs/link_mobility.rb
160
168
  - lib/smess/outputs/mblox.rb
161
169
  - lib/smess/outputs/smsglobal.rb
162
170
  - lib/smess/outputs/test.rb
@@ -165,6 +173,7 @@ files:
165
173
  - lib/smess/utils.rb
166
174
  - lib/smess/version.rb
167
175
  - lib/string_ext.rb
176
+ - smess.gemspec
168
177
  homepage: https://github.com/eimermusic/smess
169
178
  licenses:
170
179
  - MIT
@@ -177,15 +186,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
177
186
  requirements:
178
187
  - - ">="
179
188
  - !ruby/object:Gem::Version
180
- version: 1.9.2
189
+ version: 2.0.0
181
190
  required_rubygems_version: !ruby/object:Gem::Requirement
182
191
  requirements:
183
192
  - - ">="
184
193
  - !ruby/object:Gem::Version
185
194
  version: 1.3.7
186
195
  requirements: []
187
- rubyforge_project:
188
- rubygems_version: 2.2.2
196
+ rubygems_version: 3.0.3
189
197
  signing_key:
190
198
  specification_version: 4
191
199
  summary: A messy SMS messenger supporting every aggregator I have gotten my hands