komonjo 0.1.5 → 0.1.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 537ef54ea6c023d185079f12aa7429a9d582f9e8
4
- data.tar.gz: 22a919f18d5fdce9c122816fb7980dcb639cf2f9
3
+ metadata.gz: fd80c77b4ddf2ba6e0032a4206b93e05b3436ad0
4
+ data.tar.gz: 5b22fd3436ed123140bb106f54b7de4e8eb01856
5
5
  SHA512:
6
- metadata.gz: 1f2b8b2a9b18f78098e89c5aeabfdda65ca30ef5c15a626fbf5ef4821993bca40c52b131f3cef6f6e984f16eef7375bfef9c8bf7df0f9ec8dee73adff9a64662
7
- data.tar.gz: 798e8fa81e66f4ac1f5f3188e47bc59129e148d500414854ee07d749b58724464c2393728890adbb5aab47ff5366247461bb8b9c61108d4fc79c7e7447b3fa7d
6
+ metadata.gz: 398a4fc94d40e006789df1223865436ef59b4cf2c80ee34bd7ca03793326c673994eb8d1987d2ff312929c718997adcbc8e25f0523aa2af3c1b9f4c43b29401e
7
+ data.tar.gz: bdf90fa95ea05a33b28c04acfc09e17b7ea4a0dd6ef8ad5a171a95d213e09aae58c0595615349c0714684ac2064e4895bc9e150be1b31bb84780dc6c28d7116b
@@ -6,13 +6,16 @@ require 'komonjo/connections/slack_connection'
6
6
  require 'komonjo/extensions/to_json'
7
7
  require 'komonjo/gateways/channels_gateway'
8
8
  require 'komonjo/gateways/messages_gateway'
9
+ require 'komonjo/gateways/emojis_gateway'
9
10
  require 'komonjo/models/api/response_base'
10
11
  require 'komonjo/models/channel'
11
12
  require 'komonjo/models/message'
12
13
  require 'komonjo/models/profile'
13
14
  require 'komonjo/models/user'
15
+ require 'komonjo/models/emoji'
14
16
  require 'komonjo/mocks/slack_mock'
15
17
  require 'komonjo/services/slack_service'
16
18
  require 'komonjo/services/channels_service'
17
19
  require 'komonjo/services/login_service'
18
20
  require 'komonjo/services/messages_service'
21
+ require 'komonjo/services/emojis_service'
@@ -32,5 +32,11 @@ module Komonjo
32
32
  s.instance_variable_set('@connection', Komonjo::Mock::SlackMock) if @debug
33
33
  s.messages(opts)
34
34
  end
35
+
36
+ def emoji(opts = {})
37
+ s = Komonjo::Service::EmojisService.new(@api_token)
38
+ s.instance_variable_set('@connection', Komonjo::Mock::SlackMock) if @debug
39
+ s.emoji(opts)
40
+ end
35
41
  end
36
42
  end
@@ -44,6 +44,15 @@ module Komonjo
44
44
  ret['ok']
45
45
  end
46
46
 
47
+ #
48
+ # returns an object, whose key is emoji-name and whose value is url.
49
+ #
50
+ def emoji_list(opts = {})
51
+ ret = client.emoji_list
52
+ raise 'error' unless ret['ok']
53
+ ret['emoji']
54
+ end
55
+
47
56
  private
48
57
 
49
58
  def channel_id(channel_name)
@@ -0,0 +1,22 @@
1
+ require 'cgi'
2
+
3
+ module Komonjo
4
+ module Gateway
5
+ # Returns an object { name, url }
6
+ class EmojisGateway
7
+ using HashExtensions
8
+ def initialize(emoji)
9
+ @emoji = emoji
10
+ end
11
+
12
+ def emoji
13
+ list = @emoji.map { |k, v| Komonjo::Model::Emoji.create(k, v) }
14
+ list.select(&:alias?).each do |e|
15
+ target = list.find { |i| i.name == e.alias_name }
16
+ e.url = target.url
17
+ end
18
+ list
19
+ end
20
+ end
21
+ end
22
+ end
@@ -79,6 +79,14 @@ module Komonjo
79
79
  'unread_count_display': 0
80
80
  }]
81
81
  end
82
+
83
+ def emoji_list(opts = {})
84
+ {
85
+ "bowtie": "https:\/\/my.slack.com\/emoji\/bowtie\/46ec6f2bb0.png",
86
+ "squirrel": "https:\/\/my.slack.com\/emoji\/squirrel\/f35f40c0e0.png",
87
+ "shipit": "alias:squirrel",
88
+ }
89
+ end
82
90
  end
83
91
  end
84
92
  end
@@ -0,0 +1,24 @@
1
+ module Komonjo
2
+ module Model
3
+ # slack emoji
4
+ class Emoji
5
+ attr_accessor :name, :url, :alias_name
6
+ attr_writer :alias
7
+
8
+ def self.create(name, url)
9
+ new.tap do |e|
10
+ e.name = name.to_s
11
+ e.url = url.to_s
12
+ url.match(/^alias:(?<alias_name>\S+)$/) do |m|
13
+ e.alias = true
14
+ e.alias_name = m[:alias_name]
15
+ end
16
+ end
17
+ end
18
+
19
+ def alias?
20
+ @alias
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,17 @@
1
+ module Komonjo
2
+ module Service
3
+ # A service for emoji
4
+ class EmojisService < Komonjo::Service::SlackService
5
+ def initialize(api_token)
6
+ @api_token = api_token
7
+ end
8
+
9
+ def emoji(opts = {})
10
+ connection = connection(@api_token)
11
+ emoji = connection.emoji_list(opts)
12
+ gateway = Komonjo::Gateway::EmojisGateway.new(emoji)
13
+ gateway.emoji
14
+ end
15
+ end
16
+ end
17
+ end
@@ -1,3 +1,3 @@
1
1
  module Komonjo
2
- VERSION = "0.1.5".freeze
2
+ VERSION = "0.1.6".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: komonjo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - hkdnet
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-05-28 00:00:00.000000000 Z
11
+ date: 2016-09-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: slack-api
@@ -103,14 +103,17 @@ files:
103
103
  - lib/komonjo/extensions/hash_extensions.rb
104
104
  - lib/komonjo/extensions/to_json.rb
105
105
  - lib/komonjo/gateways/channels_gateway.rb
106
+ - lib/komonjo/gateways/emojis_gateway.rb
106
107
  - lib/komonjo/gateways/messages_gateway.rb
107
108
  - lib/komonjo/mocks/slack_mock.rb
108
109
  - lib/komonjo/models/api/response_base.rb
109
110
  - lib/komonjo/models/channel.rb
111
+ - lib/komonjo/models/emoji.rb
110
112
  - lib/komonjo/models/message.rb
111
113
  - lib/komonjo/models/profile.rb
112
114
  - lib/komonjo/models/user.rb
113
115
  - lib/komonjo/services/channels_service.rb
116
+ - lib/komonjo/services/emojis_service.rb
114
117
  - lib/komonjo/services/login_service.rb
115
118
  - lib/komonjo/services/messages_service.rb
116
119
  - lib/komonjo/services/slack_service.rb