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.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/lib/{matrix_sdk → active_matrix}/api.rb +18 -22
  3. data/lib/{matrix_sdk → active_matrix}/bot/base.rb +42 -39
  4. data/lib/{matrix_sdk → active_matrix}/bot/main.rb +4 -5
  5. data/lib/active_matrix/bot.rb +7 -0
  6. data/lib/{matrix_sdk → active_matrix}/client.rb +17 -20
  7. data/lib/{matrix_sdk → active_matrix}/errors.rb +4 -4
  8. data/lib/active_matrix/logging.rb +56 -0
  9. data/lib/{matrix_sdk → active_matrix}/mxid.rb +2 -2
  10. data/lib/{matrix_sdk → active_matrix}/protocols/as.rb +1 -1
  11. data/lib/{matrix_sdk → active_matrix}/protocols/cs.rb +6 -8
  12. data/lib/{matrix_sdk → active_matrix}/protocols/is.rb +1 -1
  13. data/lib/{matrix_sdk → active_matrix}/protocols/msc.rb +6 -8
  14. data/lib/{matrix_sdk → active_matrix}/protocols/ss.rb +2 -2
  15. data/lib/active_matrix/railtie.rb +18 -0
  16. data/lib/{matrix_sdk → active_matrix}/response.rb +2 -2
  17. data/lib/{matrix_sdk → active_matrix}/room.rb +21 -25
  18. data/lib/{matrix_sdk → active_matrix}/rooms/space.rb +3 -3
  19. data/lib/{matrix_sdk → active_matrix}/user.rb +13 -15
  20. data/lib/{matrix_sdk → active_matrix}/util/account_data_cache.rb +6 -6
  21. data/lib/{matrix_sdk → active_matrix}/util/events.rb +8 -8
  22. data/lib/{matrix_sdk → active_matrix}/util/extensions.rb +2 -15
  23. data/lib/active_matrix/util/rails_cache_adapter.rb +37 -0
  24. data/lib/{matrix_sdk → active_matrix}/util/state_event_cache.rb +10 -10
  25. data/lib/{matrix_sdk → active_matrix}/util/tinycache.rb +11 -6
  26. data/lib/{matrix_sdk → active_matrix}/util/tinycache_adapter.rb +3 -3
  27. data/lib/{matrix_sdk → active_matrix}/util/uri.rb +4 -4
  28. data/lib/active_matrix/version.rb +5 -0
  29. data/lib/active_matrix.rb +33 -0
  30. metadata +62 -30
  31. data/lib/matrix_sdk/bot.rb +0 -4
  32. data/lib/matrix_sdk/version.rb +0 -5
  33. data/lib/matrix_sdk.rb +0 -75
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'matrix_sdk/util/tinycache_adapter'
3
+ require 'active_matrix/util/tinycache_adapter'
4
4
 
5
- module MatrixSdk::Util
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 ||= TinycacheAdapter
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, **opts)
30
- methods.each { |method| build_cache_methods(method, **opts) }
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(/:/, '') || to_s.gsub(/[^a-zA-Z_0-9]/, '')
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 MatrixSdk::Util
3
+ module ActiveMatrix::Util
4
4
  class TinycacheAdapter
5
- extend MatrixSdk::Extensions
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? }.each { |_, v| v.value = nil }
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(*args)
29
- super(*args)
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 = MatrixSdk::MXID.new("#{sigil}#{component}")
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 = MatrixSdk::MXID.new("#{sigil2}#{component}")
79
+ @mxid2 = ActiveMatrix::MXID.new("#{sigil2}#{component}")
80
80
  end
81
81
 
82
82
  return unless @query
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ActiveMatrix
4
+ VERSION = '0.0.1'
5
+ end
@@ -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.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: logging
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/matrix_sdk.rb
127
- - lib/matrix_sdk/api.rb
128
- - lib/matrix_sdk/bot.rb
129
- - lib/matrix_sdk/bot/base.rb
130
- - lib/matrix_sdk/bot/main.rb
131
- - lib/matrix_sdk/client.rb
132
- - lib/matrix_sdk/errors.rb
133
- - lib/matrix_sdk/mxid.rb
134
- - lib/matrix_sdk/protocols/as.rb
135
- - lib/matrix_sdk/protocols/cs.rb
136
- - lib/matrix_sdk/protocols/is.rb
137
- - lib/matrix_sdk/protocols/msc.rb
138
- - lib/matrix_sdk/protocols/ss.rb
139
- - lib/matrix_sdk/response.rb
140
- - lib/matrix_sdk/room.rb
141
- - lib/matrix_sdk/rooms/space.rb
142
- - lib/matrix_sdk/user.rb
143
- - lib/matrix_sdk/util/account_data_cache.rb
144
- - lib/matrix_sdk/util/events.rb
145
- - lib/matrix_sdk/util/extensions.rb
146
- - lib/matrix_sdk/util/state_event_cache.rb
147
- - lib/matrix_sdk/util/tinycache.rb
148
- - lib/matrix_sdk/util/tinycache_adapter.rb
149
- - lib/matrix_sdk/util/uri.rb
150
- - lib/matrix_sdk/version.rb
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
@@ -1,4 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'matrix_sdk'
4
- require 'matrix_sdk/bot/main'
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module MatrixSdk
4
- VERSION = '0.0.0'
5
- end
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