slatan 0.1.0 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 762a507d89d22855482240d036c69e467bf28f41
4
- data.tar.gz: 1b914cd1ac32ea6681d160421190a40db5a230c2
3
+ metadata.gz: e7f7d769ed65311b91c6da56e8db22d40668a2ac
4
+ data.tar.gz: ea30b6db0b219d66701599b44691c66253cad6a0
5
5
  SHA512:
6
- metadata.gz: ea1474306a99a0a8fcbf8f208cfa1402e2d022be4675f7710ec6be5c6f85eeae705eeace8ea6941bb524f08769913c2ae773e5104ee93a6bad0494ad63848a2e
7
- data.tar.gz: 1ca277268fc5caf17644bfe8334bcb1b651b3689e44c6465ac162297e99f1ee004e04827bdaff8e159be8bbca430b702ff91547efead1a901a6060ea087a506f
6
+ metadata.gz: 10e0f76eb5143263d396c1aeba959a3ec2c8f99900bfdd09c322a89f8c9592f8ff96fce343b3335ac8af70f8a16e675957dcac913645cc137a82b185fd93b4d7
7
+ data.tar.gz: 8394bfdd0ab07b4fe447888a59367063e30458ae060a38194b30e7590a323544c4370314f4e15dab4546018d480fdcf5c8d6bc513bb87823bb8062f76e3e7ee2
data/.gitignore CHANGED
@@ -11,4 +11,4 @@
11
11
  .DS_Store
12
12
  /concerns/
13
13
  config.json
14
- /exe/
14
+ /bin/
data/README.md CHANGED
@@ -25,7 +25,7 @@ Or install it yourself as:
25
25
  #### 2. Generate event subscriber class.
26
26
 
27
27
  ```
28
- $ rake slatan:generate['/path/to/your/preference/test.rb']
28
+ $ slatan generate /path/to/your/preference/test.rb'
29
29
  ```
30
30
 
31
31
  #### 3. Write code to running slatan.
data/Rakefile CHANGED
@@ -1,26 +1 @@
1
1
  require "bundler/gem_tasks"
2
- require 'erb'
3
- require 'active_support/core_ext/object'
4
- require 'slatan/utils/string_ex'
5
-
6
- using Slatan::Utils::StringEx
7
- namespace :slatan do
8
- desc "Kill slatan daemon process."
9
- task :stop do
10
- path = ENV['SLATAN_PID_FILE_PATH'].presence || '/tmp/slatan.pid'
11
- sh "kill `cat #{path}`"
12
- end
13
-
14
- desc "Generate event subscriber of slack message."
15
- task :generate, [:file_path] do |task, args|
16
- file_name = File.basename(args.file_path, '.*')
17
- class_name = file_name.camelize
18
- dir_path = File.dirname(args.file_path)
19
- File.open('./lib/slatan/template/concern.rb.erb') do |file|
20
- erb = ERB.new(file.read).result(binding)
21
- File.open(File.join(dir_path, "#{file_name}.rb"), 'w') do |file|
22
- file << erb
23
- end
24
- end
25
- end
26
- end
data/exe/slatan ADDED
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'fileutils'
4
+ require 'erb'
5
+ require 'rake'
6
+ require 'active_support/core_ext/object'
7
+ require 'slatan/utils/string_ex'
8
+
9
+ using Slatan::Utils::StringEx
10
+
11
+ def generate(path)
12
+ if path.nil?
13
+ puts 'Usage: slatan generate </path/to/your/preference/subscriber/name>'
14
+ exit 0
15
+ end
16
+
17
+ file_name = File.basename(path, '.*')
18
+ class_name = file_name.camelize
19
+ dir_path = File.dirname(path)
20
+ FileUtils.mkdir_p dir_path
21
+ File.open('./lib/slatan/template/concern.rb.erb') do |file|
22
+ erb = ERB.new(file.read).result(binding)
23
+ File.open(File.join(dir_path, "#{file_name}.rb"), 'w') do |file|
24
+ file << erb
25
+ end
26
+ end
27
+ end
28
+
29
+ def kill
30
+ pid_file_path = ENV['SLATAN_PID_FILE_PATH'].presence || '/tmp/slatan.pid'
31
+ if !FileTest.exist? pid_file_path
32
+ puts "'#{pid_file_path}' is not exist."
33
+ exit 0
34
+ end
35
+ sh "kill `cat #{pid_file_path}`"
36
+ puts 'killed.'
37
+ end
38
+
39
+ if $*[0] == 'generate'
40
+ generate($*[1])
41
+ elsif $*[0] == 'kill'
42
+ kill
43
+ else
44
+ puts 'Usage: slatan <COMMAND>'
45
+ puts '=======COMMAND========'
46
+ puts 'generate </path/to/your/preference/subscriber/name>: Generate subscriber class file.'
47
+ puts 'kill: kill daemon process of slatan.'
48
+ exit 0
49
+ end
50
+
data/lib/slatan/ear.rb CHANGED
@@ -8,16 +8,15 @@ module Slatan
8
8
  class << self
