activematrix 0.0.0 → 0.0.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/lib/{matrix_sdk → active_matrix}/api.rb +18 -22
- data/lib/{matrix_sdk → active_matrix}/bot/base.rb +42 -39
- data/lib/{matrix_sdk → active_matrix}/bot/main.rb +4 -5
- data/lib/active_matrix/bot.rb +7 -0
- data/lib/{matrix_sdk → active_matrix}/client.rb +17 -20
- data/lib/{matrix_sdk → active_matrix}/errors.rb +4 -4
- data/lib/active_matrix/logging.rb +56 -0
- data/lib/{matrix_sdk → active_matrix}/mxid.rb +2 -2
- data/lib/{matrix_sdk → active_matrix}/protocols/as.rb +1 -1
- data/lib/{matrix_sdk → active_matrix}/protocols/cs.rb +6 -8
- data/lib/{matrix_sdk → active_matrix}/protocols/is.rb +1 -1
- data/lib/{matrix_sdk → active_matrix}/protocols/msc.rb +6 -8
- data/lib/{matrix_sdk → active_matrix}/protocols/ss.rb +2 -2
- data/lib/active_matrix/railtie.rb +18 -0
- data/lib/{matrix_sdk → active_matrix}/response.rb +2 -2
- data/lib/{matrix_sdk → active_matrix}/room.rb +21 -25
- data/lib/{matrix_sdk → active_matrix}/rooms/space.rb +3 -3
- data/lib/{matrix_sdk → active_matrix}/user.rb +13 -15
- data/lib/{matrix_sdk → active_matrix}/util/account_data_cache.rb +6 -6
- data/lib/{matrix_sdk → active_matrix}/util/events.rb +8 -8
- data/lib/{matrix_sdk → active_matrix}/util/extensions.rb +2 -15
- data/lib/active_matrix/util/rails_cache_adapter.rb +37 -0
- data/lib/{matrix_sdk → active_matrix}/util/state_event_cache.rb +10 -10
- data/lib/{matrix_sdk → active_matrix}/util/tinycache.rb +11 -6
- data/lib/{matrix_sdk → active_matrix}/util/tinycache_adapter.rb +3 -3
- data/lib/{matrix_sdk → active_matrix}/util/uri.rb +4 -4
- data/lib/active_matrix/version.rb +5 -0
- data/lib/active_matrix.rb +33 -0
- metadata +62 -30
- data/lib/matrix_sdk/bot.rb +0 -4
- data/lib/matrix_sdk/version.rb +0 -5
- data/lib/matrix_sdk.rb +0 -75
@@ -1,8 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'active_matrix/util/tinycache_adapter'
|
4
4
|
|
5
|
-
module
|
5
|
+
module ActiveMatrix::Util
|
6
6
|
module Tinycache
|
7
7
|
CACHE_LEVELS = {
|
8
8
|
none: 0,
|
@@ -11,7 +11,12 @@ module MatrixSdk::Util
|
|
11
11
|
}.freeze
|
12
12
|
|
13
13
|
def self.adapter
|
14
|
-
@adapter ||=
|
14
|
+
@adapter ||= if defined?(::Rails) && ::Rails.respond_to?(:cache)
|
15
|
+
require 'active_matrix/util/rails_cache_adapter'
|
16
|
+
RailsCacheAdapter
|
17
|
+
else
|
18
|
+
TinycacheAdapter
|
19
|
+
end
|
15
20
|
end
|
16
21
|
|
17
22
|
def self.adapter=(adapter)
|
@@ -26,8 +31,8 @@ module MatrixSdk::Util
|
|
26
31
|
base.include InstanceMethods
|
27
32
|
end
|
28
33
|
|
29
|
-
def cached(*methods, **
|
30
|
-
methods.each { |method| build_cache_methods(method, **
|
34
|
+
def cached(*methods, **)
|
35
|
+
methods.each { |method| build_cache_methods(method, **) }
|
31
36
|
end
|
32
37
|
|
33
38
|
module InstanceMethods
|
@@ -52,7 +57,7 @@ module MatrixSdk::Util
|
|
52
57
|
end
|
53
58
|
|
54
59
|
def cache_helper_module_name
|
55
|
-
class_name = name&.gsub(
|
60
|
+
class_name = name&.gsub(':', '') || to_s.gsub(/[^a-zA-Z_0-9]/, '')
|
56
61
|
"#{class_name}Tinycache"
|
57
62
|
end
|
58
63
|
|
@@ -1,8 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
module
|
3
|
+
module ActiveMatrix::Util
|
4
4
|
class TinycacheAdapter
|
5
|
-
extend
|
5
|
+
extend ActiveMatrix::Extensions
|
6
6
|
|
7
7
|
attr_accessor :config, :client
|
8
8
|
|
@@ -69,7 +69,7 @@ module MatrixSdk::Util
|
|
69
69
|
end
|
70
70
|
|
71
71
|
def cleanup
|
72
|
-
@cache.select { |_, v| v.expired? }.
|
72
|
+
@cache.select { |_, v| v.expired? }.each_value { |v| v.value = nil }
|
73
73
|
end
|
74
74
|
|
75
75
|
private
|
@@ -25,8 +25,8 @@ module URI
|
|
25
25
|
class MATRIX < Generic
|
26
26
|
attr_reader :authority, :action, :mxid, :mxid2, :via
|
27
27
|
|
28
|
-
def initialize(*
|
29
|
-
super
|
28
|
+
def initialize(*)
|
29
|
+
super
|
30
30
|
|
31
31
|
@action = nil
|
32
32
|
@authority = nil
|
@@ -64,7 +64,7 @@ module URI
|
|
64
64
|
component = components.shift
|
65
65
|
raise InvalidComponentError, "component can't be empty" if component.nil? || component.empty?
|
66
66
|
|
67
|
-
@mxid =
|
67
|
+
@mxid = ActiveMatrix::MXID.new("#{sigil}#{component}")
|
68
68
|
|
69
69
|
if components.size == 2
|
70
70
|
sigil2 = case components.shift
|
@@ -76,7 +76,7 @@ module URI
|
|
76
76
|
component = components.shift
|
77
77
|
raise InvalidComponentError, "component can't be empty" if component.nil? || component.empty?
|
78
78
|
|
79
|
-
@mxid2 =
|
79
|
+
@mxid2 = ActiveMatrix::MXID.new("#{sigil2}#{component}")
|
80
80
|
end
|
81
81
|
|
82
82
|
return unless @query
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'active_matrix/version'
|
4
|
+
require_relative 'active_matrix/logging'
|
5
|
+
require_relative 'active_matrix/util/extensions'
|
6
|
+
require_relative 'active_matrix/util/uri'
|
7
|
+
require_relative 'active_matrix/util/events'
|
8
|
+
require_relative 'active_matrix/errors'
|
9
|
+
|
10
|
+
require 'json'
|
11
|
+
require 'zeitwerk'
|
12
|
+
|
13
|
+
module ActiveMatrix
|
14
|
+
# Set up Zeitwerk loader
|
15
|
+
Loader = Zeitwerk::Loader.for_gem
|
16
|
+
|
17
|
+
# Configure inflections for special cases
|
18
|
+
Loader.inflector.inflect(
|
19
|
+
'mxid' => 'MXID',
|
20
|
+
'uri' => 'URI',
|
21
|
+
'as' => 'AS',
|
22
|
+
'cs' => 'CS',
|
23
|
+
'is' => 'IS',
|
24
|
+
'ss' => 'SS',
|
25
|
+
'msc' => 'MSC'
|
26
|
+
)
|
27
|
+
|
28
|
+
# Setup Zeitwerk autoloading
|
29
|
+
Loader.setup
|
30
|
+
|
31
|
+
# Load Railtie for Rails integration
|
32
|
+
require 'active_matrix/railtie' if defined?(Rails::Railtie)
|
33
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activematrix
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Abdelkader Boudih
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: ostruct
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: rake
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,6 +66,20 @@ dependencies:
|
|
52
66
|
- - ">="
|
53
67
|
- !ruby/object:Gem::Version
|
54
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: syslog
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
55
83
|
- !ruby/object:Gem::Dependency
|
56
84
|
name: test-unit
|
57
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -95,19 +123,19 @@ dependencies:
|
|
95
123
|
- !ruby/object:Gem::Version
|
96
124
|
version: '8.0'
|
97
125
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
126
|
+
name: zeitwerk
|
99
127
|
requirement: !ruby/object:Gem::Requirement
|
100
128
|
requirements:
|
101
129
|
- - "~>"
|
102
130
|
- !ruby/object:Gem::Version
|
103
|
-
version: '2'
|
131
|
+
version: '2.6'
|
104
132
|
type: :runtime
|
105
133
|
prerelease: false
|
106
134
|
version_requirements: !ruby/object:Gem::Requirement
|
107
135
|
requirements:
|
108
136
|
- - "~>"
|
109
137
|
- !ruby/object:Gem::Version
|
110
|
-
version: '2'
|
138
|
+
version: '2.6'
|
111
139
|
description: A Ruby on Rails gem that provides seamless integration with the Matrix
|
112
140
|
protocol, enabling Rails applications to connect and communicate with Matrix servers.
|
113
141
|
email:
|
@@ -123,35 +151,39 @@ files:
|
|
123
151
|
- CHANGELOG.md
|
124
152
|
- LICENSE.txt
|
125
153
|
- README.md
|
126
|
-
- lib/
|
127
|
-
- lib/
|
128
|
-
- lib/
|
129
|
-
- lib/
|
130
|
-
- lib/
|
131
|
-
- lib/
|
132
|
-
- lib/
|
133
|
-
- lib/
|
134
|
-
- lib/
|
135
|
-
- lib/
|
136
|
-
- lib/
|
137
|
-
- lib/
|
138
|
-
- lib/
|
139
|
-
- lib/
|
140
|
-
- lib/
|
141
|
-
- lib/
|
142
|
-
- lib/
|
143
|
-
- lib/
|
144
|
-
- lib/
|
145
|
-
- lib/
|
146
|
-
- lib/
|
147
|
-
- lib/
|
148
|
-
- lib/
|
149
|
-
- lib/
|
150
|
-
- lib/
|
154
|
+
- lib/active_matrix.rb
|
155
|
+
- lib/active_matrix/api.rb
|
156
|
+
- lib/active_matrix/bot.rb
|
157
|
+
- lib/active_matrix/bot/base.rb
|
158
|
+
- lib/active_matrix/bot/main.rb
|
159
|
+
- lib/active_matrix/client.rb
|
160
|
+
- lib/active_matrix/errors.rb
|
161
|
+
- lib/active_matrix/logging.rb
|
162
|
+
- lib/active_matrix/mxid.rb
|
163
|
+
- lib/active_matrix/protocols/as.rb
|
164
|
+
- lib/active_matrix/protocols/cs.rb
|
165
|
+
- lib/active_matrix/protocols/is.rb
|
166
|
+
- lib/active_matrix/protocols/msc.rb
|
167
|
+
- lib/active_matrix/protocols/ss.rb
|
168
|
+
- lib/active_matrix/railtie.rb
|
169
|
+
- lib/active_matrix/response.rb
|
170
|
+
- lib/active_matrix/room.rb
|
171
|
+
- lib/active_matrix/rooms/space.rb
|
172
|
+
- lib/active_matrix/user.rb
|
173
|
+
- lib/active_matrix/util/account_data_cache.rb
|
174
|
+
- lib/active_matrix/util/events.rb
|
175
|
+
- lib/active_matrix/util/extensions.rb
|
176
|
+
- lib/active_matrix/util/rails_cache_adapter.rb
|
177
|
+
- lib/active_matrix/util/state_event_cache.rb
|
178
|
+
- lib/active_matrix/util/tinycache.rb
|
179
|
+
- lib/active_matrix/util/tinycache_adapter.rb
|
180
|
+
- lib/active_matrix/util/uri.rb
|
181
|
+
- lib/active_matrix/version.rb
|
151
182
|
homepage: https://github.com/seuros/activematrix
|
152
183
|
licenses:
|
153
184
|
- MIT
|
154
|
-
metadata:
|
185
|
+
metadata:
|
186
|
+
rubygems_mfa_required: 'true'
|
155
187
|
rdoc_options: []
|
156
188
|
require_paths:
|
157
189
|
- lib
|
data/lib/matrix_sdk/bot.rb
DELETED
data/lib/matrix_sdk/version.rb
DELETED
data/lib/matrix_sdk.rb
DELETED
@@ -1,75 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'matrix_sdk/util/extensions'
|
4
|
-
require 'matrix_sdk/util/uri'
|
5
|
-
require 'matrix_sdk/version'
|
6
|
-
|
7
|
-
require 'json'
|
8
|
-
|
9
|
-
autoload :Logging, 'logging'
|
10
|
-
|
11
|
-
module MatrixSdk
|
12
|
-
autoload :Api, 'matrix_sdk/api'
|
13
|
-
# autoload :ApplicationService, 'matrix_sdk/application_service'
|
14
|
-
autoload :Client, 'matrix_sdk/client'
|
15
|
-
autoload :MXID, 'matrix_sdk/mxid'
|
16
|
-
autoload :Response, 'matrix_sdk/response'
|
17
|
-
autoload :Room, 'matrix_sdk/room'
|
18
|
-
autoload :User, 'matrix_sdk/user'
|
19
|
-
|
20
|
-
autoload :MatrixError, 'matrix_sdk/errors'
|
21
|
-
autoload :MatrixRequestError, 'matrix_sdk/errors'
|
22
|
-
autoload :MatrixNotAuthorizedError, 'matrix_sdk/errors'
|
23
|
-
autoload :MatrixForbiddenError, 'matrix_sdk/errors'
|
24
|
-
autoload :MatrixNotFoundError, 'matrix_sdk/errors'
|
25
|
-
autoload :MatrixConflictError, 'matrix_sdk/errors'
|
26
|
-
autoload :MatrixTooManyRequestsError, 'matrix_sdk/errors'
|
27
|
-
autoload :MatrixConnectionError, 'matrix_sdk/errors'
|
28
|
-
autoload :MatrixTimeoutError, 'matrix_sdk/errors'
|
29
|
-
autoload :MatrixUnexpectedResponseError, 'matrix_sdk/errors'
|
30
|
-
|
31
|
-
module Bot
|
32
|
-
autoload :Base, 'matrix_sdk/bot/base'
|
33
|
-
end
|
34
|
-
|
35
|
-
module Rooms
|
36
|
-
autoload :Space, 'matrix_sdk/rooms/space'
|
37
|
-
end
|
38
|
-
|
39
|
-
module Util
|
40
|
-
autoload :AccountDataCache, 'matrix_sdk/util/account_data_cache'
|
41
|
-
autoload :StateEventCache, 'matrix_sdk/util/state_event_cache'
|
42
|
-
autoload :Tinycache, 'matrix_sdk/util/tinycache'
|
43
|
-
autoload :TinycacheAdapter, 'matrix_sdk/util/tinycache_adapter'
|
44
|
-
end
|
45
|
-
|
46
|
-
module Protocols
|
47
|
-
autoload :AS, 'matrix_sdk/protocols/as'
|
48
|
-
autoload :CS, 'matrix_sdk/protocols/cs'
|
49
|
-
autoload :IS, 'matrix_sdk/protocols/is'
|
50
|
-
autoload :SS, 'matrix_sdk/protocols/ss'
|
51
|
-
|
52
|
-
# Non-final protocol extensions
|
53
|
-
autoload :MSC, 'matrix_sdk/protocols/msc'
|
54
|
-
end
|
55
|
-
|
56
|
-
def self.debug!
|
57
|
-
logger.level = :debug
|
58
|
-
end
|
59
|
-
|
60
|
-
def self.logger
|
61
|
-
@logger ||= ::Logging.logger[self].tap do |logger|
|
62
|
-
logger.add_appenders ::Logging.appenders.stdout
|
63
|
-
logger.level = :info
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
def self.logger=(global_logger)
|
68
|
-
@logger = global_logger
|
69
|
-
@global_logger = !global_logger.nil?
|
70
|
-
end
|
71
|
-
|
72
|
-
def self.global_logger?
|
73
|
-
@global_logger ||= false
|
74
|
-
end
|
75
|
-
end
|