chatrix 1.3.0 → 1.4.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/Gemfile +5 -0
- data/Guardfile +42 -0
- data/lib/chatrix/client.rb +2 -1
- data/lib/chatrix/components/state.rb +1 -1
- data/lib/chatrix/user.rb +8 -0
- data/lib/chatrix/users.rb +2 -1
- data/lib/chatrix/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9ba46cb5ec75d859c02dd7ed213b2b21a4e7f5ee
|
4
|
+
data.tar.gz: bbf09105a61342db53fd688099b3f5269719aabd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f20497370325083e5a5cc579214c62650dc85b3faed414e5681adf3a22832b56242e0169e68b0e45a998ff311569045b99e03f236e474fc93d849bff1bbae2cc
|
7
|
+
data.tar.gz: 95b602dbbf88af113c91072b7e1c21f7fac9a1762b3dee8eb20f93ffdfeeb360ddc6eabdf19c413ab63e7fd992a9ac1be074e4723d96abe05b888dc36419b199
|
data/Gemfile
CHANGED
data/Guardfile
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
guard :rspec, cmd: 'bundle exec rspec' do
|
5
|
+
require 'guard/rspec/dsl'
|
6
|
+
dsl = Guard::RSpec::Dsl.new(self)
|
7
|
+
|
8
|
+
# Feel free to open issues for suggestions and improvements
|
9
|
+
|
10
|
+
# RSpec files
|
11
|
+
rspec = dsl.rspec
|
12
|
+
watch(rspec.spec_helper) { rspec.spec_dir }
|
13
|
+
watch(rspec.spec_support) { rspec.spec_dir }
|
14
|
+
watch(rspec.spec_files)
|
15
|
+
|
16
|
+
# Ruby files
|
17
|
+
ruby = dsl.ruby
|
18
|
+
dsl.watch_spec_files_for(ruby.lib_files)
|
19
|
+
|
20
|
+
# Turnip features and steps
|
21
|
+
watch(%r{^spec/acceptance/(.+)\.feature$})
|
22
|
+
watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) do |m|
|
23
|
+
Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance'
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
guard :bundler do
|
28
|
+
require 'guard/bundler'
|
29
|
+
require 'guard/bundler/verify'
|
30
|
+
helper = Guard::Bundler::Verify.new
|
31
|
+
|
32
|
+
files = ['Gemfile']
|
33
|
+
files += Dir['*.gemspec'] if files.any? { |f| helper.uses_gemspec?(f) }
|
34
|
+
|
35
|
+
# Assume files are symlinked from somewhere
|
36
|
+
files.each { |file| watch(helper.real_path(file)) }
|
37
|
+
end
|
38
|
+
|
39
|
+
guard :rubocop do
|
40
|
+
watch(/.+\.rb$/)
|
41
|
+
watch(%r{(?:.+/)?\.rubocop(?:_todo)?\.yml$}) { |m| File.dirname(m[0]) }
|
42
|
+
end
|
data/lib/chatrix/client.rb
CHANGED
@@ -37,6 +37,8 @@ module Chatrix
|
|
37
37
|
room.on(:invited) { |s, i| broadcast(:invited, room, s, i) }
|
38
38
|
room.timeline.on(:message) { |r, m| broadcast(:room_message, r, m) }
|
39
39
|
end
|
40
|
+
|
41
|
+
on(:disconnected) { stop_syncing }
|
40
42
|
end
|
41
43
|
|
42
44
|
# Starts syncing against the homeserver.
|
@@ -53,7 +55,6 @@ module Chatrix
|
|
53
55
|
rescue => e
|
54
56
|
broadcast(:connection_error, e)
|
55
57
|
ensure
|
56
|
-
stop_syncing
|
57
58
|
broadcast(:disconnected)
|
58
59
|
end
|
59
60
|
end
|
@@ -140,7 +140,7 @@ module Chatrix
|
|
140
140
|
# @param event [Hash] The member event.
|
141
141
|
def handle_member(event)
|
142
142
|
@users.process_member_event self, event
|
143
|
-
user = @users[event['
|
143
|
+
user = @users[event['state_key']]
|
144
144
|
membership = event['content']['membership'].to_sym
|
145
145
|
|
146
146
|
# Don't process invite state change if the user is already a
|
data/lib/chatrix/user.rb
CHANGED
@@ -38,6 +38,14 @@ module Chatrix
|
|
38
38
|
@memberships[room][:power] || 0
|
39
39
|
end
|
40
40
|
|
41
|
+
# Checks if this user is a member of the specified room.
|
42
|
+
# @param room [Room] The room to check.
|
43
|
+
# @return [Boolean] `true` if the user is a member in the room,
|
44
|
+
# otherwise `false`.
|
45
|
+
def member?(room)
|
46
|
+
@memberships.key?(room) && @memberships[room][:type] == :join
|
47
|
+
end
|
48
|
+
|
41
49
|
# Process a member event.
|
42
50
|
#
|
43
51
|
# @param room [Room] The room that sent the event.
|
data/lib/chatrix/users.rb
CHANGED
@@ -35,7 +35,8 @@ module Chatrix
|
|
35
35
|
# @param event [Hash] Event data.
|
36
36
|
def process_member_event(room, event)
|
37
37
|
return if Events.processed? event
|
38
|
-
|
38
|
+
id = event['state_key'] || event['sender']
|
39
|
+
get_user(id).process_member_event room, event
|
39
40
|
end
|
40
41
|
|
41
42
|
# Process power level updates.
|
data/lib/chatrix/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chatrix
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Hellberg
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -66,6 +66,7 @@ files:
|
|
66
66
|
- ".travis.yml"
|
67
67
|
- ".yardopts"
|
68
68
|
- Gemfile
|
69
|
+
- Guardfile
|
69
70
|
- LICENSE
|
70
71
|
- README.md
|
71
72
|
- Rakefile
|