9
9
  ## register subscriber
10
10
  # @param concern subscriber
11
- # @param options option
12
- # cond: <Kernel.#lambda> call hear method of concern if cond.call(msg) is true
13
- def register(concern, options={})
14
- @concerns << [concern, options[:cond]]
11
+ # @param block<option> condition for dispatching event
12
+ def register(concern, &block)
13
+ @concerns << [concern, block]
15
14
  end
16
15
 
17
16
  ## publish to subscribers
18
17
  def hear(msg)
19
- @concerns.each do |concern, cond|
20
- if cond.blank? || cond.call(msg)
18
+ @concerns.each do |concern, block|
19
+ if block.blank? || block.call(msg)
21
20
  concern.hear(msg)
22
21
  end
23
22
  end
@@ -1,3 +1,3 @@
1
1
  module Slatan
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,116 +1,116 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slatan
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - kudohamu
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-12-13 00:00:00.000000000 Z
11
+ date: 2015-12-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: eventmachine
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: faye-websocket
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: activesupport
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: '1.10'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ~>
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.10'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ~>
74
74
  - !ruby/object:Gem::Version
75
75
  version: '10.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ~>
81
81
  - !ruby/object:Gem::Version
82
82
  version: '10.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - '>='
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  description: Gem to create bot for Slack easily and flexibly.
98
98
  email:
99
99
  - kudohamu91086[a]gmail.com
100
- executables: []
100
+ executables:
101
+ - slatan
101
102
  extensions: []
102
103
  extra_rdoc_files: []
103
104
  files:
104
- - ".gitignore"
105
- - ".rspec"
106
- - ".travis.yml"
105
+ - .gitignore
106
+ - .rspec
107
+ - .travis.yml
107
108
  - CODE_OF_CONDUCT.md
108
109
  - Gemfile
109
110
  - LICENSE.txt
110
111
  - README.md
111
112
  - Rakefile
112
- - bin/console
113
- - bin/setup
113
+ - exe/slatan
114
114
  - lib/slatan.rb
115
115
  - lib/slatan/affiliation.rb
116
116
  - lib/slatan/affiliation/channels.rb
@@ -155,17 +155,17 @@ require_paths:
155
155
  - lib
156
156
  required_ruby_version: !ruby/object:Gem::Requirement
157
157
  requirements:
158
- - - ">="
158
+ - - '>='
159
159
  - !ruby/object:Gem::Version
160
160
  version: '0'
161
161
  required_rubygems_version: !ruby/object:Gem::Requirement
162
162
  requirements:
163
- - - ">="
163
+ - - '>='
164
164
  - !ruby/object:Gem::Version
165
165
  version: '0'
166
166
  requirements: []
167
167
  rubyforge_project:
168
- rubygems_version: 2.4.8
168
+ rubygems_version: 2.0.14
169
169
  signing_key:
170
170
  specification_version: 4
171
171
  summary: bot module for Slack
data/bin/console DELETED
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "bundler/setup"
4
- require "slatan"
5
-
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
14
- IRB.start
data/bin/setup DELETED
@@ -1,6 +0,0 @@
1
- #!/bin/bash
2
-
3
- set -euo pipefail
4
- IFS=$'\n\t'
5
-
6
- bundle install