[DRE-commits] [atig] 04/05: Add patch: replace git execution from gemspec
Youhei SASAKI
uwabami-guest at moszumanska.debian.org
Sun Dec 27 13:56:58 UTC 2015
This is an automated email from the git hooks/post-receive script.
uwabami-guest pushed a commit to annotated tag debian/0.5.0-1
in repository atig.
commit 85d4c83244b8bf6448ad12bb15cbe5cebbef813f
Author: Youhei SASAKI <uwabami at gfd-dennou.org>
Date: Sun Dec 27 14:23:26 2015 +0900
Add patch: replace git execution from gemspec
Signed-off-by: Youhei SASAKI <uwabami at gfd-dennou.org>
---
...01-Drop-Bundler-and-RubyGems-dependencies.patch | 6 +-
...Disable-update-checker-for-Debian-Package.patch | 14 +-
.../0003-Replace-git-execution-from-gemspec.patch | 27 +
debian/patches/import-git-head_2015-08-14.patch | 5148 --------------------
debian/patches/series | 2 +-
debian/rules | 1 +
6 files changed, 45 insertions(+), 5153 deletions(-)
diff --git a/debian/patches/0001-Drop-Bundler-and-RubyGems-dependencies.patch b/debian/patches/0001-Drop-Bundler-and-RubyGems-dependencies.patch
index 04f06fc..722cb02 100644
--- a/debian/patches/0001-Drop-Bundler-and-RubyGems-dependencies.patch
+++ b/debian/patches/0001-Drop-Bundler-and-RubyGems-dependencies.patch
@@ -8,9 +8,11 @@ Signed-off-by: Youhei SASAKI <uwabami at gfd-dennou.org>
spec/spec_helper.rb | 6 +++++-
2 files changed, 5 insertions(+), 2 deletions(-)
+diff --git a/atig.gemspec b/atig.gemspec
+index ec4ba82..0c14eba 100644
--- a/atig.gemspec
+++ b/atig.gemspec
-@@ -23,7 +23,6 @@
+@@ -23,7 +23,6 @@ Gem::Specification.new do |spec|
spec.add_dependency 'oauth', ['>= 0']
spec.add_dependency 'twitter-text', ['~> 1.7.0']
@@ -18,6 +20,8 @@ Signed-off-by: Youhei SASAKI <uwabami at gfd-dennou.org>
spec.add_development_dependency 'rake'
spec.add_development_dependency 'coveralls'
end
+diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
+index 39a4f10..b7233c5 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -1,5 +1,9 @@
diff --git a/debian/patches/0002-Disable-update-checker-for-Debian-Package.patch b/debian/patches/0002-Disable-update-checker-for-Debian-Package.patch
index 27581a6..07177e1 100644
--- a/debian/patches/0002-Disable-update-checker-for-Debian-Package.patch
+++ b/debian/patches/0002-Disable-update-checker-for-Debian-Package.patch
@@ -6,11 +6,13 @@ Signed-off-by: Youhei SASAKI <uwabami at gfd-dennou.org>
---
lib/atig/channel/timeline.rb | 28 +++++++++++-----------
lib/atig/update_checker.rb | 56 --------------------------------------------
- spec/update_checker_spec.rb | 55 -------------------------------------------
- 3 files changed, 14 insertions(+), 125 deletions(-)
+ spec/update_checker_spec.rb | 54 ------------------------------------------
+ 3 files changed, 14 insertions(+), 124 deletions(-)
delete mode 100644 lib/atig/update_checker.rb
delete mode 100644 spec/update_checker_spec.rb
+diff --git a/lib/atig/channel/timeline.rb b/lib/atig/channel/timeline.rb
+index 0ef28bc..3f4d982 100644
--- a/lib/atig/channel/timeline.rb
+++ b/lib/atig/channel/timeline.rb
@@ -2,7 +2,7 @@
@@ -22,7 +24,7 @@ Signed-off-by: Youhei SASAKI <uwabami at gfd-dennou.org>
module Atig
module Channel
-@@ -23,19 +23,19 @@
+@@ -23,19 +23,19 @@ module Atig
end
end
@@ -55,6 +57,9 @@ Signed-off-by: Youhei SASAKI <uwabami at gfd-dennou.org>
db.statuses.listen do|entry|
if db.followings.include?(entry.user) or
+diff --git a/lib/atig/update_checker.rb b/lib/atig/update_checker.rb
+deleted file mode 100644
+index 1125c3b..0000000
--- a/lib/atig/update_checker.rb
+++ /dev/null
@@ -1,56 +0,0 @@
@@ -114,6 +119,9 @@ Signed-off-by: Youhei SASAKI <uwabami at gfd-dennou.org>
- module_function :latest, :commits, :server_version, :local_repos?, :git?, :git_repos?
- end
-end
+diff --git a/spec/update_checker_spec.rb b/spec/update_checker_spec.rb
+deleted file mode 100644
+index bfe2e0c..0000000
--- a/spec/update_checker_spec.rb
+++ /dev/null
@@ -1,54 +0,0 @@
diff --git a/debian/patches/0003-Replace-git-execution-from-gemspec.patch b/debian/patches/0003-Replace-git-execution-from-gemspec.patch
new file mode 100644
index 0000000..0dcd78a
--- /dev/null
+++ b/debian/patches/0003-Replace-git-execution-from-gemspec.patch
@@ -0,0 +1,27 @@
+From: Youhei SASAKI <uwabami at gfd-dennou.org>
+Date: Sun, 27 Dec 2015 14:27:18 +0900
+Subject: Replace git execution from gemspec
+
+Signed-off-by: Youhei SASAKI <uwabami at gfd-dennou.org>
+---
+ atig.gemspec | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/atig.gemspec b/atig.gemspec
+index 0c14eba..1f42e75 100644
+--- a/atig.gemspec
++++ b/atig.gemspec
+@@ -11,11 +11,11 @@ Gem::Specification.new do |spec|
+ spec.description = %q{Atig.rb is Twitter Irc Gateway.}
+ spec.homepage = "https://github.com/atig/atig"
+
+- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
++ spec.files = [".gitignore",".rspec",".travis.yml","Gemfile","Gemfile.lock","README.mkdn","Rakefile","atig.gemspec","bin/console","bin/setup","exe/atig","lib/atig.rb","lib/atig/agent.rb","lib/atig/agent/agent.rb","lib/atig/agent/clenup.rb","lib/atig/agent/dm.rb","lib/atig/agent/following.rb","lib/atig/agent/full_list.rb","lib/atig/agent/list.rb","lib/atig/agent/list_status.rb","lib/atig/agent/mention.rb","lib/atig/agent/noretweets.rb","lib/atig/agent/stream_follow.rb","lib/atig [...]
+ spec.bindir = "exe"
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
+ spec.require_paths = ["lib"]
+- spec.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
++ spec.test_files = ["spec/command/autofix_spec.rb","spec/command/destroy_spec.rb","spec/command/dm_spec.rb","spec/command/favorite_spec.rb","spec/command/limit_spec.rb","spec/command/location_spec.rb","spec/command/name_spec.rb","spec/command/option_spec.rb","spec/command/refresh_spec.rb","spec/command/reply_spec.rb","spec/command/retweet_spec.rb","spec/command/spam_spec.rb","spec/command/status_spec.rb","spec/command/thread_spec.rb","spec/command/time_spec.rb","spec/command/uptime_ [...]
+ spec.required_ruby_version = Gem::Requirement.new(">= 1.9.3")
+
+ spec.add_dependency 'sqlite3', ['>= 1.3.2']
diff --git a/debian/patches/import-git-head_2015-08-14.patch b/debian/patches/import-git-head_2015-08-14.patch
deleted file mode 100644
index 647f670..0000000
--- a/debian/patches/import-git-head_2015-08-14.patch
+++ /dev/null
@@ -1,5148 +0,0 @@
-From: Debian Ruby Extras Maintainers
- <pkg-ruby-extras-maintainers at lists.alioth.debian.org>
-Date: Wed, 21 Oct 2015 22:56:07 +0900
-Subject: Import Git HEAD(2015-08-14)
-
----
- .travis.yml | 4 +-
- Gemfile | 2 +
- Gemfile.lock | 80 +++++++------
- README.mkdn | 2 +
- Rakefile | 6 -
- atig.gemspec | 4 +-
- docs/changelog.rst | 233 --------------------------------------
- docs/commandline_options.rst | 21 ----
- docs/commands.rst | 84 --------------
- docs/conf.py | 194 -------------------------------
- docs/config.rst | 159 --------------------------
- docs/feature.rst | 41 -------
- docs/hacking_guide.rst | 43 -------
- docs/index.rst | 102 -----------------
- docs/irc.rst | 31 -----
- docs/options.rst | 76 -------------
- docs/quickstart.rst | 96 ----------------
- docs/resize.sh | 7 --
- docs/tiarra.rst | 2 -
- docs/tig.rst | 21 ----
- lib/atig/agent/agent.rb | 8 +-
- lib/atig/agent/dm.rb | 8 +-
- lib/atig/agent/following.rb | 6 +-
- lib/atig/agent/list.rb | 4 +-
- lib/atig/agent/list_status.rb | 12 +-
- lib/atig/agent/stream_follow.rb | 4 +-
- lib/atig/agent/user_stream.rb | 6 +-
- lib/atig/basic_twitter.rb | 4 +-
- lib/atig/bitly.rb | 2 +-
- lib/atig/channel/channel.rb | 2 +-
- lib/atig/channel/list.rb | 6 +-
- lib/atig/channel/retweet.rb | 2 +-
- lib/atig/channel/timeline.rb | 2 +-
- lib/atig/command/autofix.rb | 8 +-
- lib/atig/command/destroy.rb | 2 +-
- lib/atig/command/dm.rb | 4 +-
- lib/atig/command/favorite.rb | 2 +-
- lib/atig/command/info.rb | 4 +-
- lib/atig/command/reply.rb | 4 +-
- lib/atig/command/retweet.rb | 4 +-
- lib/atig/command/search.rb | 4 +-
- lib/atig/command/status.rb | 6 +-
- lib/atig/command/user.rb | 6 +-
- lib/atig/command/version.rb | 6 +-
- lib/atig/db/followings.rb | 11 +-
- lib/atig/db/statuses.rb | 22 ++--
- lib/atig/db/transaction.rb | 2 +-
- lib/atig/gateway/channel.rb | 3 +-
- lib/atig/gateway/session.rb | 26 ++---
- lib/atig/http.rb | 8 +-
- lib/atig/ifilter/expand_url.rb | 2 +-
- lib/atig/ifilter/retweet.rb | 2 +-
- lib/atig/ifilter/retweet_time.rb | 2 +-
- lib/atig/ifilter/sanitize.rb | 2 +-
- lib/atig/ifilter/strip.rb | 2 +-
- lib/atig/ifilter/xid.rb | 2 +-
- lib/atig/oauth.rb | 6 +-
- lib/atig/ofilter/escape_url.rb | 2 +-
- lib/atig/ofilter/footer.rb | 2 +-
- lib/atig/ofilter/geo.rb | 2 +-
- lib/atig/ofilter/short_url.rb | 2 +-
- lib/atig/option.rb | 2 +-
- lib/atig/optparse.rb | 33 ++++--
- lib/atig/search.rb | 6 +-
- lib/atig/stream.rb | 2 +-
- lib/atig/twitter.rb | 9 +-
- lib/atig/update_checker.rb | 4 +-
- lib/atig/url_escape.rb | 2 +-
- lib/memory_profiler.rb | 2 +-
- requirements.txt | 5 -
- spec/command/autofix_spec.rb | 14 +--
- spec/command/destroy_spec.rb | 24 ++--
- spec/command/dm_spec.rb | 10 +-
- spec/command/favorite_spec.rb | 22 ++--
- spec/command/limit_spec.rb | 12 +-
- spec/command/location_spec.rb | 8 +-
- spec/command/name_spec.rb | 4 +-
- spec/command/option_spec.rb | 56 ++++-----
- spec/command/refresh_spec.rb | 6 +-
- spec/command/reply_spec.rb | 44 +++----
- spec/command/retweet_spec.rb | 34 +++---
- spec/command/spam_spec.rb | 8 +-
- spec/command/status_spec.rb | 38 +++----
- spec/command/thread_spec.rb | 40 +++----
- spec/command/time_spec.rb | 38 +++----
- spec/command/uptime_spec.rb | 34 +++---
- spec/command/user_info_spec.rb | 28 +++--
- spec/command/user_spec.rb | 26 ++---
- spec/command/version_spec.rb | 53 ++++-----
- spec/command/whois_spec.rb | 50 ++++----
- spec/command_helper.rb | 4 +-
- spec/db/followings_spec.rb | 44 +++----
- spec/db/listenable_spec.rb | 4 +-
- spec/db/lists_spec.rb | 32 +++---
- spec/db/roman_spec.rb | 6 +-
- spec/db/sized_uniq_array_spec.rb | 26 ++---
- spec/db/statuses_spec.rb | 138 +++++++++++-----------
- spec/ifilter/expand_url_spec.rb | 37 +++---
- spec/ifilter/retweet_spec.rb | 8 +-
- spec/ifilter/retweet_time_spec.rb | 8 +-
- spec/ifilter/sanitize_spec.rb | 10 +-
- spec/ifilter/sid_spec.rb | 12 +-
- spec/ifilter/strip_spec.rb | 6 +-
- spec/ifilter/tid_spec.rb | 12 +-
- spec/levenshtein_spec.rb | 4 +-
- spec/ofilter/escape_url_spec.rb | 26 ++---
- spec/ofilter/footer_spec.rb | 20 ++--
- spec/ofilter/geo_spec.rb | 24 ++--
- spec/ofilter/short_url_spec.rb | 56 ++++-----
- spec/option_spec.rb | 46 ++++----
- spec/sized_hash_spec.rb | 10 +-
- spec/spec_helper.rb | 14 ++-
- spec/update_checker_spec.rb | 28 ++---
- 113 files changed, 758 insertions(+), 1853 deletions(-)
- delete mode 100644 docs/changelog.rst
- delete mode 100644 docs/commandline_options.rst
- delete mode 100644 docs/commands.rst
- delete mode 100644 docs/conf.py
- delete mode 100644 docs/config.rst
- delete mode 100644 docs/feature.rst
- delete mode 100644 docs/hacking_guide.rst
- delete mode 100644 docs/index.rst
- delete mode 100644 docs/irc.rst
- delete mode 100644 docs/options.rst
- delete mode 100644 docs/quickstart.rst
- delete mode 100755 docs/resize.sh
- delete mode 100644 docs/tiarra.rst
- delete mode 100644 docs/tig.rst
- delete mode 100644 requirements.txt
-
-diff --git a/.travis.yml b/.travis.yml
-index 832662b..17e47d5 100644
---- a/.travis.yml
-+++ b/.travis.yml
-@@ -1,7 +1,7 @@
- language: ruby
- rvm:
-- - 1.9.3
- - 2.0.0
-- - 2.1.0
-+ - 2.1
-+ - 2.2
-
- script: bundle exec rake spec
-diff --git a/Gemfile b/Gemfile
-index fa75df1..edf06a3 100644
---- a/Gemfile
-+++ b/Gemfile
-@@ -1,3 +1,5 @@
- source 'https://rubygems.org'
-
- gemspec
-+
-+gem 'rspec', '~> 3.0.0.beta2'
-diff --git a/Gemfile.lock b/Gemfile.lock
-index 258c15f..694aa08 100644
---- a/Gemfile.lock
-+++ b/Gemfile.lock
-@@ -1,7 +1,7 @@
- PATH
- remote: .
- specs:
-- atig (0.4.4)
-+ atig (0.4.5)
- net-irc
- oauth
- sqlite3 (>= 1.3.2)
-@@ -10,43 +10,55 @@ PATH
- GEM
- remote: https://rubygems.org/
- specs:
-- coveralls (0.7.0)
-- multi_json (~> 1.3)
-- rest-client
-- simplecov (>= 0.7)
-- term-ansicolor
-- thor
-+ coveralls (0.8.2)
-+ json (~> 1.8)
-+ rest-client (>= 1.6.8, < 2)
-+ simplecov (~> 0.10.0)
-+ term-ansicolor (~> 1.3)
-+ thor (~> 0.19.1)
- diff-lcs (1.2.5)
-- docile (1.1.2)
-- mime-types (2.0)
-- multi_json (1.8.4)
-+ docile (1.1.5)
-+ domain_name (0.5.24)
-+ unf (>= 0.0.5, < 1.0.0)
-+ http-cookie (1.0.2)
-+ domain_name (~> 0.5)
-+ json (1.8.3)
-+ mime-types (2.6.1)
- net-irc (0.0.9)
-+ netrc (0.10.3)
- oauth (0.4.7)
-- rest-client (1.6.7)
-- mime-types (>= 1.16)
-- rspec (2.14.1)
-- rspec-core (~> 2.14.0)
-- rspec-expectations (~> 2.14.0)
-- rspec-mocks (~> 2.14.0)
-- rspec-core (2.14.7)
-- rspec-expectations (2.14.4)
-- diff-lcs (>= 1.1.3, < 2.0)
-- rspec-mocks (2.14.4)
-- simplecov (0.8.2)
-+ rake (10.4.2)
-+ rest-client (1.8.0)
-+ http-cookie (>= 1.0.2, < 2.0)
-+ mime-types (>= 1.16, < 3.0)
-+ netrc (~> 0.7)
-+ rspec (3.0.0)
-+ rspec-core (~> 3.0.0)
-+ rspec-expectations (~> 3.0.0)
-+ rspec-mocks (~> 3.0.0)
-+ rspec-core (3.0.4)
-+ rspec-support (~> 3.0.0)
-+ rspec-expectations (3.0.4)
-+ diff-lcs (>= 1.2.0, < 2.0)
-+ rspec-support (~> 3.0.0)
-+ rspec-mocks (3.0.4)
-+ rspec-support (~> 3.0.0)
-+ rspec-support (3.0.4)
-+ simplecov (0.10.0)
- docile (~> 1.1.0)
-- multi_json
-- simplecov-html (~> 0.8.0)
-- simplecov-html (0.8.0)
-- sqlite3 (1.3.8)
-- term-ansicolor (1.2.2)
-- tins (~> 0.8)
-- thor (0.18.1)
-- tins (0.13.1)
-+ json (~> 1.8)
-+ simplecov-html (~> 0.10.0)
-+ simplecov-html (0.10.0)
-+ sqlite3 (1.3.10)
-+ term-ansicolor (1.3.2)
-+ tins (~> 1.0)
-+ thor (0.19.1)
-+ tins (1.5.4)
- twitter-text (1.7.0)
- unf (~> 0.1.0)
-- unf (0.1.3)
-+ unf (0.1.4)
- unf_ext
-- unf_ext (0.0.6)
-+ unf_ext (0.0.7.1)
-
- PLATFORMS
- ruby
-@@ -55,4 +67,8 @@ DEPENDENCIES
- atig!
- bundler
- coveralls
-- rspec
-+ rake
-+ rspec (~> 3.0.0.beta2)
-+
-+BUNDLED WITH
-+ 1.10.6
-diff --git a/README.mkdn b/README.mkdn
-index e83839c..0408de1 100644
---- a/README.mkdn
-+++ b/README.mkdn
-@@ -1,6 +1,8 @@
- Atig.rb - Another Twitter Irc Gateway
- ===========================================
-
-+[](https://rubygems.org/gems/atig) [](https://codeclimate.com/github/atig/atig) [](https://travis-ci.org/atig/atig)
-+
- OVERVIEW
- --------
- Atig.rb is Twitter Irc Gateway.
-diff --git a/Rakefile b/Rakefile
-index 97c068c..28a2ec8 100644
---- a/Rakefile
-+++ b/Rakefile
-@@ -17,10 +17,4 @@ RSpec::Core::RakeTask.new do |t|
- t.pattern = 'spec/**/*_spec.rb'
- end
-
--desc "building document with sphinx"
--task :docs do
-- build_dir = "docs/_build"
-- `LC_CTYPE=C sphinx-build -b html -d #{build_dir}/doctrees -D latex_paper_size=a4 docs #{build_dir}/html`
--end
--
- task :default => [:spec, :clean]
-diff --git a/atig.gemspec b/atig.gemspec
-index 72e2cb3..f3fd020 100644
---- a/atig.gemspec
-+++ b/atig.gemspec
-@@ -6,7 +6,7 @@ Gem::Specification.new do |gem|
- gem.email = ["mzp at ocaml.jp", "shibata.hiroshi at gmail.com"]
- gem.description = %q{Atig.rb is Twitter Irc Gateway.}
- gem.summary = %q{Atig.rb is forked from cho45's tig.rb. We improve some features of tig.rb.}
-- gem.homepage = "https://github.com/mzp/atig"
-+ gem.homepage = "https://github.com/atig/atig"
-
- gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
- gem.files = `git ls-files`.split("\n")
-@@ -23,6 +23,6 @@ Gem::Specification.new do |gem|
- gem.add_dependency 'twitter-text', ['~> 1.7.0']
-
- gem.add_development_dependency 'bundler'
-- gem.add_development_dependency 'rspec'
-+ gem.add_development_dependency 'rake'
- gem.add_development_dependency 'coveralls'
- end
-diff --git a/docs/changelog.rst b/docs/changelog.rst
-deleted file mode 100644
-index ecccbc8..0000000
---- a/docs/changelog.rst
-+++ /dev/null
-@@ -1,233 +0,0 @@
--更新履歴
--==============
--
--v0.4.4(2013-12-29)
--------------------------------
--http://github.com/mzp/atig/tree/v0.4.4
--
--機能変更
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - サポート対象を Ruby 1.9.3 以降にしました
-- - follower 取得時の1回の取得数を100件に拡張しました
--
-- v0.4.3(2013-10-18)
--------------------------------
--http://github.com/mzp/atig/tree/v0.4.3
--
--不具合修正
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - 短縮 URL の展開が動かない問題を修正しました
--
--v0.4.2(2013-10-13)
--------------------------------
--http://github.com/mzp/atig/tree/v0.4.2
--
--機能変更
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - タイムラインの取得間隔を 1 分にしました
--
--v0.4.1(2013-08-02)
--------------------------------
--http://github.com/mzp/atig/tree/v0.4.1
--
--不具合修正
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - '&' が置換されない問題を修正しました
-- - reply が取得できない不具合を修正しました
-- - list の追加・削除 API が 1.0 のままだった問題を修正しました
--
--v0.4.0(2013-06-12)
--------------------------------
--http://github.com/mzp/atig/tree/v0.4.0
--
--機能変更
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - Twitter API 1.1に対応しました
--
--v0.3.12(2013-04-02)
--------------------------------
--http://github.com/mzp/atig/tree/v0.3.12
--
--機能追加
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - v0.3.10-11 で --tmpdir オプションが動作していない不具合を直しました
--
--v0.3.11(2013-04-02)
--------------------------------
--http://github.com/mzp/atig/tree/v0.3.11
--
--機能追加
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - v0.3.10 で起動できない不具合を直しました
--
-- v0.3.10(2013-04-02)
--------------------------------
--http://github.com/mzp/atig/tree/v0.3.10
--
--機能追加
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - 一時ファイルの作成先を指定することができる --tmpdir オプションを追加しました
--
--v0.3.9(2013-03-01)
--------------------------------
--http://github.com/mzp/atig/tree/v0.3.9
--
--バグ修正
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - Ruby 2.0 以降で動かした場合に Twitter のレスポンスを取得出来ない不具合を修正しました
--
--v0.3.8(2013-02-03)
--------------------------------
--http://github.com/mzp/atig/tree/v0.3.8
--
--機能変更
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - atig を rubygems からインストールしている場合はバージョンアップのチェックを行わないようにしました
--
--v0.3.7(2013-01-27)
--------------------------------
--http://github.com/mzp/atig/tree/v0.3.7
--
--機能追加
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - Twitter の Userstream に対応しました
--
--バグ修正
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - Ruby 2.0.0(r38955) で動かない問題を直しました
-- - github の API の変更によりバージョンチェックが動かない問題を直しました
--
-- v0.3.6(2012-05-14)
--------------------------------
--http://github.com/mzp/atig/tree/v0.3.6
--
--機能変更
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - Ruby 2.0.0 以降で iconv ライブラリが削除されることに伴う UTF7 サポートの終了
--
--v0.3.5(2012-05-07)
--------------------------------
--http://github.com/mzp/atig/tree/v0.3.5
--
--バグ修正
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - ユーザーが作成したリストが表示されない問題を修正しました
--
-- v0.3.4(2012-01-30)
--------------------------------
--http://github.com/mzp/atig/tree/v0.3.4
--
--バグ修正
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - Ruby 1.8 で動かない問題を修正しました
--
-- v0.3.3(2012-01-24)
--------------------------------
--http://github.com/mzp/atig/tree/v0.3.3
--
--機能追加
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - gem コマンドでインストールできるようにしました
--
--機能修正
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - Ruby 1.9 に対応しました
-- - SQLite3-1.3.5 に対応しました
-- - bundler に対応しました
-- - HTTP アクセス時の media-range から Quality 指定を削除しました
-- - bit.ly の API 変更に追従しました
--
--バグ修正
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - 非公式RTが実行できない不具合を修正
--
-- v0.3.2(2010-10-10)
--------------------------------
--http://github.com/mzp/atig/tree/v0.3.2
--
--機能追加
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - :doc:`config`: `Atig::IFilter::RetweetTime` を追加しました
--
--機能修正
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - DBのデータ削除の周期を減らしました
-- - DMチャンネルでのDMの送信に対応しました
-- - :doc:`commands`: `limit` にリセットされる日付を表示するようにした (thx. `hirose31`_ )
-- - :doc:`config`: 自動展開するURLにhtn.to, goo.glを追加
--
--.. _hirose31: http://twitter.com/hirose31
--
--v0.3.1(2010-07-26)
--------------------------------
--http://github.com/mzp/atig/tree/v0.3.1
--
--機能追加
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - :doc:`commands`: `refresh` を追加しました
-- - :doc:`commands`: `spam` を追加しました
-- - :doc:`agent` : 他人のリストをフォローできるようになりました
--
--機能修正
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - キャッシュを/tmp/atigに置くように変更しました。
-- - 定期的にキャッシュ中の古い内容を削除するように変更しました。
--
--バグ修正
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - アンフォローしたユーザがキャッシュ中に残るバグを修正
--
--
--v0.3.0(2010-06-12)
--------------------------------
--http://github.com/mzp/atig/tree/v0.3.0
--
--機能追加
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - :doc:`commands`: `search` を追加しました。(thx. `xeres`_ )
--
--.. _xeres: http://blog.xeres.jp/2010/06/04/atig_rb-tweet-search/
--
--機能修正
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - キャッシュとして用いているSQLiteのDBにインデックスを貼るようにしました。(thx. `L_star`_ )
-- - 定期的にGCを起動し、メモリ消費量を抑えるようにしました。
-- - 誤ったBit.lyのAPIキーを指定した際のエラーメッセージを分かりやすくしました。( `Issues 1`_ )
--
--.. _L_Star: http://d.hatena.ne.jp/mzp/20100407#c
--.. _Issues 1: http://github.com/mzp/atig/issues/closed#issue/1
--
--バグ修正
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
--v0.2.1(2010-04-17)
--------------------------------
--http://github.com/mzp/atig/tree/v0.2.1
--
--機能追加
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - :doc:`commands`: `autofix`, `location` を追加しました。
-- - :doc:`irc`: `/topic` が `/me autofix` のエイリアスになりました。
-- - 最新の発言を削除した場合、トピック(topic)をひとつ前に戻すようにした
--
--v0.2.0(2010-04-11)
--------------------------------
--http://github.com/mzp/atig/tree/v0.2.0
--
--機能追加
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - :doc:`options`: `sid` を追加した。
-- - :doc:`config`: `Atig::IFilter::Sid` を追加した。
-- - :doc:`options`: `old_style_reply` を追加した。
-- - :doc:`commands`: `reply`, `retweet`, `destory`, `fav`, `unfav`, `thread` でスクリーンネームやsidを利用できるようにした。
--
--バグ修正
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- - followingの取得時にSSL Verified Errorが発生する不具合を修正
--
--v0.1.0(2010-04-11)
--------------------------------
--
--http://github.com/mzp/atig/tree/v0.1.0
--
--- 最初のリリース
-diff --git a/docs/commandline_options.rst b/docs/commandline_options.rst
-deleted file mode 100644
-index 9a84a8c..0000000
---- a/docs/commandline_options.rst
-+++ /dev/null
-@@ -1,21 +0,0 @@
--コマンドラインオプション
--==============================
--
--書式
--------------------------------
--::
--
-- bin/atig [opts]
--
--オプション
--------------------------------
--`-p`, `--port` ``PORT``
-- 起動するポート番号を指定します。デフォルトは16668です。
--`-h`, `--host` ``HOST``
-- 起動するホスト名、またはIPアドレスを指定します。デフォルトはlocalhostです。
--`-l`, `--log` ``LOG``
-- ログを記録するファイル名を指定します。
--`-d`, `--debug`
-- デバッグモードを有効にします。
--`-c`, `--conf` ``filename``
-- ロードする設定ファイルを指定します。詳しくは doc:`conf` を参照してください。
-diff --git a/docs/commands.rst b/docs/commands.rst
-deleted file mode 100644
-index cf72a72..0000000
---- a/docs/commands.rst
-+++ /dev/null
-@@ -1,84 +0,0 @@
--CTCP ACTION
--==================================
--
--概要
--------------------------------
--
--CTCP ACTIONによって、特定の発言への返信などが行なえます。
--
--CTCP ACTIONの送り方はクライアントによって異なりますが、LimeChatやirssi
--では ``/me`` です。 例えば、replyコマンド送信する場合は ``/me reply a`` のようになります。
--
--発言関係
--------------------------------
--発言の指定方法について
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
--以下で ``tweet`` と書かれている部分では、次の書式が利用できます。
--
--- `a`: 一致するtidを持つ発言を指します。
--- `nick:a`: 一致するsidを持つ発言を指します。
--- `nick`: @nickの最新の発言を指します。
--- `@nick`: @nickの最新の発言を指します。
--
--コマンド
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--reply ``tweet`` ``comment`` (別名: mention, re, rp)
-- ``tweet`` に対して返信します。
--retweet ``tweet`` [``comment``] (別名: rt, ort)
-- ``tweet`` をリツイートします。
-- コメントが省略された場合は、公式リツイートになります。
--destroy ``tweet`` (別名: remove, rm)
-- ``tweet`` を削除する。 ``tweet`` の発言が自分のものでない場合はエラーになります。
--fav ``tweet``
-- ``tweet`` をお気に入りに追加します。
--unfav ``tweet``
-- ``tweet`` をお気に入りから削除します。
--thread ``tweet`` [``count``]
-- ``tweet`` のin_reply_toを辿って、最大 ``count`` 件の会話を表示します。
-- ``count`` が省略された場合は10件になります。 ``count`` は20件以上を指定しても無視されます。
--autofix ``comment`` (別名: topic)
-- 最新の発言が ``comment`` と類似している場合はその発言を削除し、 ``comment`` を発言として投稿します。
--autofix! ``tweet`` (別名: topic!)
-- 最新の発言を削除し、 ``comment`` を発言として投稿します。
--search [ ``option`` ] ``text`` (別名: s)
-- ``text`` を含む発言を検索します。
-- オプションは ``:lang=<国コード>`` のみサポートしています。``/me s :lang=ja hoge`` だと日本人のツイートのみを検索します。
--
--
--ユーザ関係
--------------------------------
--userinfo ``screen_name`` (別名: bio)
-- ``screen_name`` のユーザのプロフィールを表示します。
--version ``screen_name``
-- ``screen_name`` のクライアントの情報を表示します。最新の発言に用いたクライアント名を表示します。
--time ``screen_name``
-- ``screen_name`` のタイムゾーン情報を表示します。
--user ``screen_name`` [``count``] (別名: u)
-- ``screen_name`` のユーザの最新の発言 ``count`` 件を表示します。
-- ``count`` が省略された場合は20件になります。 ``count`` は
-- 200件以上を指定しても無視されます。
--spam ``screen_name``
-- ``screen_name`` のユーザをスパムアカウントとして通報します。
--
--プロフィール関連
--------------------------------
--location ``place`` (別名: in, location)
-- 自分の現在地を ``place`` に更新します。
--name ``name``
-- 自分の名前を ``name`` に更新します。
--
--システム関係
--------------------------------
--uptime
-- atig.rbの連続起動時間を表示します。
--limit (別名: limits, rls)
-- 残りのAPIへのアクセス可能回数を表示します。
--opt (別名: opts, option, options)
-- 設定された :doc:`options` 一覧を表示します。
--opt ``name`` (別名: opts, option, options)
-- 名前 ``name`` の :doc:`options` が持つ値を表示します。
--opt ``name`` ``value`` (別名: opts, option, options)
-- 名前 ``name`` の :doc:`options` が持つ値を ``value`` に更新します。
--refresh
-- フォローしているユーザ一覧を再読み込みさせます。
-diff --git a/docs/conf.py b/docs/conf.py
-deleted file mode 100644
-index 9f06013..0000000
---- a/docs/conf.py
-+++ /dev/null
-@@ -1,194 +0,0 @@
--# -*- coding: utf-8 -*-
--#
--# atig documentation build configuration file, created by
--# sphinx-quickstart on Mon Mar 15 15:36:01 2010.
--#
--# This file is execfile()d with the current directory set to its containing dir.
--#
--# Note that not all possible configuration values are present in this
--# autogenerated file.
--#
--# All configuration values have a default; values that are commented out
--# serve to show the default.
--
--import sys, os
--
--# If extensions (or modules to document with autodoc) are in another directory,
--# add these directories to sys.path here. If the directory is relative to the
--# documentation root, use os.path.abspath to make it absolute, like shown here.
--#sys.path.append(os.path.abspath('.'))
--
--# -- General configuration -----------------------------------------------------
--
--# Add any Sphinx extension module names here, as strings. They can be extensions
--# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
--extensions = ['sphinx.ext.ifconfig']
--
--# Add any paths that contain templates here, relative to this directory.
--templates_path = ['_templates']
--
--# The suffix of source filenames.
--source_suffix = '.rst'
--
--# The encoding of source files.
--#source_encoding = 'utf-8'
--
--# The master toctree document.
--master_doc = 'index'
--
--# General information about the project.
--project = u'atig.rb'
--copyright = u'2010-2013, mzp'
--
--# The version info for the project you're documenting, acts as replacement for
--# |version| and |release|, also used in various other places throughout the
--# built documents.
--#
--# The short X.Y version.
--version = '0.4'
--# The full version, including alpha/beta/rc tags.
--release = '0.4.3'
--
--# The language for content autogenerated by Sphinx. Refer to documentation
--# for a list of supported languages.
--#language = None
--
--# There are two options for replacing |today|: either, you set today to some
--# non-false value, then it is used:
--#today = ''
--# Else, today_fmt is used as the format for a strftime call.
--#today_fmt = '%B %d, %Y'
--
--# List of documents that shouldn't be included in the build.
--#unused_docs = []
--
--# List of directories, relative to source directory, that shouldn't be searched
--# for source files.
--exclude_trees = ['_build']
--
--# The reST default role (used for this markup: `text`) to use for all documents.
--#default_role = None
--
--# If true, '()' will be appended to :func: etc. cross-reference text.
--#add_function_parentheses = True
--
--# If true, the current module name will be prepended to all description
--# unit titles (such as .. function::).
--#add_module_names = True
--
--# If true, sectionauthor and moduleauthor directives will be shown in the
--# output. They are ignored by default.
--#show_authors = False
--
--# The name of the Pygments (syntax highlighting) style to use.
--pygments_style = 'sphinx'
--
--# A list of ignored prefixes for module index sorting.
--#modindex_common_prefix = []
--
--
--# -- Options for HTML output ---------------------------------------------------
--
--# The theme to use for HTML and HTML Help pages. Major themes that come with
--# Sphinx are currently 'default' and 'sphinxdoc'.
--html_theme = 'sphinxdoc'
--
--# Theme options are theme-specific and customize the look and feel of a theme
--# further. For a list of options available for each theme, see the
--# documentation.
--#html_theme_options = {}
--
--# Add any paths that contain custom themes here, relative to this directory.
--#html_theme_path = []
--
--# The name for this set of Sphinx documents. If None, it defaults to
--# "<project> v<release> documentation".
--#html_title = None
--
--# A shorter title for the navigation bar. Default is the same as html_title.
--#html_short_title = None
--
--# The name of an image file (relative to this directory) to place at the top
--# of the sidebar.
--#html_logo = None
--
--# The name of an image file (within the static path) to use as favicon of the
--# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
--# pixels large.
--#html_favicon = None
--
--# Add any paths that contain custom static files (such as style sheets) here,
--# relative to this directory. They are copied after the builtin static files,
--# so a file named "default.css" will overwrite the builtin "default.css".
--html_static_path = ['_static']
--
--# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
--# using the given strftime format.
--#html_last_updated_fmt = '%b %d, %Y'
--
--# If true, SmartyPants will be used to convert quotes and dashes to
--# typographically correct entities.
--#html_use_smartypants = True
--
--# Custom sidebar templates, maps document names to template names.
--#html_sidebars = {}
--
--# Additional templates that should be rendered to pages, maps page names to
--# template names.
--#html_additional_pages = {}
--
--# If false, no module index is generated.
--#html_use_modindex = True
--
--# If false, no index is generated.
--#html_use_index = True
--
--# If true, the index is split into individual pages for each letter.
--#html_split_index = False
--
--# If true, links to the reST sources are added to the pages.
--#html_show_sourcelink = True
--
--# If true, an OpenSearch description file will be output, and all pages will
--# contain a <link> tag referring to it. The value of this option must be the
--# base URL from which the finished HTML is served.
--#html_use_opensearch = ''
--
--# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
--#html_file_suffix = ''
--
--# Output file base name for HTML help builder.
--htmlhelp_basename = 'atigdoc'
--
--
--# -- Options for LaTeX output --------------------------------------------------
--
--# The paper size ('letter' or 'a4').
--#latex_paper_size = 'letter'
--
--# The font size ('10pt', '11pt' or '12pt').
--#latex_font_size = '10pt'
--
--# Grouping the document tree into LaTeX files. List of tuples
--# (source start file, target name, title, author, documentclass [howto/manual]).
--latex_documents = [
-- ('index', 'atig.tex', u'atig.rb Documentation',
-- u'mzp', 'manual'),
--]
--
--# The name of an image file (relative to this directory) to place at the top of
--# the title page.
--#latex_logo = None
--
--# For "manual" documents, if this is true, then toplevel headings are parts,
--# not chapters.
--#latex_use_parts = False
--
--# Additional stuff for the LaTeX preamble.
--#latex_preamble = ''
--
--# Documents to append as an appendix to all manuals.
--#latex_appendices = []
--
--# If false, no module index is generated.
--#latex_use_modindex = True
-diff --git a/docs/config.rst b/docs/config.rst
-deleted file mode 100644
-index dec92e5..0000000
---- a/docs/config.rst
-+++ /dev/null
-@@ -1,159 +0,0 @@
--設定
--==============================
--
--概要
--------------------------------
-- - atig.rbは起動時に `~/.atig/config` を読み込みます。
-- - `~/.atig/config` はRubyのコードが記述可能です。
-- - `Atig::Gateway::Session.<some_field>` を変更すると、atig.rbの動作をカスタマイズできます。
--
--利用可能なコマンドの変更
--------------------------------
--`Atig::Gateway::Session.commands` を変更すれば、利用可能な :doc:`commands` を変更できます::
--
-- Atig::Gateway::Session.commands = [
-- Atig::Command::Retweet,
-- Atig::Command::Reply,
-- ..
-- ]
--
--標準で次のコマンドが用意されています。
--
--Atig::Command::Retweet
-- ``/me retweet ...`` を提供するクラス
--Atig::Command::Reply
-- ``/me reply ...`` を提供するクラス
--Atig::Command::User
-- ``/me user ...`` を提供するクラス
--Atig::Command::Favorite
-- ``/me fav, unfav ...`` を提供するクラス
--Atig::Command::Uptime
-- ``/me uptime ...`` を提供するクラス
--Atig::Command::Destroy
-- ``/me destory ...`` を提供するクラス
--Atig::Command::Status
-- 通常の発言時に使われる内部コマンド
--Atig::Command::Thread
-- ``/me thread ...`` を提供するクラス
--Atig::Command::Time
-- ``/me time ...`` を提供するクラス
--Atig::Command::Version
-- ``/me verison ...`` を提供するクラス
--Atig::Command::UserInfo
-- ``/me userinfo ...`` を提供するクラス
--Atig::Command::Whois
-- ``/whois ...`` を提供するクラス
--Atig::Command::Option
-- ``/me opt ...`` を提供するクラス
--Atig::Command::Limit
-- ``/me limit`` を提供するクラス
--Atig::Command::Search
-- ``/me search`` を提供するクラス
--Atig::Command::Refresh
-- ``/me refresh`` を提供するクラス
-- Atig::Command::Spam,
--
--取得するAPIの変更
--------------------------------
--`Atig::Gateway::Session.agents` を変更すると、発言やFollowingを取得するのに利用するAPIを変更できます。::
--
-- Atig::Gateway::Session.agents = [
-- Atig::Agent::List,
-- Atig::Agent::Following,
-- ...
-- ]
--
--標準で次のAgentが用意されています。
--
--Atig::Agent::OwnList
-- 自分のリストのfollowingを取得します。FullListと同時に指定できません。
--Atig::Agent::FullList
-- 自分のリストと自分がフォローしているリストのfollowingを取得します。OwnListと同時に指定できません。
--Atig::Agent::Following
-- 自分のfollowingを取得します。
--Atig::Agent::ListStatus
-- リスト内の発言を取得します。フォローせずに、Listでだけfollowしている人の発言を取得するために必要です。
--Atig::Agent::Mention
-- 自分への言及(mention)を取得します。
--Atig::Agent::Dm
-- 自分へのダイレクトメッセージを取得します。
--Atig::Agent::Timeline
-- 自分のタイムラインを取得します。
--Atig::Agent::Cleanup
-- 定期的にキャッシュのうち、古い内容を削除します。
--
--取得した発言の加工方法の変更
--------------------------------
--`Atig::Gateway::Session.ifilters` を変更すると、取得した発言の加工方法を変更できます。::
--
-- Atig::Gateway::Session.ifilters = [
-- Atig::IFilter::Utf7,
-- Atig::IFilter::Sanitize,
-- ...
-- ]
--
--標準で次のIFilterが用意されています。
--
--Atig::IFilter::Utf7
-- utf7をデコードします。
--Atig::IFilter::Sanitize
-- > などを置き換えます。
--Atig::IFilter::ExpandUrl
-- 短縮URLを展開します。
--Atig::IFilter::Strip.new([``footer1``, ``footer2``, ...])
-- 指定したフッタを除去します。
--Atig::IFilter::Retweet
-- 公式RTの先頭に♺ をつけます。
--Atig::IFilter::RetweetTime
-- 公式RTの末尾に元発言の日時を表示します。
--Atig::IFilter::Tid
-- 発言の末尾に、tidをつけます。 :doc:`options` も参照してください。
--Atig::IFilter::Sid
-- 発言の末尾に、sidをつけます。 :doc:`options` も参照してください。
--
--自分の発言の加工
--------------------------------
--`Atig::Gateway::Session.ofilters` を変更すると、自分の発言の加工方法を変更できます。::
--
--Atig::Gateway::Session.ofilters = [
-- Atig::OFilter::EscapeUrl,
-- Atig::OFilter::ShortUrl,
-- Atig::OFilter::Geo,
-- Atig::OFilter::Footer,
-- ]
--
--標準で次のOFilterが用意されています。
--
--Atig::OFilter::EscapeUrl
-- URLエスケープを行ないます。
--Atig::OFilter::ShortUrl
-- URLを短縮します。 :doc:`options` も参照してください。
--Atig::OFilter::Geo
-- 位置情報を付加します。 :doc:`options` も参照してください。
--Atig::OFilter::Footer
-- フッターを付加します。 :doc:`options` も参照してください。
--
--チャンネルの変更
--------------------------------
--`Atig::Gateway::Session.channels` を変更すると、作成するチャンネルを変更できます。::
--
-- Atig::Gateway::Session.channels = [
-- Atig::Channel::Timeline,
-- Atig::Channel::Mention,
-- Atig::Channel::Dm,
-- Atig::Channel::List,
-- Atig::Channel::Retweet
-- ]
--
--標準で次のChannelが用意されています。
--
--Atig::Channel::Timeline
-- フォローしている人全員の発言を表示する `#twitter` を作成します。
--Atig::Channel::Mention
-- 自分への言及を表示する `#mention` を作成します。
--Atig::Channel::Retweet
-- 自分のフォローしている人の公式RTを表示する `#retweet` を作成します。
--Atig::Channel::Dm
-- DMの受信時にチャンネルを作成します。
--Atig::Channel::List
-- リストごとにチャンネルを作成します。
-diff --git a/docs/feature.rst b/docs/feature.rst
-deleted file mode 100644
-index 8abf957..0000000
---- a/docs/feature.rst
-+++ /dev/null
-@@ -1,41 +0,0 @@
--atig.rbの特徴
--==============================
--
--主な機能
--------------------------------
-- * フレンドタイムライン/DM/Mentionの取得
-- * OAuthによる認証
-- * ListsによるFollowingの分類
-- * 公式RT/コメント付き非公式RT
-- * IRCクライアントならなんでも使える柔軟性
--
--動作環境
--------------------------------
--開発時には以下の環境でテストしています。
--
-- * MacOS 10.5(Leopard) + Ruby 1.9
-- * MacOS 10.6(Snow Leopard) + Ruby 1.9
-- * CentOS 5.3 + Ruby 1.8
--
--スクリーンショット
--------------------------------
--
--`Lime Chat`_
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--.. _Lime Chat: http://limechat.net/
--
--.. image:: _static/limechat.png
--
--`Irssi`_
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--.. _Irssi: http://www.irssi.org/
--
--.. image:: _static/irssi.png
--
--`Riece`_ on Emacs.
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
--.. _Riece: http://www.nongnu.org/riece/index.html.ja
--
--.. image:: _static/emacs.png
--
-diff --git a/docs/hacking_guide.rst b/docs/hacking_guide.rst
-deleted file mode 100644
-index d482571..0000000
---- a/docs/hacking_guide.rst
-+++ /dev/null
-@@ -1,43 +0,0 @@
--内部構造
--==============================
--
--
--全体図
--------------------------------
--
--.. image:: _static/structure.png
--
--Twitter
--------------------------------
--
-- - TwitterのAPIを叩くためのクラス
--
--Scheduler
--------------------------------
--
-- - API呼び出し回数を最適化するためのクラス(予定)
--
--
--Agent
--------------------------------
--
-- - Twitterから情報を取得し、DBに登録するクラス
-- - 例: メインタイムラインを取得し、DBに登録する
--
--Db
--------------------------------
--
--Gateway
--------------------------------
--
--Channel
--------------------------------
--
--IFilter
--------------------------------
--
--OFilter
--------------------------------
--
--Command
--------------------------------
-diff --git a/docs/index.rst b/docs/index.rst
-deleted file mode 100644
-index b29629a..0000000
---- a/docs/index.rst
-+++ /dev/null
-@@ -1,102 +0,0 @@
--.. atig documentation master file, created by
-- sphinx-quickstart on Mon Mar 15 15:36:01 2010.
-- You can adapt this file completely to your liking, but it should at least
-- contain the root `toctree` directive.
--
--atig.rb : Another Twitter Irc Gateway
--==================================
--atig.rbはTwitterとIRCを結ぶゲートウェイです。
--
--スクリーンショット
--------------------------------
--
--.. image:: _static/limechat_s.png
--
--ダウンロード
--------------------------------
--
-- - 安定板: `atigrb-0.4.3.tgz`_. ( `過去のバージョン`_ )
-- - 開発版: `Github Repository`_.
--
--.. _atigrb-0.4.3.tgz: http://github.com/mzp/atig/tarball/v0.4.3
--.. _過去のバージョン: http://github.com/mzp/atig/tags
--.. _GitHub Repository: http://github.com/mzp/atig
--
--特徴
--------------------------------
--
--必要なのはIRCクライアントだけ
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
-- - IRCクライアントさえあれば、どこからでもTwitterできます。
-- - CUI中毒やEmacs中毒の方でも安心してお使いいただけます。
--
--Listsにも対応してます
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
-- - Listsはチャンネルになります。
--
--大抵のOSで動きます
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
-- - Rubyで書いてあるので大抵のOSで動作します。
--
--IRC用のソフトが流用できます。
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
-- - 既存のIRC用のソフトを流用することができます。
-- - 例えば、IRCプロキシであるTiarraと連携させることで、24時間Twitterのログがとることが可能です。
--
--
--
--.. 構造化された設計
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
-- ~ tig.rbよりいいよ
--
--その他のドキュメント
--------------------------------
--.. toctree::
-- :maxdepth: 2
--
-- quickstart
-- feature
-- irc
-- commandline_options
-- options
-- commands
-- config
-- tig
-- changelog
--
--バグ、疑問点、不満点を見つけたときは
--------------------------------------
--
--こんな場合は、mzpまで気軽にご連絡ください。
--できる範囲でサポートします。
--
-- - atig の挙動がおかしい
-- - 設定の仕方がよく分からない
-- - 欲しい機能がなかった
-- - atig に足りないクールな機能を実装したぜ
--
--連絡方法は以下のものがあります。それ以外の方法でもmzpまでに届けばかまいません。
--
-- - Githubの `Issues`_ に登録する。
-- - `@mzp`_ 宛につぶやく。
-- - `Blog`_ の適当なページにコメントをつける
-- - Githubでforkして、pull requestを送る
--
--.. _Issues: http://github.com/mzp/atig/issues
--.. _ at mzp: http://twitter.com/mzp/
--.. _Blog: http://d.hatena.ne.jp/mzp/
--
--
--Indices and tables
--==================
--
--* :ref:`genindex`
--* :ref:`search`
--
--
--.. |heart| replace:: ♥
-diff --git a/docs/irc.rst b/docs/irc.rst
-deleted file mode 100644
-index 84f1663..0000000
---- a/docs/irc.rst
-+++ /dev/null
-@@ -1,31 +0,0 @@
--IRCコマンド
--==============================
--
--nickなどの扱い
--------------------------------
--
-- - nick: OAuthのプロファイル名、ベーシック認証時のユーザ名
-- - real: クライアントオプション。詳細は :doc:`options` を参照してください。
-- - pass: ベーシック認証時のパスワード
--
--IRCコマンドとの対応
--------------------------------
--
--\/invite ``screen_name`` ``channel``
-- ``channel`` がメインチャンネル(通常は#twitter)の場合、ユーザ ``screen_name`` をフォローします。 同時にユーザ一覧の更新も行なうので、「follow ``screen_name`` 」と発言するよりも便利です。
--
-- ``channel`` がリストチャンネルの場合、ユーザ ``screen_name`` をリストに追加します。
--
--\/kick ``screen_name`` ``channel``
-- ``channel`` がメインチャンネル(通常は#twitter)の場合、ユーザ ``screen_name`` をリムーブします。
--
-- ``channel`` がリストチャンネルの場合、ユーザ ``screen_name`` をリストから削除します。
--
--\/whois ``screen_name``
-- ``screen_name`` の情報を表示します。ID番号、名前、自己紹介、現在地などを表示します。
--
--\/topic ``topic``
-- :doc:`commands` の `autofix` へのエイリアスです。
-- ``topic`` が前回の発言と類似している場合、古い発言を上書きします。
--\/who ``channel``
-- ``channel`` の参加者の情報を表示します。ID番号、名前などを表示します。
-diff --git a/docs/options.rst b/docs/options.rst
-deleted file mode 100644
-index b56220e..0000000
---- a/docs/options.rst
-+++ /dev/null
-@@ -1,76 +0,0 @@
--クライアントオプション
--==================================
--
--概要
--------------------------------
--realnameのユーザ名の後ろにいろいろと書くことで、各オプションを有効にできます。
--
--例えば次のようにすると、tidオプションとonlyオプションが有効になります。 ::
--
-- twitter {
-- host: localhost
-- port: 19876
-- name: mzp tid only
-- }
--
--:doc:`commands` のoptコマンドを用いると、実行中に変更できます。
--
--発言関係
--------------------------------
--tid
-- 各発言にtidを表示します。tidは特定の発言へreplyする場合などに利用します。
--
-- :doc:`commands` も参照してください。
--sid
-- 各発言にsidを表示します。sidはtidと同様に利用できます。
--
-- sidは ``ユーザ名``:\ ``id`` という書式にです。そのため、
-- ユーザ名の補完機能のあるクライアントではtidより入力が容易です。
--
--フォロワー関係
--------------------------------
--only
-- 指定すると片思い表示機能を有効にします。有効にしていると、自分が一方的
-- にフォローしている人に ``+o`` がつきます。たいていのクライアントだと
-- ``@`` がつきます。
--
--発言関連
--------------------------------
--stream
-- `UserStream`_ を有効にします。
-- 実行中の変更には対応していません。
--footer=\ ``footer``
-- 発言の末尾に、 ``footer`` を追加します。
-- ただし ``footer`` がfalseの場合は、追加しません。
--old_style_reply
-- @nickで始まる発言が、@nick の最新の発言へのreplyとなるモードに切り替えます。
--
--.. _UserStream: https://dev.twitter.com/docs/streaming-apis/streams/user
--
--URL短縮関係
--------------------------------
--
--発言中の長いURLを自動で短縮します。どの短縮URLサービスを用いて短縮する
--か、どの程度の長さのURLを短縮するか、などが設定できます。
--
--bitlify
-- |len|\ 字以上のURLを http://bit.ly\ によって短縮します。
--bitlify=\ ``size``
-- ``size``\ 字以上のURLを http://bit.ly\ によって短縮します。
--bitlify=\ ``username``:\ ``api_key``
-- |len|\ 字以上のURLを http://bit.ly のAPIによって短縮します。
--bitlify=\ ``username``:\ ``api_key``:\ ``size``
-- ``size``\ 字以上のURLを http://bit.ly のAPIによって短縮します。
-- APIを利用して短縮すると、ユーザページに短縮したURLが記録されたりします。
-- 詳しくは、 http://bit.ly のSign up for bit.lyを読んでください。
--
--.. |len| replace:: 20
--
--システム関係
--------------------------------
--api_base=\ ``api_base``
-- Twitterのエントリポイントを指定します。実行中の変更には対応していません。指定しない場合は、https://api.twitter.com/1/が用いられます。
--.. stream_api_base=\ ``api_base``
-- Stream APIのエントリポイントを指定します。実行中の変更には対応していません。指定しない場合は、http://stream.twitter.com/1/'が用いられます。
-- stream_timeout=\ ``timeout``
-- Stream APIの接続は一定時間ごとに再接続を行ないます。その時間間隔を指定します。0を指定した場合は、再接続を行ないません。
-diff --git a/docs/quickstart.rst b/docs/quickstart.rst
-deleted file mode 100644
-index caa2179..0000000
---- a/docs/quickstart.rst
-+++ /dev/null
-@@ -1,96 +0,0 @@
--クイックスタート
--================
--
--必要なソフトウェア
--------------------------------
--以下のものが必要です。
--
-- - Ruby 1.8/1.9
-- - Sqlite3
-- - 適当なIRCクライアント(例: `LimeChat`_ )
--
--.. _LimeChat: http://limechat.net/
--
--またRubyには次のライブラリがインストールされている必要があります。
--
-- - oauth
-- - sqlite3-ruby
-- - json(Ruby 1.8の場合, Ruby 1.9の場合は不要)
-- - rspec(単体テストを実行する場合, 開発者以外は不要)
-- - rake(単体テストを実行する場合, 開発者以外は不要)
--
--インストール
--------------
--
--リリース版
--~~~~~~~~~~
--Rubygemsを使用してインストールしてください。::
--
-- $ gem install atig
--
--または `GitHub`_ からダウンロードしてください。
--
--.. _GitHub: http://github.com/mzp/atig/downloads
--
--trunk版
--~~~~~~~~~~
--githubからpullしてください。::
--
-- $ git clone https://github.com/mzp/atig.git
--
--使ってみる
------------
--
--起動
--~~~~~~~~~
--コマンドラインから起動します。::
--
-- $ atig -d
--
--githubからダウンロードした場合::
--
-- $ cd atig
-- $ bin/atig -d
-- I, [2010-04-05T07:22:07.861527 #62002] INFO -- : Host: localhost Port:16668
--
--接続
--~~~~~~~~~
--IRCクライアントで、localhost:16668に接続します。
--
-- - nickname: Twitterのユーザ名
-- - login name: 使ってないので適当に
-- - real name: :doc:`options` 。tidがおすすめです。
-- - password: 空欄
-- - 詳しくは :doc:`irc` を参照してください。
--
--.. image:: _static/irc_setting.png
--
--
--
--OAuth認証
--~~~~~~~~~
--初回接続時のみ、OAuthで認証させる必要があります。
--接続時に#oauthにjoinされ、認証用のURLが表示されます。
--
--.. image:: _static/oauth_channel.png
--
--表示されたURLにアクセスし、atig.rbに認証を与えます。
--
--.. image:: _static/allow.png
--
--7桁の数字が表示されるので、それを#oauthに入力します。
--
--.. image:: _static/verify.png
--
--発言してみる
--~~~~~~~~~~~~
-- - #twitterで発言すると、Twitterに投稿されます。
-- - :doc:`commands` を用いると、RTやreplyが行なえます。
--
--さらに詳しい使い方
----------------------
--
-- - Tiarraと連携させると、発言のログを取ることができす。
-- - `God`_ などと連携させると、atig.rbを常駐(デーモン化)させることができます。
--
--.. _God: http://god.rubyforge.org/
-diff --git a/docs/resize.sh b/docs/resize.sh
-deleted file mode 100755
-index dffe50e..0000000
---- a/docs/resize.sh
-+++ /dev/null
-@@ -1,7 +0,0 @@
--#!/bin/sh
--for i in $@; do
-- echo $i
-- mv $i $i.$$
-- convert -resize 300x300 $i.$$ $i
-- rm -f $i.$$
--done
-diff --git a/docs/tiarra.rst b/docs/tiarra.rst
-deleted file mode 100644
-index ba8a836..0000000
---- a/docs/tiarra.rst
-+++ /dev/null
-@@ -1,2 +0,0 @@
--Tiarraとの連携
--==============
-diff --git a/docs/tig.rst b/docs/tig.rst
-deleted file mode 100644
-index 7d70df4..0000000
---- a/docs/tig.rst
-+++ /dev/null
-@@ -1,21 +0,0 @@
--tig.rbとの違い
--==================================
--atig.rbは `tig.rb`_ から派生したプロジェクトです。
--
--.. _tig.rb: http://github.com/cho45/net-irc
--
--そのため基本的な機能は同様ですが、いくつかの細かい点が異なります。
--
--機能の違い
--------------------------------
--
-- - 認証にxAuthではなくOAuthを使う。
-- - ツイートを指定するのにtidだけでなくsidが使える。 sidは :doc:`options` の `sid` を参照してください。
-- - 一部の :doc:`commands` の名前が異なる。例: tig.rbだと `list` 、atig.rbでは `user`\ 。
-- - 自分への言及を表示する `#mention` チャンネルや、リツイートを表示する `#retweet` チャンネルがある。 :doc:`config` の「チャンネルの変更」で変更できます。
-- - 自分への言及が `#twitter` チャンネルに表示されません。
--
--その他の違い
--------------------------------
-- - クラス単位でファイルを分割しているます。たぶん、コードをいじりやすいはず。
-- - :doc:`commands` は本体のコードを触らずに拡張可能(たぶん)
-diff --git a/lib/atig/agent/agent.rb b/lib/atig/agent/agent.rb
-index e4901c8..0f2f305 100644
---- a/lib/atig/agent/agent.rb
-+++ b/lib/atig/agent/agent.rb
-@@ -15,18 +15,18 @@ module Atig
- log :info, "initialize"
-
- @api.repeat( interval ) do|t|
-- q = { :count => 200 }
-+ q = { count: 200 }
- if @prev
-- q.update :since_id => @prev
-+ q.update since_id: @prev
- else
-- q.update :count => 20
-+ q.update count: 20
- end
-
- sources = t.get( path, q)
-
- sources.reverse_each do|s|
- db.statuses.transaction do|d|
-- d.add :source => source, :status => s, :user => s.user
-+ d.add source: source, status: s, user: s.user
- end
- end
-
-diff --git a/lib/atig/agent/dm.rb b/lib/atig/agent/dm.rb
-index 8dbb21b..bc80dca 100644
---- a/lib/atig/agent/dm.rb
-+++ b/lib/atig/agent/dm.rb
-@@ -15,18 +15,18 @@ module Atig
- log :info, "initialize"
-
- @api.repeat(600) do|t|
-- q = { :count => 200 }
-+ q = { count: 200 }
- if @prev
-- q.update :since_id => @prev
-+ q.update since_id: @prev
- else
-- q.update :count => 1
-+ q.update count: 1
- end
- dms = t.get("direct_messages", q)
- log :debug, "You have #{dms.size} dm."
-
- dms.reverse_each do|dm|
- db.dms.transaction do|d|
-- d.add :status => dm, :user => dm.sender
-+ d.add status: dm, user: dm.sender
- end
- end
- end
-diff --git a/lib/atig/agent/following.rb b/lib/atig/agent/following.rb
-index 7a55ac2..78fa557 100644
---- a/lib/atig/agent/following.rb
-+++ b/lib/atig/agent/following.rb
-@@ -22,15 +22,15 @@ module Atig
-
- def update(api)
- if @db.followings.empty?
-- friends = api.page("friends/list", :users, {:user_id => @db.me.id, :count => 100})
-+ friends = api.page("friends/list", :users, {user_id: @db.me.id, count: 100})
- else
- @db.me = api.post("account/update_profile")
- return if @db.me.friends_count == @db.followings.size
-- friends = api.page("friends/list", :users, {:user_id => @db.me.id, :count => 100})
-+ friends = api.page("friends/list", :users, {user_id: @db.me.id, count: 100})
- end
-
- if @opts.only
-- followers = api.page("friends/ids", :ids, {:user_id => @db.me.id, :count => 2500})
-+ followers = api.page("friends/ids", :ids, {user_id: @db.me.id, count: 2500})
- friends.each do|friend|
- friend[:only] = !followers.include?(friend.id)
- end
-diff --git a/lib/atig/agent/list.rb b/lib/atig/agent/list.rb
-index ccae90e..a3afdef 100644
---- a/lib/atig/agent/list.rb
-+++ b/lib/atig/agent/list.rb
-@@ -18,7 +18,7 @@ module Atig
- if name == :all then
- full_update t
- else
-- @db.lists[name].update t.page("lists/members", :users, {:owner_screen_name => @db.me.screen_name, :slug => name})
-+ @db.lists[name].update t.page("lists/members", :users, {owner_screen_name: @db.me.screen_name, slug: name})
- end
- end
- end
-@@ -41,7 +41,7 @@ module Atig
- end
- begin
- users[name] =
-- t.page("lists/members", :users, {:owner_screen_name => list.user.screen_name, :slug => list.slug})
-+ t.page("lists/members", :users, {owner_screen_name: list.user.screen_name, slug: list.slug})
- rescue => e
- log :error, e.inspect
- users[name] =
-diff --git a/lib/atig/agent/list_status.rb b/lib/atig/agent/list_status.rb
-index b1549d6..e4260b8 100644
---- a/lib/atig/agent/list_status.rb
-+++ b/lib/atig/agent/list_status.rb
-@@ -18,17 +18,17 @@ class Atig::Agent::ListStatus
- db.lists.each do |name, _|
- log :debug, "retrieve #{name} statuses"
- q = {}
-- q.update(:since_id => @prev[name]) if @prev.key?(name)
-+ q.update(since_id: @prev[name]) if @prev.key?(name)
-
- screen_name, slug = parse name
-- q.update(:owner_screen_name => screen_name, :slug => slug)
-+ q.update(owner_screen_name: screen_name, slug: slug)
- statuses = t.get("lists/statuses", q)
- statuses.reverse_each do|status|
- db.statuses.transaction do|d|
-- d.add(:status => status,
-- :user => status.user,
-- :source => :list,
-- :list => name)
-+ d.add(status: status,
-+ user: status.user,
-+ source: :list,
-+ list: name)
- end
- end
- @prev[name] = statuses[0].id if statuses && statuses.size > 0
-diff --git a/lib/atig/agent/stream_follow.rb b/lib/atig/agent/stream_follow.rb
-index 2709e05..892a52f 100644
---- a/lib/atig/agent/stream_follow.rb
-+++ b/lib/atig/agent/stream_follow.rb
-@@ -24,10 +24,10 @@ module Atig
-
- @api.stream do|t|
- Thread.pass until @follows
-- t.watch('statuses/filter', :follow => @follows) do |status|
-+ t.watch('statuses/filter', follow: @follows) do |status|
- if status and status.user
- db.transaction do|d|
-- d.statuses.add :status => status, :user => status.user, :source => :stream_follow
-+ d.statuses.add status: status, user: status.user, source: :stream_follow
- end
- end
- end
-diff --git a/lib/atig/agent/user_stream.rb b/lib/atig/agent/user_stream.rb
-index ae7832d..26eb614 100644
---- a/lib/atig/agent/user_stream.rb
-+++ b/lib/atig/agent/user_stream.rb
-@@ -16,7 +16,7 @@ module Atig
- log :info, "initialize"
-
- @api.stream do|t|
-- options = context.opts.allreplies ? {:replies => :all} : {}
-+ options = context.opts.allreplies ? {replies: :all} : {}
-
- t.watch('user', options) do |status|
- # @log.debug status.inspect
-@@ -24,11 +24,11 @@ module Atig
- if status.direct_message
- dm = status.direct_message
- db.dms.transaction do|d|
-- d.add :status => dm, :user => dm.sender
-+ d.add status: dm, user: dm.sender
- end
- elsif status and status.user
- db.statuses.transaction do|d|
-- d.add :status => status, :user => status.user, :source => :user_stream
-+ d.add status: status, user: status.user, source: :user_stream
- end
- elsif status and status.event
- case status.event
-diff --git a/lib/atig/basic_twitter.rb b/lib/atig/basic_twitter.rb
-index 9ee7474..fda1b38 100755
---- a/lib/atig/basic_twitter.rb
-+++ b/lib/atig/basic_twitter.rb
-@@ -29,8 +29,6 @@ module Atig
- uri.path += ".json" if path != "users/username_available"
- uri.query = query.to_query_str unless query.empty?
-
-- header = {}
--
- begin
- ret = request(uri, opts)
- rescue OpenSSL::SSL::SSLError => e
-@@ -99,7 +97,7 @@ module Atig
- methods.each do |m|
- self.module_eval <<END
- def #{m}(path, query = {}, opts = {})
-- opts.update( :method => :#{m})
-+ opts.update( method: :#{m})
- api path, query, opts
- end
- END
-diff --git a/lib/atig/bitly.rb b/lib/atig/bitly.rb
-index 0046f25..a7152be 100644
---- a/lib/atig/bitly.rb
-+++ b/lib/atig/bitly.rb
-@@ -27,7 +27,7 @@ module Atig
- if @login and @key
- bitly.path = "/shorten"
- bitly.query = {
-- :format => "json", :longUrl => url, :login => @login, :apiKey => @key,
-+ format: "json", longUrl: url, login: @login, apiKey: @key,
- }.to_query_str(";")
- req = @http.req(:get, bitly, {})
- res = @http.http(bitly, 5, 10).request(req)
-diff --git a/lib/atig/channel/channel.rb b/lib/atig/channel/channel.rb
-index c7cce70..8f8f43c 100644
---- a/lib/atig/channel/channel.rb
-+++ b/lib/atig/channel/channel.rb
-@@ -5,7 +5,7 @@ module Atig
- class Channel
- def initialize(context, gateway, db)
- @db = db
-- @channel = gateway.channel channel_name, :handler=>self
-+ @channel = gateway.channel channel_name, handler:self
- @channel.join_me
-
- db.statuses.listen do|entry|
-diff --git a/lib/atig/channel/list.rb b/lib/atig/channel/list.rb
-index 274274a..aaeb746 100644
---- a/lib/atig/channel/list.rb
-+++ b/lib/atig/channel/list.rb
-@@ -12,14 +12,14 @@ module Atig
- def on_invite(api, nick)
- return if @name.include? '^'
-
-- api.post("lists/members/create", :screen_name => nick, :owner_screen_name => @db.me.screen_name, :slug => @name )
-+ api.post("lists/members/create", screen_name: nick, owner_screen_name: @db.me.screen_name, slug: @name )
- @db.lists.invalidate @name
- end
-
- def on_kick(api, nick)
- return if @name.include? '^'
-
-- api.post("lists/members/destroy", :screen_name => nick, :owner_screen_name => @db.me.screen_name, :slug => @name )
-+ api.post("lists/members/destroy", screen_name: nick, owner_screen_name: @db.me.screen_name, slug: @name )
- @db.lists.invalidate @name
- end
-
-@@ -31,7 +31,7 @@ module Atig
-
- def initialize(context, gateway, db)
- @channels = Hash.new do|hash,name|
-- channel = gateway.channel "##{name}", :handler => Handler.new(db, name)
-+ channel = gateway.channel "##{name}", handler: Handler.new(db, name)
- channel.join_me
- hash[name] = channel
- end
-diff --git a/lib/atig/channel/retweet.rb b/lib/atig/channel/retweet.rb
-index 343f3a7..b47e379 100644
---- a/lib/atig/channel/retweet.rb
-+++ b/lib/atig/channel/retweet.rb
-@@ -7,7 +7,7 @@ module Atig
- def initialize(context, gateway, db)
- super
-
-- db.statuses.find_all(:limit=>50).reverse_each {|entry|
-+ db.statuses.find_all(limit:50).reverse_each {|entry|
- message entry
- }
-
-diff --git a/lib/atig/channel/timeline.rb b/lib/atig/channel/timeline.rb
-index 9eaea00..0ef28bc 100644
---- a/lib/atig/channel/timeline.rb
-+++ b/lib/atig/channel/timeline.rb
-@@ -16,7 +16,7 @@ module Atig
- @channel.notify "Client options: #{context.opts.marshal_dump.inspect}"
-
- # つないだときに発言がないとさみしいので
-- db.statuses.find_all(:limit=>50).reverse_each do|entry|
-+ db.statuses.find_all(limit:50).reverse_each do|entry|
- case entry.source
- when :timeline, :me
- @channel.message entry
-diff --git a/lib/atig/command/autofix.rb b/lib/atig/command/autofix.rb
-index 26e5ce1..e85c4e0 100644
---- a/lib/atig/command/autofix.rb
-+++ b/lib/atig/command/autofix.rb
-@@ -31,17 +31,17 @@ module Atig
- return
- end
- text = mesg.split(" ", 2)[1]
-- q = gateway.output_message(:status => text)
-+ q = gateway.output_message(status: text)
-
-- prev,*_ = db.statuses.find_by_user( db.me, :limit => 1)
-+ prev,*_ = db.statuses.find_by_user( db.me, limit: 1)
-
- unless fix?(command, q[:status], prev) then
-- api.delay(0, :retry=>3) do|t|
-+ api.delay(0, retry:3) do|t|
- ret = t.post("statuses/update", q)
- gateway.update_status ret, target
- end
- else
-- api.delay(0, :retry=>3) do|t|
-+ api.delay(0, retry:3) do|t|
- yield "Similar update in previous. Conclude that it has error."
- yield "And overwrite previous as new status: #{q[:status]}"
-
-diff --git a/lib/atig/command/destroy.rb b/lib/atig/command/destroy.rb
-index 365ff77..9f798a4 100644
---- a/lib/atig/command/destroy.rb
-+++ b/lib/atig/command/destroy.rb
-@@ -18,7 +18,7 @@ module Atig
- if entry = Info.find_status(db, tid)
- if entry.user.id == db.me.id
- api.delay(0) do|t|
-- res = t.post("statuses/destroy/#{entry.status.id}")
-+ t.post("statuses/destroy/#{entry.status.id}")
- yield "Destroyed: #{entry.status.text}"
-
- db.statuses.transaction do|d|
-diff --git a/lib/atig/command/dm.rb b/lib/atig/command/dm.rb
-index 64b0a02..7f77603 100644
---- a/lib/atig/command/dm.rb
-+++ b/lib/atig/command/dm.rb
-@@ -20,8 +20,8 @@ module Atig
- text = mesg.split(" ", 3)[2]
- api.delay(0) do|t|
- t.post("direct_messages/new",{
-- :screen_name => user,
-- :text => text
-+ screen_name: user,
-+ text: text
- })
- yield "Sent message to #{user}: #{text}"
- end
-diff --git a/lib/atig/command/favorite.rb b/lib/atig/command/favorite.rb
-index 73e8808..9604d4a 100644
---- a/lib/atig/command/favorite.rb
-+++ b/lib/atig/command/favorite.rb
-@@ -14,7 +14,7 @@ module Atig
- args.each do|tid|
- if entry = Info.find_status(db, tid)
- api.delay(0){|t|
-- res = t.post("favorites/#{method}", {:id => entry.status.id})
-+ t.post("favorites/#{method}", {id: entry.status.id})
- yield "#{command.upcase}: #{entry.user.screen_name}: #{entry.status.text}"
- }
- else
-diff --git a/lib/atig/command/info.rb b/lib/atig/command/info.rb
-index 6b9d7e2..f5896dd 100644
---- a/lib/atig/command/info.rb
-+++ b/lib/atig/command/info.rb
-@@ -21,7 +21,7 @@ module Atig
- api.delay(0) do|t|
- status = t.get "statuses/show/#{id}"
- db.statuses.transaction do|d|
-- d.add :status => status, :user => status.user, :source => :thread
-+ d.add status: status, user: status.user, source: :thread
- f.call d.find_by_status_id(id)
- end
- end
-@@ -30,7 +30,7 @@ module Atig
-
- def find_status(db, tid_or_screen_name)
- find = lambda do|x|
-- xs = db.statuses.find_by_screen_name(x, :limit=>1)
-+ xs = db.statuses.find_by_screen_name(x, limit:1)
- unless xs.empty? then
- xs.first
- else
-diff --git a/lib/atig/command/reply.rb b/lib/atig/command/reply.rb
-index 8bc1121..2f619a5 100644
---- a/lib/atig/command/reply.rb
-+++ b/lib/atig/command/reply.rb
-@@ -21,8 +21,8 @@ module Atig
-
- text = "@#{name} #{text}" if text.nil? or not text.include?("@#{name}")
-
-- q = gateway.output_message(:status => text,
-- :in_reply_to_status_id => entry.status.id)
-+ q = gateway.output_message(status: text,
-+ in_reply_to_status_id: entry.status.id)
-
- api.delay(0) do|t|
- ret = t.post("statuses/update", q)
-diff --git a/lib/atig/command/retweet.rb b/lib/atig/command/retweet.rb
-index a0b1139..cb51e7a 100644
---- a/lib/atig/command/retweet.rb
-+++ b/lib/atig/command/retweet.rb
-@@ -23,10 +23,10 @@ module Atig
-
- chars = text.each_char.to_a
- if chars.size > 140 then
-- url = @bitly.shorten "http://twitter.com/#{entry.user.screen_name}/status/#{entry.status.id}"
-+ url = @bitly.shorten "https://twitter.com/#{entry.user.screen_name}/status/#{entry.status.id}"
- text = chars[0,140-url.size-1].join('') + ' ' + url
- end
-- q = gateway.output_message(:status => text)
-+ q = gateway.output_message(status: text)
- api.delay(0) do|t|
- ret = t.post("statuses/update", q)
- gateway.update_status ret,target, "RT to #{entry.user.screen_name}: #{entry.status.text}"
-diff --git a/lib/atig/command/search.rb b/lib/atig/command/search.rb
-index dd7cc61..d06a03f 100644
---- a/lib/atig/command/search.rb
-+++ b/lib/atig/command/search.rb
-@@ -17,7 +17,7 @@ module Atig
- end
-
- q = mesg.sub(/^#{command}\s+/, '')
-- opts = { :q => q }
-+ opts = { q: q }
- while /^:(?:(lang)=(\w+))/ =~ args.first
- opts[$1] = $2
- q.sub!(/^#{args.first}\W+/, "")
-@@ -35,7 +35,7 @@ module Atig
- db.statuses.transaction do|d|
- user = TwitterStruct.make('id' => status.from_user_id,
- 'screen_name' => status.from_user)
-- d.add :status => status, :user => user, :source => :user
-+ d.add status: status, user: user, source: :user
- end
- end
-
-diff --git a/lib/atig/command/status.rb b/lib/atig/command/status.rb
-index 3cbbd4e..76fc605 100644
---- a/lib/atig/command/status.rb
-+++ b/lib/atig/command/status.rb
-@@ -15,14 +15,14 @@ module Atig
- return
- end
- text = mesg.split(" ", 2)[1]
-- previous,*_ = db.statuses.find_by_user( db.me, :limit => 1)
-+ previous,*_ = db.statuses.find_by_user( db.me, limit: 1)
- if previous and
- ((::Time.now - ::Time.parse(previous.status.created_at)).to_i < 60*60*24 rescue true) and
- text.strip == previous.status.text.strip
- yield "You can't submit the same status twice in a row."
- return
- end
-- q = gateway.output_message(:status => text)
-+ q = gateway.output_message(status: text)
-
- case tweet_invalid? q[:status]
- when :too_long
-@@ -33,7 +33,7 @@ module Atig
- return
- end
-
-- api.delay(0, :retry=>3) do|t|
-+ api.delay(0, retry:3) do|t|
- ret = t.post("statuses/update", q)
- gateway.update_status ret,target
- end
-diff --git a/lib/atig/command/user.rb b/lib/atig/command/user.rb
-index c74edef..b972e20 100644
---- a/lib/atig/command/user.rb
-+++ b/lib/atig/command/user.rb
-@@ -20,15 +20,15 @@ module Atig
- api.delay(0) do|t|
- begin
- statuses = t.get("statuses/user_timeline",
-- { :count => count, :screen_name => nick})
-+ { count: count, screen_name: nick})
- statuses.reverse_each do|status|
- db.statuses.transaction do|d|
-- d.add :status => status, :user => status.user, :source => :user
-+ d.add status: status, user: status.user, source: :user
- end
- end
-
- db.statuses.
-- find_by_screen_name(nick, :limit=>count).
-+ find_by_screen_name(nick, limit:count).
- reverse_each do|entry|
- gateway[target].message entry, Net::IRC::Constants::NOTICE
- end
-diff --git a/lib/atig/command/version.rb b/lib/atig/command/version.rb
-index aafb2a3..a4c7a2b 100644
---- a/lib/atig/command/version.rb
-+++ b/lib/atig/command/version.rb
-@@ -15,7 +15,7 @@ module Atig
- end
- nick,*_ = args
-
-- entries = db.statuses.find_by_screen_name(nick, :limit => 1)
-+ entries = db.statuses.find_by_screen_name(nick, limit: 1)
- if entries && !entries.empty? then
- entry = TwitterStruct.make('user' => entries.first.user,
- 'status' => { 'text' =>
-@@ -24,9 +24,9 @@ module Atig
- else
- api.delay(0) do|t|
- begin
-- user = t.get("users/show", { :screen_name => nick})
-+ user = t.get("users/show", { screen_name: nick})
- db.statuses.transaction do|d|
-- d.add :user => user, :status => user.status, :source => :version
-+ d.add user: user, status: user.status, source: :version
- entry = TwitterStruct.make('user' => user,
- 'status' => { 'text' =>
- format(user.status.source) })
-diff --git a/lib/atig/db/followings.rb b/lib/atig/db/followings.rb
-index b348529..dcff314 100644
---- a/lib/atig/db/followings.rb
-+++ b/lib/atig/db/followings.rb
-@@ -83,7 +83,6 @@ module Atig
- }
-
- names = users.map{|u| u.screen_name.inspect }.join(",")
-- parts =
- may_notify :part, db.execute(%{SELECT screen_name,data FROM users
- WHERE screen_name NOT IN (#{names})}).map{|_,data|
- @db.load(data)
-@@ -109,11 +108,11 @@ module Atig
- else
- db.execute("INSERT INTO users
- VALUES(NULL, :screen_name, :user_id, :protected, :only, :data)",
-- :screen_name => user.screen_name,
-- :user_id => user.id,
-- :protected => bool(user.protected),
-- :only => bool(user.only),
-- :data => @db.dump(user))
-+ screen_name: user.screen_name,
-+ user_id: user.id,
-+ protected: bool(user.protected),
-+ only: bool(user.only),
-+ data: @db.dump(user))
- end
- end
- end
-diff --git a/lib/atig/db/statuses.rb b/lib/atig/db/statuses.rb
-index e753651..492a9e5 100644
---- a/lib/atig/db/statuses.rb
-+++ b/lib/atig/db/statuses.rb
-@@ -63,17 +63,17 @@ module Atig
- screen_name = opt[:user].screen_name
- sum = db.get_first_value("SELECT sum(count) FROM id").to_i
- count = db.get_first_value("SELECT count FROM id WHERE screen_name = ?", screen_name).to_i
-- entry = OpenStruct.new opt.merge(:tid => @roman.make(sum),
-- :sid => "#{screen_name}:#{@roman.make(count)}")
-+ entry = OpenStruct.new opt.merge(tid: @roman.make(sum),
-+ sid: "#{screen_name}:#{@roman.make(count)}")
- db.execute(%{INSERT INTO status
- VALUES(NULL, :id, :tid, :sid, :screen_name, :user_id, :created_at, :data)},
-- :id => id,
-- :tid => entry.tid,
-- :sid => entry.sid,
-- :screen_name => screen_name,
-- :user_id => opt[:user].id,
-- :created_at => Time.parse(opt[:status].created_at).to_i,
-- :data => @db.dump(entry))
-+ id: id,
-+ tid: entry.tid,
-+ sid: entry.sid,
-+ screen_name: screen_name,
-+ user_id: opt[:user].id,
-+ created_at: Time.parse(opt[:status].created_at).to_i,
-+ data: @db.dump(entry))
- if count == 0 then
- db.execute("INSERT INTO id VALUES(NULL,?,?)", screen_name, 1)
- else
-@@ -129,8 +129,10 @@ module Atig
-
- private
- def find(lhs,rhs, opt={},&f)
-+ rhs.encoding!("UTF-8") if rhs.respond_to? :encoding!
-+
- query = "SELECT id,data FROM status WHERE #{lhs} = :rhs ORDER BY created_at DESC LIMIT :limit"
-- params = { :rhs => rhs, :limit => opt.fetch(:limit,20) }
-+ params = { rhs: rhs, limit: opt.fetch(:limit,20) }
- res = []
-
- @db.execute do|db|
-diff --git a/lib/atig/db/transaction.rb b/lib/atig/db/transaction.rb
-index adfc455..6ea1988 100644
---- a/lib/atig/db/transaction.rb
-+++ b/lib/atig/db/transaction.rb
-@@ -18,7 +18,7 @@ module Atig
-
- if respond_to?(:timeout_interval) && timeout_interval > 0 then
- begin
-- timeout(timeout_interval){ f.call self }
-+ Timeout.timeout(timeout_interval){ f.call self }
- rescue TimeoutError
- debug "transaction is timeout at #{src}"
- end
-diff --git a/lib/atig/gateway/channel.rb b/lib/atig/gateway/channel.rb
-index 5a89ca1..6ed7199 100644
---- a/lib/atig/gateway/channel.rb
-+++ b/lib/atig/gateway/channel.rb
-@@ -44,7 +44,6 @@ END
- def message(entry, command = PRIVMSG)
- GC.start
- user = entry.user
-- screen_name = user.screen_name
- prefix = prefix user
- str = run_filters entry
-
-@@ -88,7 +87,7 @@ END
- private
-
- def run_filters(entry)
-- status = entry.status.merge(:tid=>entry.tid, :sid=>entry.sid)
-+ status = entry.status.merge(tid:entry.tid, sid:entry.sid)
- @filters.inject(status) {|x, f| f.call x }.text
- end
-
-diff --git a/lib/atig/gateway/session.rb b/lib/atig/gateway/session.rb
-index e7b8b91..9eb5756 100644
---- a/lib/atig/gateway/session.rb
-+++ b/lib/atig/gateway/session.rb
-@@ -16,7 +16,7 @@ require 'atig/option'
-
- begin
- require 'continuation'
--rescue LoadError => e
-+rescue LoadError
- end
-
- module Atig
-@@ -50,7 +50,7 @@ END
-
- def update_status(ret, target, msg='')
- @db.transaction do|db|
-- db.statuses.add(:source => :me, :status => ret, :user => ret.user )
-+ db.statuses.add(source: :me, status: ret, user: ret.user )
- end
-
- msg = "(#{msg})" unless msg.empty?
-@@ -58,12 +58,12 @@ END
- end
-
- def channel(name,opts={})
-- opts.update(:session => self,
-- :name => name,
-- :filters => @ifilters,
-- :prefix => @prefix,
-- :nick => @nick,
-- :opts => @opts)
-+ opts.update(session: self,
-+ name: name,
-+ filters: @ifilters,
-+ prefix: @prefix,
-+ nick: @nick,
-+ opts: @opts)
- channel = Channel.new opts
- @channels[name] = channel
- channel
-@@ -111,7 +111,7 @@ END
- load_config
-
- @opts = Atig::Option.parse @real
-- context = OpenStruct.new(:log=>@log, :opts=>@opts)
-+ context = OpenStruct.new(log:@log, opts:@opts)
-
- oauth = OAuth.new(context, @nick)
- unless oauth.verified? then
-@@ -166,12 +166,12 @@ END
-
- post server_name, MODE, @nick, "+o"
-
-- @db = Atig::Db::Db.new context, :me=>me, :size=> 100, :tmpdir => @tmpdir
-+ @db = Atig::Db::Db.new context, me:me, size: 100, tmpdir: @tmpdir
- run_new @@commands, context, self, @api, @db
- run_new @@agents , context, @api, @db
- run_new @@channels, context, self, @db
-
-- @db.statuses.add :user => me, :source => :me, :status => me.status
-+ @db.statuses.add user: me, source: :me, status: me.status
- end
- end
-
-@@ -210,7 +210,7 @@ END
- def on_ctcp_action(target, mesg)
- command, *args = mesg.split(" ")
- last_match = nil
-- commond = command.to_s.downcase
-+ command = command.to_s.downcase
- _, action = @ctcp_actions.find{|define, f|
- r = (define === command)
- last_match = Regexp.last_match
-@@ -244,7 +244,7 @@ END
- end
-
- def on_kick(m)
-- channel, nick, msg = *m.params
-+ channel, nick, _ = *m.params
-
- if not nick.screen_name? or @db.me.screen_name.casecmp(nick).zero?
- post server_name, ERR_NOSUCHNICK, nick, "No such nick: #{nick}" # or yourself
-diff --git a/lib/atig/http.rb b/lib/atig/http.rb
-index 98f17e5..547fb61 100644
---- a/lib/atig/http.rb
-+++ b/lib/atig/http.rb
-@@ -9,10 +9,10 @@ module Atig
- def self.proxy=(proxy)
- if proxy =~ /\A(?:([^:@]+)(?::([^@]+))?@)?([^:]+)(?::(\d+))?\z/ then
- @@proxy = OpenStruct.new({
-- :user => $1,
-- :password => $2,
-- :address => $3,
-- :port => $4.to_i,
-+ user: $1,
-+ password: $2,
-+ address: $3,
-+ port: $4.to_i,
- })
- end
- end
-diff --git a/lib/atig/ifilter/expand_url.rb b/lib/atig/ifilter/expand_url.rb
-index aeb4496..224200d 100644
---- a/lib/atig/ifilter/expand_url.rb
-+++ b/lib/atig/ifilter/expand_url.rb
-@@ -18,7 +18,7 @@ module Atig
- def call(status)
- target = short_url_regexp
- entities = (entities = status.entities).nil? ? [] : entities.urls
-- status.merge :text => status.text.gsub(target) {|url|
-+ status.merge text: status.text.gsub(target) {|url|
- unless entities.nil? or entities.empty?
- @cache[url] ||= search_url_from_entities(url, entities)
- url = @cache[url] if @cache[url] =~ target
-diff --git a/lib/atig/ifilter/retweet.rb b/lib/atig/ifilter/retweet.rb
-index 55f6102..d6ad46a 100644
---- a/lib/atig/ifilter/retweet.rb
-+++ b/lib/atig/ifilter/retweet.rb
-@@ -7,7 +7,7 @@ module Atig
- def self.call(status)
- return status unless status.retweeted_status
- rt = status.retweeted_status
-- status.merge :text => "#{Prefix}RT @#{rt.user.screen_name}: #{rt.text}"
-+ status.merge text: "#{Prefix}RT @#{rt.user.screen_name}: #{rt.text}"
- end
- end
- end
-diff --git a/lib/atig/ifilter/retweet_time.rb b/lib/atig/ifilter/retweet_time.rb
-index 1e6e6f6..7ad6668 100644
---- a/lib/atig/ifilter/retweet_time.rb
-+++ b/lib/atig/ifilter/retweet_time.rb
-@@ -8,7 +8,7 @@ module Atig
- status
- else
- t = Time.gm(*Time.parse(status.retweeted_status.created_at).to_a)
-- status.merge :text => "#{status.text} \x0310[#{t.strftime "%Y-%m-%d %H:%M"}]\x0F"
-+ status.merge text: "#{status.text} \x0310[#{t.strftime "%Y-%m-%d %H:%M"}]\x0F"
- end
- end
- end
-diff --git a/lib/atig/ifilter/sanitize.rb b/lib/atig/ifilter/sanitize.rb
-index 9062708..1ca5d05 100644
---- a/lib/atig/ifilter/sanitize.rb
-+++ b/lib/atig/ifilter/sanitize.rb
-@@ -12,7 +12,7 @@ module Atig
- gsub("<", "<").
- gsub("&", "&").
- gsub(WSP_REGEX, " ")
-- status.merge :text => text
-+ status.merge text: text
- }
- end
- end
-diff --git a/lib/atig/ifilter/strip.rb b/lib/atig/ifilter/strip.rb
-index 2838834..bb9bf88 100644
---- a/lib/atig/ifilter/strip.rb
-+++ b/lib/atig/ifilter/strip.rb
-@@ -8,7 +8,7 @@ module Atig
- end
-
- def call(status)
-- status.merge :text => status.text.sub(@rsuffix, "").strip
-+ status.merge text: status.text.sub(@rsuffix, "").strip
- end
- end
- end
-diff --git a/lib/atig/ifilter/xid.rb b/lib/atig/ifilter/xid.rb
-index 35013fb..fc98a8c 100644
---- a/lib/atig/ifilter/xid.rb
-+++ b/lib/atig/ifilter/xid.rb
-@@ -20,7 +20,7 @@ module Atig
- unless xid and @opts.send(name)
- status
- else
-- status.merge :text => "#{status.text} #{@format % xid}"
-+ status.merge text: "#{status.text} #{@format % xid}"
- end
- end
- end
-diff --git a/lib/atig/oauth.rb b/lib/atig/oauth.rb
-index 048e1ef..3761d25 100644
---- a/lib/atig/oauth.rb
-+++ b/lib/atig/oauth.rb
-@@ -27,8 +27,8 @@ module Atig
-
- @nick = nick
- @oauth = ::OAuth::Consumer.new(CONSUMER_KEY, CONSUMER_SECRET, {
-- :site => site,
-- :proxy => ENV["HTTP_PROXY"] || ENV["http_proxy"]
-+ site: site,
-+ proxy: ENV["HTTP_PROXY"] || ENV["http_proxy"]
- })
-
- if @@profiles.key? @nick
-@@ -47,7 +47,7 @@ module Atig
- end
-
- def verify(code)
-- @access = @request.get_access_token(:oauth_verifier => code)
-+ @access = @request.get_access_token(oauth_verifier: code)
- if @access then
- @@profiles[@nick] = [ @access.token , @access.secret ]
- end
-diff --git a/lib/atig/ofilter/escape_url.rb b/lib/atig/ofilter/escape_url.rb
-index 57d0e7e..5cc8ee5 100644
---- a/lib/atig/ofilter/escape_url.rb
-+++ b/lib/atig/ofilter/escape_url.rb
-@@ -19,7 +19,7 @@ module Atig
- end
-
- def call(status)
-- status.merge(:status => escape_http_urls(status[:status]))
-+ status.merge(status: escape_http_urls(status[:status]))
- end
-
- def exist_uri?(uri, limit = 1)
-diff --git a/lib/atig/ofilter/footer.rb b/lib/atig/ofilter/footer.rb
-index 863ac71..a83b925 100644
---- a/lib/atig/ofilter/footer.rb
-+++ b/lib/atig/ofilter/footer.rb
-@@ -9,7 +9,7 @@ module Atig
-
- def call(q)
- if @opts.footer && !@opts.footer.empty? then
-- q.merge :status => "#{q[:status]} #{@opts.footer}"
-+ q.merge status: "#{q[:status]} #{@opts.footer}"
- else
- q
- end
-diff --git a/lib/atig/ofilter/geo.rb b/lib/atig/ofilter/geo.rb
-index a3c78b5..b7016d8 100644
---- a/lib/atig/ofilter/geo.rb
-+++ b/lib/atig/ofilter/geo.rb
-@@ -10,7 +10,7 @@ module Atig
- def call(q)
- return q unless @opts.ll
- lat, long = @opts.ll.split(",", 2)
-- q.merge :lat => lat.to_f, :long => long.to_f
-+ q.merge lat: lat.to_f, long: long.to_f
- end
- end
- end
-diff --git a/lib/atig/ofilter/short_url.rb b/lib/atig/ofilter/short_url.rb
-index 69089da..e52917f 100644
---- a/lib/atig/ofilter/short_url.rb
-+++ b/lib/atig/ofilter/short_url.rb
-@@ -15,7 +15,7 @@ module Atig
-
- def call(status)
- mesg = status[:status]
-- status.merge(:status => short_urls(mesg))
-+ status.merge(status: short_urls(mesg))
- end
-
- def short_urls(mesg)
-diff --git a/lib/atig/option.rb b/lib/atig/option.rb
-index ebe3843..3f25b2f 100644
---- a/lib/atig/option.rb
-+++ b/lib/atig/option.rb
-@@ -30,7 +30,7 @@ module Atig
- end
-
- default_value :api_base, 'https://api.twitter.com/1.1/'
-- default_value :stream_api_base, 'https://userstream.twitter.com/2/'
-+ default_value :stream_api_base, 'https://userstream.twitter.com/1.1/'
- default_value :search_api_base, 'https://search.twitter.com/'
-
- def initialize(table)
-diff --git a/lib/atig/optparse.rb b/lib/atig/optparse.rb
-index fa72f01..676c838 100644
---- a/lib/atig/optparse.rb
-+++ b/lib/atig/optparse.rb
-@@ -6,16 +6,17 @@ module Atig
- class << self
- def parse!(argv)
- opts = {
-- :port => 16668,
-- :host => "localhost",
-- :log => nil,
-- :debug => false,
-- :foreground => false,
-- :tmpdir => ::Dir.tmpdir,
-- :conf => '~/.atig/config',
-+ port: 16668,
-+ host: "localhost",
-+ log: nil,
-+ debug: false,
-+ foreground: false,
-+ tmpdir: ::Dir.tmpdir,
-+ conf: '~/.atig/config',
- }
-
- OptionParser.new do |parser|
-+ parser.version = Atig::VERSION
- parser.instance_eval do
- self.banner = <<EOB.gsub(/^\t+/, "")
- usage: #{$0} [opts]
-@@ -23,6 +24,16 @@ EOB
- separator ""
-
- separator "Options:"
-+ on("--help", "show this help") do
-+ puts help
-+ exit
-+ end
-+
-+ on("-v", "--version", "show version") do
-+ puts version
-+ exit
-+ end
-+
- on("-p", "--port [PORT=#{opts[:port]}]", "port number to listen") do |port|
- opts[:port] = port
- end
-@@ -35,20 +46,20 @@ EOB
- opts[:log] = log
- end
-
-- on("--debug", "Enable debug mode") do |debug|
-+ on("-d", "--debug", "Enable debug mode") do |debug|
- opts[:log] ||= $stderr
- opts[:debug] = true
- end
-
-- on("--tmpdir path", "temporary directory path") do |tmp|
-+ on("-t", "--tmpdir path", "temporary directory path") do |tmp|
- opts[:tmpdir] = tmp
- end
-
-- on("--memprof", "Enable memory profiler") do|_|
-+ on("-m", "--memprof", "Enable memory profiler") do|_|
- require 'memory_profiler'
- require 'fileutils'
- FileUtils.mkdir_p "log"
-- MemoryProfiler.start(:string_debug => true)
-+ MemoryProfiler.start(string_debug: true)
- end
-
- on("-c","--conf [file=#{opts[:conf]}]", "atig configuration file; default is '~/.atig/config'") do|name|
-diff --git a/lib/atig/search.rb b/lib/atig/search.rb
-index 60a327f..9cf60d3 100644
---- a/lib/atig/search.rb
-+++ b/lib/atig/search.rb
-@@ -5,14 +5,16 @@ require 'atig/url_escape'
- module Atig
- class Search
- def search(query, options = {})
-+ options[:q] = query
-+
- search = URI("https://search.twitter.com")
- search.path = "/search.json"
-- params = options; options[:q] = query
- search.query = options.to_query_str
-+
- http = Http.new nil
- req = http.req(:get, search)
- res = http.http(search, 5, 10).request(req)
-- res = JSON.parse(res.body)
-+ JSON.parse(res.body)
- rescue Errno::ETIMEDOUT, JSON::ParserError, IOError, Timeout::Error, Errno::ECONNRESET => e
- @log.error e
- text
-diff --git a/lib/atig/stream.rb b/lib/atig/stream.rb
-index 069c0df..6cbe174 100644
---- a/lib/atig/stream.rb
-+++ b/lib/atig/stream.rb
-@@ -33,7 +33,7 @@ module Atig
-
- http = Net::HTTP.new(uri.host, uri.port)
- http.use_ssl = true
-- request = Net::HTTP::Get.new(uri.request_uri)
-+ request = Net::HTTP::Get.new(uri.request_uri, {"Accept-Encoding" => "identity"})
- request.oauth!(http, @access.consumer, @access)
- http.request(request) do |response|
- unless response.code == '200' then
-diff --git a/lib/atig/twitter.rb b/lib/atig/twitter.rb
-index a8d1139..229a294 100755
---- a/lib/atig/twitter.rb
-+++ b/lib/atig/twitter.rb
-@@ -1,5 +1,6 @@
- # -*- coding: utf-8 -*-
-
-+require 'timeout'
- require 'atig/basic_twitter'
- require 'atig/http'
-
-@@ -17,8 +18,8 @@ module Atig
- r = []
- cursor = -1
- 1.upto(limit) do |num|
-- options = {:cursor => cursor}.merge(opts)
-- ret = api(path, options, { :authenticate => true })
-+ options = {cursor: cursor}.merge(opts)
-+ ret = api(path, options, { authenticate: true })
- r.concat ret[name]
- cursor = ret[:next_cursor]
- break if cursor.zero?
-@@ -30,7 +31,7 @@ module Atig
- methods.each do |m|
- self.module_eval <<END
- def #{m}(path, query = {}, opts = {})
-- opts.update( :method => :#{m})
-+ opts.update( method: :#{m})
- api path, query, opts
- end
- END
-@@ -56,7 +57,7 @@ END
- end
-
- def oauth(time, req)
-- timeout(time) do
-+ Timeout.timeout(time) do
- headers = {}
- req.each{|k,v| headers[k] = v }
-
-diff --git a/lib/atig/update_checker.rb b/lib/atig/update_checker.rb
-index 5949894..1125c3b 100644
---- a/lib/atig/update_checker.rb
-+++ b/lib/atig/update_checker.rb
-@@ -3,7 +3,7 @@
- module Atig
- module UpdateChecker
- def commits
-- uri = URI("https://api.github.com/repos/mzp/atig/commits")
-+ uri = URI("https://api.github.com/repos/atig/atig/commits")
- http = Atig::Http.new
- res = http.http(uri).request http.req(:get, uri)
- JSON.parse(res.body)
-@@ -47,7 +47,7 @@ module Atig
- end.map {|i| i['commit']['message'] }
- end
- end
-- rescue Errno::ECONNREFUSED, Timeout::Error => e
-+ rescue TypeError, Errno::ECONNREFUSED, Timeout::Error
- []
- end
-
-diff --git a/lib/atig/url_escape.rb b/lib/atig/url_escape.rb
-index 65479c6..def82c1 100644
---- a/lib/atig/url_escape.rb
-+++ b/lib/atig/url_escape.rb
-@@ -1,7 +1,7 @@
- # -*- mode:ruby; coding:utf-8 -*-
-
- class Hash
-- # { :f => "v" } #=> "f=v"
-+ # { f: "v" } #=> "f=v"
- # { "f" => [1, 2] } #=> "f=1&f=2"
- # { "f" => "" } #=> "f="
- # { "f" => nil } #=> "f"
-diff --git a/lib/memory_profiler.rb b/lib/memory_profiler.rb
-index 7bfad76..51a0fec 100644
---- a/lib/memory_profiler.rb
-+++ b/lib/memory_profiler.rb
-@@ -16,7 +16,7 @@
- # each cycle. You can then use 'diff' to spot which strings were added
- # between runs.
- class MemoryProfiler
-- DEFAULTS = {:delay => 10, :string_debug => false}
-+ DEFAULTS = {delay: 10, string_debug: false}
-
- def self.start(opt={})
- opt = DEFAULTS.dup.merge(opt)
-diff --git a/requirements.txt b/requirements.txt
-deleted file mode 100644
-index 92fc677..0000000
---- a/requirements.txt
-+++ /dev/null
-@@ -1,5 +0,0 @@
--Jinja2==2.7.1
--MarkupSafe==0.18
--Pygments==1.6
--Sphinx==1.2b3
--docutils==0.11
-diff --git a/spec/command/autofix_spec.rb b/spec/command/autofix_spec.rb
-index 2c512dc..ab57a5e 100644
---- a/spec/command/autofix_spec.rb
-+++ b/spec/command/autofix_spec.rb
-@@ -10,24 +10,24 @@ describe Atig::Command::Autofix do
- @opts.autofix = true
- target = status 'hello', 'id'=>'42'
- entry = entry user(1,'mzp'), target, "entry", 1
-- @statuses.should_receive(:find_by_user).with(@me,:limit=>1).and_return([ entry ])
-+ expect(@statuses).to receive(:find_by_user).with(@me,:limit=>1).and_return([ entry ])
- end
-
- it "should post normal tweet" do
- res = status('blah blah')
-- @api.should_receive(:post).with('statuses/update', {:status=>'blah blah'}).and_return(res)
-+ expect(@api).to receive(:post).with('statuses/update', {status:'blah blah'}).and_return(res)
-
- call '#twitter', "autofix", %w(blah blah)
- end
-
- it "should delete old similar tweet" do
- res = status('hillo')
-- @api.should_receive(:post).with('statuses/update', {:status=>'hillo'}).and_return(res)
-- @api.should_receive(:post).with("statuses/destroy/42")
-- @statuses.should_receive(:remove_by_id).with(1)
-+ expect(@api).to receive(:post).with('statuses/update', {status:'hillo'}).and_return(res)
-+ expect(@api).to receive(:post).with("statuses/destroy/42")
-+ expect(@statuses).to receive(:remove_by_id).with(1)
-
-- @channel.should_receive(:notify).with("Similar update in previous. Conclude that it has error.")
-- @channel.should_receive(:notify).with("And overwrite previous as new status: hillo")
-+ expect(@channel).to receive(:notify).with("Similar update in previous. Conclude that it has error.")
-+ expect(@channel).to receive(:notify).with("And overwrite previous as new status: hillo")
-
- call '#twitter', "autofix", %w(hillo)
- end
-diff --git a/spec/command/destroy_spec.rb b/spec/command/destroy_spec.rb
-index 169819a..39a002a 100644
---- a/spec/command/destroy_spec.rb
-+++ b/spec/command/destroy_spec.rb
-@@ -12,9 +12,9 @@ describe Atig::Command::Destroy,"when status is not removed" do
-
- it "should specified other's status" do
- entry = entry user(2,'other'), status('blah blah', 'id'=>'1')
-- @statuses.stub(:find_by_tid).with('b').and_return(entry)
-+ allow(@statuses).to receive(:find_by_tid).with('b').and_return(entry)
-
-- @channel.should_receive(:notify).with("The status you specified by the ID tid is not yours.")
-+ expect(@channel).to receive(:notify).with("The status you specified by the ID tid is not yours.")
- call "#twitter","destory",%w(b)
- end
- end
-@@ -31,20 +31,20 @@ describe Atig::Command::Destroy,"when remove recently tweet" do
-
- stub_status(:find_by_tid,'a' => entry)
- stub_status(:find_by_sid,'mzp:a' => entry)
-- stub_status(:find_by_screen_name,'mzp' => [ entry ], :default=>[])
-+ stub_status(:find_by_screen_name,'mzp' => [ entry ], default:[])
-
- # api
-- @api.should_receive(:post).with("statuses/destroy/1")
-+ expect(@api).to receive(:post).with("statuses/destroy/1")
-
- # notice
-- @channel.should_receive(:notify).with("Destroyed: blah blah")
-+ expect(@channel).to receive(:notify).with("Destroyed: blah blah")
-
- # update topics
- new_entry = entry @me, status('foo', 'id'=>'2')
-- @gateway.should_receive(:topic).with(new_entry)
-+ expect(@gateway).to receive(:topic).with(new_entry)
-
-- @statuses.should_receive(:remove_by_id).with(1).and_return{
-- @statuses.should_receive(:find_by_screen_name).with(@me.screen_name,:limit=>1).and_return{
-+ expect(@statuses).to receive(:remove_by_id).with(1){
-+ expect(@statuses).to receive(:find_by_screen_name).with(@me.screen_name,:limit=>1){
- [ new_entry ]
- }
- }
-@@ -75,16 +75,16 @@ describe Atig::Command::Destroy,"when remove old tweet" do
-
- stub_status(:find_by_tid,'a' => entry)
- stub_status(:find_by_sid,'mzp:a' => entry)
-- stub_status(:find_by_screen_name, @db.me.screen_name => [ entry ], :default=>[])
-+ stub_status(:find_by_screen_name, @db.me.screen_name => [ entry ], default:[])
-
- # api
-- @api.should_receive(:post).with("statuses/destroy/1")
-+ expect(@api).to receive(:post).with("statuses/destroy/1")
-
- # notice
-- @channel.should_receive(:notify).with("Destroyed: blah blah")
-+ expect(@channel).to receive(:notify).with("Destroyed: blah blah")
-
- # update topics
-- @statuses.should_receive(:remove_by_id).with(1)
-+ expect(@statuses).to receive(:remove_by_id).with(1)
- end
-
- it "should specified by tid" do
-diff --git a/spec/command/dm_spec.rb b/spec/command/dm_spec.rb
-index f06448e..ac761a0 100644
---- a/spec/command/dm_spec.rb
-+++ b/spec/command/dm_spec.rb
-@@ -10,18 +10,18 @@ describe Atig::Command::Dm do
- end
-
- it "should have '/me dm' name" do
-- @gateway.names.should == ['d', 'dm','dms']
-+ expect(@gateway.names).to eq(['d', 'dm','dms'])
- end
-
- it "should post the status by API" do
-- @api.should_receive(:post).with('direct_messages/new',
-- {:screen_name => 'mzp', :text => 'blah blah'})
-- @channel.should_receive(:notify).with("Sent message to mzp: blah blah")
-+ expect(@api).to receive(:post).with('direct_messages/new',
-+ {screen_name: 'mzp', text: 'blah blah'})
-+ expect(@channel).to receive(:notify).with("Sent message to mzp: blah blah")
- call '#twitter', "dm", %w(mzp blah blah)
- end
-
- it "should post the status by API" do
-- @channel.should_receive(:notify).with("/me dm <SCREEN_NAME> blah blah")
-+ expect(@channel).to receive(:notify).with("/me dm <SCREEN_NAME> blah blah")
- call '#twitter', "dm", %w()
- end
- end
-diff --git a/spec/command/favorite_spec.rb b/spec/command/favorite_spec.rb
-index a01ceed..3bec12e 100644
---- a/spec/command/favorite_spec.rb
-+++ b/spec/command/favorite_spec.rb
-@@ -14,40 +14,40 @@ describe Atig::Command::Favorite do
-
- stub_status(:find_by_tid,'a' => entry)
- stub_status(:find_by_sid,'mzp:a' => entry)
-- stub_status(:find_by_screen_name,'mzp' => [ entry ], :default=>[])
-+ stub_status(:find_by_screen_name,'mzp' => [ entry ], default:[])
- end
-
- it "should post fav by tid" do
-- @api.should_receive(:post).with("favorites/create", {:id => "1"})
-- @channel.should_receive(:notify).with("FAV: mzp: blah blah")
-+ expect(@api).to receive(:post).with("favorites/create", {id: "1"})
-+ expect(@channel).to receive(:notify).with("FAV: mzp: blah blah")
-
- call "#twitter","fav",%w(a)
- end
-
- it "should post fav by sid" do
-- @api.should_receive(:post).with("favorites/create", {:id => "1"})
-- @channel.should_receive(:notify).with("FAV: mzp: blah blah")
-+ expect(@api).to receive(:post).with("favorites/create", {id: "1"})
-+ expect(@channel).to receive(:notify).with("FAV: mzp: blah blah")
-
- call "#twitter","fav",%w(mzp:a)
- end
-
- it "should post fav by screen name" do
-- @api.should_receive(:post).with("favorites/create", {:id => "1"})
-- @channel.should_receive(:notify).with("FAV: mzp: blah blah")
-+ expect(@api).to receive(:post).with("favorites/create", {id: "1"})
-+ expect(@channel).to receive(:notify).with("FAV: mzp: blah blah")
-
- call "#twitter","fav",%w(mzp)
- end
-
- it "should post fav by screen name with at" do
-- @api.should_receive(:post).with("favorites/create", {:id => "1"})
-- @channel.should_receive(:notify).with("FAV: mzp: blah blah")
-+ expect(@api).to receive(:post).with("favorites/create", {id: "1"})
-+ expect(@channel).to receive(:notify).with("FAV: mzp: blah blah")
-
- call "#twitter","fav",%w(@mzp)
- end
-
- it "should post unfav" do
-- @api.should_receive(:post).with("favorites/destroy", {:id => "1"})
-- @channel.should_receive(:notify).with("UNFAV: mzp: blah blah")
-+ expect(@api).to receive(:post).with("favorites/destroy", {id: "1"})
-+ expect(@channel).to receive(:notify).with("UNFAV: mzp: blah blah")
-
- call "#twitter","unfav",%w(a)
- end
-diff --git a/spec/command/limit_spec.rb b/spec/command/limit_spec.rb
-index 5de9de8..3907aa4 100644
---- a/spec/command/limit_spec.rb
-+++ b/spec/command/limit_spec.rb
-@@ -9,18 +9,18 @@ describe Atig::Command::Limit do
- before do
- @reset = ::Time.utc(2010,9,25,8,24,12)
- @command = init Atig::Command::Limit
-- @api.stub(:limit).and_return(150)
-- @api.stub(:remain).and_return(148)
-- @api.stub(:reset).and_return(@reset)
-+ allow(@api).to receive(:limit).and_return(150)
-+ allow(@api).to receive(:remain).and_return(148)
-+ allow(@api).to receive(:reset).and_return(@reset)
- end
-
- it "should provide limit command" do
-- @gateway.names.should == ['rls','limit','limits']
-+ expect(@gateway.names).to eq(['rls','limit','limits'])
- end
-
- it "should show limit" do
-- @channel.should_receive(:notify).with("148 / 150 (reset at 2010-09-25 08:24:12)")
-+ expect(@channel).to receive(:notify).with("148 / 150 (reset at 2010-09-25 08:24:12)")
- call '#twitter', 'limit', []
-- @gateway.notified.should == '#twitter'
-+ expect(@gateway.notified).to eq('#twitter')
- end
- end
-diff --git a/spec/command/location_spec.rb b/spec/command/location_spec.rb
-index 595dd1f..48d382d 100644
---- a/spec/command/location_spec.rb
-+++ b/spec/command/location_spec.rb
-@@ -11,14 +11,14 @@ describe Atig::Command::Location do
- end
-
- it "should update location" do
-- @api.should_receive(:post).with('account/update_profile',:location=>'some place')
-- @channel.should_receive(:notify).with("You are in some place now.")
-+ expect(@api).to receive(:post).with('account/update_profile',:location=>'some place')
-+ expect(@channel).to receive(:notify).with("You are in some place now.")
- call '#twitter','location',%w(some place)
- end
-
- it "should reset location" do
-- @api.should_receive(:post).with('account/update_profile',:location=>'')
-- @channel.should_receive(:notify).with("You are nowhere now.")
-+ expect(@api).to receive(:post).with('account/update_profile',:location=>'')
-+ expect(@channel).to receive(:notify).with("You are nowhere now.")
- call '#twitter','location',%w()
- end
- end
-diff --git a/spec/command/name_spec.rb b/spec/command/name_spec.rb
-index cd0acb3..e7cf18a 100644
---- a/spec/command/name_spec.rb
-+++ b/spec/command/name_spec.rb
-@@ -11,8 +11,8 @@ describe Atig::Command::Name do
- end
-
- it "should update name" do
-- @api.should_receive(:post).with('account/update_profile',:name=>'mzp')
-- @channel.should_receive(:notify).with("You are named mzp.")
-+ expect(@api).to receive(:post).with('account/update_profile',:name=>'mzp')
-+ expect(@channel).to receive(:notify).with("You are named mzp.")
- call '#twitter', 'name', %w(mzp)
- end
- end
-diff --git a/spec/command/option_spec.rb b/spec/command/option_spec.rb
-index 8a9c9d7..8d764b1 100644
---- a/spec/command/option_spec.rb
-+++ b/spec/command/option_spec.rb
-@@ -11,7 +11,7 @@ describe Atig::Command::Option do
- end
-
- it "should provide option command" do
-- @command.command_name.should == %w(opt opts option options)
-+ expect(@command.command_name).to eq(%w(opt opts option options))
- end
- end
-
-@@ -24,20 +24,20 @@ describe Atig::Command::Option, 'when have many property' do
- @opts.foo2 = 42
- @opts.foo3 = 42.1
-
-- @opts.stub(:foo1=)
-- @opts.stub(:foo2=)
-- @opts.stub(:foo3=)
-+ allow(@opts).to receive(:foo1=)
-+ allow(@opts).to receive(:foo2=)
-+ allow(@opts).to receive(:foo3=)
- end
-
- it "should list up values" do
- xs = []
-- @channel.stub(:notify){|x| xs << x}
-+ allow(@channel).to receive(:notify){|x| xs << x}
- call '#twitter', 'opt', %w()
-- xs.should == [
-+ expect(xs).to eq([
- "foo1 => true",
- "foo2 => 42",
- "foo3 => 42.1",
-- ]
-+ ])
- end
- end
-
-@@ -47,19 +47,19 @@ describe Atig::Command::Option, 'when have bool property' do
-
- before do
- @command = init Atig::Command::Option
-- @opts.stub(:foo).and_return true
-- @opts.stub(:foo=){|v| @value = v }
-- @channel.stub(:notify)
-+ allow(@opts).to receive(:foo).and_return true
-+ allow(@opts).to receive(:foo=){|v| @value = v }
-+ allow(@channel).to receive(:notify)
- end
-
- it "should show the value" do
-- @channel.should_receive(:notify).with("foo => true")
-+ expect(@channel).to receive(:notify).with("foo => true")
- call '#twitter', 'opt', %w(foo)
- end
-
- it "should update the value" do
- call '#twitter', 'opt', %w(foo false)
-- @value.should be_false
-+ expect(@value).to be_falsey
- end
- end
-
-@@ -68,19 +68,19 @@ describe Atig::Command::Option, 'when have int property' do
-
- before do
- @command = init Atig::Command::Option
-- @opts.stub(:foo).and_return 42
-- @opts.stub(:foo=){|v| @value = v }
-- @channel.stub(:notify)
-+ allow(@opts).to receive(:foo).and_return 42
-+ allow(@opts).to receive(:foo=){|v| @value = v }
-+ allow(@channel).to receive(:notify)
- end
-
- it "should show the value" do
-- @channel.should_receive(:notify).with("foo => 42")
-+ expect(@channel).to receive(:notify).with("foo => 42")
- call '#twitter', 'opt', %w(foo)
- end
-
- it "should update the value" do
- call '#twitter', 'opt', %w(foo 42)
-- @value.should == 42
-+ expect(@value).to eq(42)
- end
- end
-
-@@ -89,19 +89,19 @@ describe Atig::Command::Option, 'when have float property' do
-
- before do
- @command = init Atig::Command::Option
-- @opts.stub(:foo).and_return 1.23
-- @opts.stub(:foo=){|v| @value = v }
-- @channel.stub(:notify)
-+ allow(@opts).to receive(:foo).and_return 1.23
-+ allow(@opts).to receive(:foo=){|v| @value = v }
-+ allow(@channel).to receive(:notify)
- end
-
- it "should show the value" do
-- @channel.should_receive(:notify).with("foo => 1.23")
-+ expect(@channel).to receive(:notify).with("foo => 1.23")
- call '#twitter', 'opt', %w(foo)
- end
-
- it "should update the value" do
- call '#twitter', 'opt', %w(foo 1.24)
-- @value.should == 1.24
-+ expect(@value).to eq(1.24)
- end
- end
-
-@@ -110,23 +110,23 @@ describe Atig::Command::Option, 'when have string property' do
-
- before do
- @command = init Atig::Command::Option
-- @opts.stub(:foo).and_return "bar"
-- @opts.stub(:foo=){|v| @value = v }
-- @channel.stub(:notify)
-+ allow(@opts).to receive(:foo).and_return "bar"
-+ allow(@opts).to receive(:foo=){|v| @value = v }
-+ allow(@channel).to receive(:notify)
- end
-
- it "should show the value" do
-- @channel.should_receive(:notify).with("foo => bar")
-+ expect(@channel).to receive(:notify).with("foo => bar")
- call '#twitter', 'opt', %w(foo)
- end
-
- it "should update the value" do
- call '#twitter', 'opt', %w(foo baz)
-- @value.should == 'baz'
-+ expect(@value).to eq('baz')
- end
-
- it "should update the value" do
- call '#twitter', 'opt', %w(foo blah Blah)
-- @value.should == 'blah Blah'
-+ expect(@value).to eq('blah Blah')
- end
- end
-diff --git a/spec/command/refresh_spec.rb b/spec/command/refresh_spec.rb
-index 2ccdd1d..733d84c 100644
---- a/spec/command/refresh_spec.rb
-+++ b/spec/command/refresh_spec.rb
-@@ -12,9 +12,9 @@ describe Atig::Command::Refresh do
- end
-
- it "should refresh all" do
-- @followings.should_receive(:invalidate)
-- @lists.should_receive(:invalidate).with(:all)
-- @channel.should_receive(:notify).with("refresh followings/lists...")
-+ expect(@followings).to receive(:invalidate)
-+ expect(@lists).to receive(:invalidate).with(:all)
-+ expect(@channel).to receive(:notify).with("refresh followings/lists...")
-
- call '#twitter','refresh', []
- end
-diff --git a/spec/command/reply_spec.rb b/spec/command/reply_spec.rb
-index f893403..05f456c 100644
---- a/spec/command/reply_spec.rb
-+++ b/spec/command/reply_spec.rb
-@@ -14,65 +14,65 @@ describe Atig::Command::Reply do
-
- stub_status(:find_by_tid,'a' => entry)
- stub_status(:find_by_sid,'mzp:a' => entry)
-- stub_status(:find_by_screen_name,'mzp' => [ entry ], :default => [])
-+ stub_status(:find_by_screen_name,'mzp' => [ entry ], default: [])
- end
-
- it "should have '/me status' name" do
-- @gateway.names.should == %w(mention re reply rp)
-+ expect(@gateway.names).to eq(%w(mention re reply rp))
- end
-
- it "should post the status" do
-- @api.should_receive(:post).
-- with('statuses/update', {:status=>'abc @mzp', :in_reply_to_status_id=>'1'}).
-+ expect(@api).to receive(:post).
-+ with('statuses/update', {status:'abc @mzp', in_reply_to_status_id:'1'}).
- and_return(@res)
-
- call '#twitter', "reply", %w(a abc @mzp)
-
-- @gateway.updated.should == [ @res, '#twitter', 'In reply to mzp: blah blah' ]
-- @gateway.filtered.should == { :status => 'abc @mzp', :in_reply_to_status_id=>'1'}
-+ expect(@gateway.updated).to eq([ @res, '#twitter', 'In reply to mzp: blah blah' ])
-+ expect(@gateway.filtered).to eq({ status: 'abc @mzp', in_reply_to_status_id:'1'})
- end
-
- it "should post the status by sid" do
-- @api.should_receive(:post).
-- with('statuses/update', {:status=>'abc @mzp', :in_reply_to_status_id=>'1'}).
-+ expect(@api).to receive(:post).
-+ with('statuses/update', {status:'abc @mzp', in_reply_to_status_id:'1'}).
- and_return(@res)
-
- call '#twitter', "reply", %w(mzp:a abc @mzp)
-
-- @gateway.updated.should == [ @res, '#twitter', 'In reply to mzp: blah blah' ]
-- @gateway.filtered.should == { :status => 'abc @mzp', :in_reply_to_status_id=>'1'}
-+ expect(@gateway.updated).to eq([ @res, '#twitter', 'In reply to mzp: blah blah' ])
-+ expect(@gateway.filtered).to eq({ status: 'abc @mzp', in_reply_to_status_id:'1'})
- end
-
- it "should post the status by API" do
-- @api.should_receive(:post).
-- with('statuses/update', {:status=>'abc @mzp', :in_reply_to_status_id=>'1'}).
-+ expect(@api).to receive(:post).
-+ with('statuses/update', {status:'abc @mzp', in_reply_to_status_id:'1'}).
- and_return(@res)
-
- call '#twitter', "reply", %w(a abc @mzp)
-
-- @gateway.updated.should == [ @res, '#twitter', 'In reply to mzp: blah blah' ]
-- @gateway.filtered.should == { :status => 'abc @mzp', :in_reply_to_status_id=>'1'}
-+ expect(@gateway.updated).to eq([ @res, '#twitter', 'In reply to mzp: blah blah' ])
-+ expect(@gateway.filtered).to eq({ status: 'abc @mzp', in_reply_to_status_id:'1'})
- end
-
- it "should post the status with screen_name" do
-- @api.should_receive(:post).
-- with('statuses/update', {:status=>'abc @mzp', :in_reply_to_status_id=>'1'}).
-+ expect(@api).to receive(:post).
-+ with('statuses/update', {status:'abc @mzp', in_reply_to_status_id:'1'}).
- and_return(@res)
-
- call '#twitter', "reply", %w(mzp abc @mzp)
-
-- @gateway.updated.should == [ @res, '#twitter', 'In reply to mzp: blah blah' ]
-- @gateway.filtered.should == { :status => 'abc @mzp', :in_reply_to_status_id=>'1'}
-+ expect(@gateway.updated).to eq([ @res, '#twitter', 'In reply to mzp: blah blah' ])
-+ expect(@gateway.filtered).to eq({ status: 'abc @mzp', in_reply_to_status_id:'1'})
- end
-
- it "should add screen name as prefix" do
-- @api.should_receive(:post).
-- with('statuses/update', {:status=>'@mzp mzp', :in_reply_to_status_id=>'1'}).
-+ expect(@api).to receive(:post).
-+ with('statuses/update', {status:'@mzp mzp', in_reply_to_status_id:'1'}).
- and_return(@res)
-
- call '#twitter', "reply", %w(a mzp)
-
-- @gateway.updated.should == [ @res, '#twitter', 'In reply to mzp: blah blah' ]
-- @gateway.filtered.should == { :status => '@mzp mzp', :in_reply_to_status_id=>'1'}
-+ expect(@gateway.updated).to eq([ @res, '#twitter', 'In reply to mzp: blah blah' ])
-+ expect(@gateway.filtered).to eq({ status: '@mzp mzp', in_reply_to_status_id:'1'})
- end
- end
-diff --git a/spec/command/retweet_spec.rb b/spec/command/retweet_spec.rb
-index d3f31bf..ab18739 100644
---- a/spec/command/retweet_spec.rb
-+++ b/spec/command/retweet_spec.rb
-@@ -7,10 +7,10 @@ describe Atig::Command::Retweet do
- include CommandHelper
- before do
- bitly = double("Bitly")
-- bitly.stub(:shorten).and_return{|s|
-+ allow(bitly).to receive(:shorten){|s|
- "[#{s}]"
- }
-- Atig::Bitly.stub(:no_login).and_return(bitly)
-+ allow(Atig::Bitly).to receive(:no_login).and_return(bitly)
-
- @command = init Atig::Command::Retweet
-
-@@ -20,46 +20,46 @@ describe Atig::Command::Retweet do
-
- stub_status(:find_by_tid,'a' => entry)
- stub_status(:find_by_sid,'mzp:a' => entry)
-- stub_status(:find_by_screen_name,'mzp' => [ entry ], :default=>[])
-+ stub_status(:find_by_screen_name,'mzp' => [ entry ], default:[])
- end
-
- it "should have command name" do
-- @gateway.names.should == %w(ort rt retweet qt)
-+ expect(@gateway.names).to eq(%w(ort rt retweet qt))
- end
-
- it "should post official retweet without comment" do
-- @api.should_receive(:post).with('statuses/retweet/1').and_return(@res)
-+ expect(@api).to receive(:post).with('statuses/retweet/1').and_return(@res)
- call "#twitter", 'rt', %w(a)
-- @gateway.updated.should == [ @res, '#twitter', 'RT to mzp: blah blah blah blah blah blah blah blah' ]
-+ expect(@gateway.updated).to eq([ @res, '#twitter', 'RT to mzp: blah blah blah blah blah blah blah blah' ])
- end
-
- it "should post official retweet without comment by screen name" do
-- @api.should_receive(:post).with('statuses/retweet/1').and_return(@res)
-+ expect(@api).to receive(:post).with('statuses/retweet/1').and_return(@res)
- call "#twitter", 'rt', %w(mzp)
-- @gateway.updated.should == [ @res, '#twitter', 'RT to mzp: blah blah blah blah blah blah blah blah' ]
-+ expect(@gateway.updated).to eq([ @res, '#twitter', 'RT to mzp: blah blah blah blah blah blah blah blah' ])
- end
-
- it "should post official retweet without comment by sid" do
-- @api.should_receive(:post).with('statuses/retweet/1').and_return(@res)
-+ expect(@api).to receive(:post).with('statuses/retweet/1').and_return(@res)
- call "#twitter", 'rt', %w(mzp:a)
-- @gateway.updated.should == [ @res, '#twitter', 'RT to mzp: blah blah blah blah blah blah blah blah' ]
-+ expect(@gateway.updated).to eq([ @res, '#twitter', 'RT to mzp: blah blah blah blah blah blah blah blah' ])
- end
-
- it "should post un-official retweet with comment" do
-- @api.should_receive(:post).with('statuses/update',:status=> "aaa RT @mzp: blah blah blah blah blah blah blah blah").and_return(@res)
-+ expect(@api).to receive(:post).with('statuses/update',:status=> "aaa RT @mzp: blah blah blah blah blah blah blah blah").and_return(@res)
- call "#twitter", 'rt', %w(a aaa)
-- @gateway.updated.should == [ @res, '#twitter', 'RT to mzp: blah blah blah blah blah blah blah blah' ]
-+ expect(@gateway.updated).to eq([ @res, '#twitter', 'RT to mzp: blah blah blah blah blah blah blah blah' ])
- end
-
- it "should post un-official retweet with comment by screen name" do
-- @api.should_receive(:post).with('statuses/update',:status=> "aaa RT @mzp: blah blah blah blah blah blah blah blah").and_return(@res)
-+ expect(@api).to receive(:post).with('statuses/update',:status=> "aaa RT @mzp: blah blah blah blah blah blah blah blah").and_return(@res)
- call "#twitter", 'rt', %w(mzp aaa)
-- @gateway.updated.should == [ @res, '#twitter', 'RT to mzp: blah blah blah blah blah blah blah blah' ]
-+ expect(@gateway.updated).to eq([ @res, '#twitter', 'RT to mzp: blah blah blah blah blah blah blah blah' ])
- end
-
- it "should post un-official retweet with long comment" do
-- @api.should_receive(:post).with('statuses/update',:status=> "#{'a' * 95} RT @mzp: b [http://twitter.com/mzp/status/1]").and_return(@res)
-- call "#twitter", 'rt', ['a', 'a' * 95 ]
-- @gateway.updated.should == [ @res, '#twitter', 'RT to mzp: blah blah blah blah blah blah blah blah' ]
-+ expect(@api).to receive(:post).with('statuses/update',:status=> "#{'a' * 94} RT @mzp: b [https://twitter.com/mzp/status/1]").and_return(@res)
-+ call "#twitter", 'rt', ['a', 'a' * 94 ]
-+ expect(@gateway.updated).to eq([ @res, '#twitter', 'RT to mzp: blah blah blah blah blah blah blah blah' ])
- end
- end
-diff --git a/spec/command/spam_spec.rb b/spec/command/spam_spec.rb
-index f1ed422..63bb854 100644
---- a/spec/command/spam_spec.rb
-+++ b/spec/command/spam_spec.rb
-@@ -10,17 +10,17 @@ describe Atig::Command::Spam do
- end
-
- it "はspamコマンドを提供する" do
-- @gateway.names.should == %w(spam SPAM)
-+ expect(@gateway.names).to eq(%w(spam SPAM))
- end
-
- it "は指定されたscreen_nameを通報する" do
- user = user(1,'examplespammer')
-- @api.
-- should_receive(:post).
-+ expect(@api).
-+ to receive(:post).
- with('report_spam',:screen_name=> 'examplespammer').
- and_return(user)
-
-- @channel.should_receive(:notify).with("Report examplespammer as SPAMMER")
-+ expect(@channel).to receive(:notify).with("Report examplespammer as SPAMMER")
- call "#twitter", 'spam', %w(examplespammer)
- end
- end
-diff --git a/spec/command/status_spec.rb b/spec/command/status_spec.rb
-index 7e25155..98056e8 100644
---- a/spec/command/status_spec.rb
-+++ b/spec/command/status_spec.rb
-@@ -10,56 +10,56 @@ describe Atig::Command::Status do
- end
-
- it "should have '/me status' name" do
-- @gateway.names.should == ['status']
-+ expect(@gateway.names).to eq(['status'])
- end
-
- it "should post the status by API" do
- res = status('blah blah')
-- @statuses.should_receive(:find_by_user).with(@me,:limit=>1).and_return(nil)
-- @api.should_receive(:post).with('statuses/update', {:status=>'blah blah'}).and_return(res)
-+ expect(@statuses).to receive(:find_by_user).with(@me,:limit=>1).and_return(nil)
-+ expect(@api).to receive(:post).with('statuses/update', {status:'blah blah'}).and_return(res)
-
- call '#twitter', "status", %w(blah blah)
-
-- @gateway.updated.should == [ res, '#twitter' ]
-- @gateway.filtered.should == { :status => 'blah blah' }
-+ expect(@gateway.updated).to eq([ res, '#twitter' ])
-+ expect(@gateway.filtered).to eq({ status: 'blah blah' })
- end
-
- it "should post with japanese language" do
- res = status("あ"*140)
-- @statuses.should_receive(:find_by_user).with(@me,:limit=>1).and_return(nil)
-- @api.should_receive(:post).with('statuses/update', {:status=>"あ"*140}).and_return(res)
-+ expect(@statuses).to receive(:find_by_user).with(@me,:limit=>1).and_return(nil)
-+ expect(@api).to receive(:post).with('statuses/update', {status:"あ"*140}).and_return(res)
-
- call '#twitter', "status", ["あ" * 140]
-
-- @gateway.updated.should == [ res, '#twitter' ]
-- @gateway.filtered.should == { :status => "あ" * 140 }
-+ expect(@gateway.updated).to eq([ res, '#twitter' ])
-+ expect(@gateway.filtered).to eq({ status: "あ" * 140 })
- end
-
- it "should post the status even if has long URL" do
- res = status("https://www.google.co.jp/search?q=%E3%83%AB%E3%83%93%E3%83%BC%E3%82%92%E7%94%A8%E3%81%84%E3%81%9F%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E9%96%8B%E7%99%BA&safe=off")
-- @statuses.should_receive(:find_by_user).with(@me,:limit=>1).and_return(nil)
-- @api.should_receive(:post).with('statuses/update', {:status=>'https://www.google.co.jp/search?q=%E3%83%AB%E3%83%93%E3%83%BC%E3%82%92%E7%94%A8%E3%81%84%E3%81%9F%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E9%96%8B%E7%99%BA&safe=off'}).and_return(res)
-+ expect(@statuses).to receive(:find_by_user).with(@me,:limit=>1).and_return(nil)
-+ expect(@api).to receive(:post).with('statuses/update', {status:'https://www.google.co.jp/search?q=%E3%83%AB%E3%83%93%E3%83%BC%E3%82%92%E7%94%A8%E3%81%84%E3%81%9F%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E9%96%8B%E7%99%BA&safe=off'}).and_return(res)
-
- call '#twitter', "status", ['https://www.google.co.jp/search?q=%E3%83%AB%E3%83%93%E3%83%BC%E3%82%92%E7%94%A8%E3%81%84%E3%81%9F%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E9%96%8B%E7%99%BA&safe=off']
-
-- @gateway.updated.should == [ res, '#twitter' ]
-- @gateway.filtered.should == { :status => 'https://www.google.co.jp/search?q=%E3%83%AB%E3%83%93%E3%83%BC%E3%82%92%E7%94%A8%E3%81%84%E3%81%9F%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E9%96%8B%E7%99%BA&safe=off'}
-+ expect(@gateway.updated).to eq([ res, '#twitter' ])
-+ expect(@gateway.filtered).to eq({ status: 'https://www.google.co.jp/search?q=%E3%83%AB%E3%83%93%E3%83%BC%E3%82%92%E7%94%A8%E3%81%84%E3%81%9F%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E9%96%8B%E7%99%BA&safe=off'})
- end
-
- it "should not post same post" do
- e = entry user(1,'mzp'), status('blah blah')
-- @statuses.should_receive(:find_by_user).with(@me,:limit=>1).and_return([ e ] )
-- @channel.should_receive(:notify).with("You can't submit the same status twice in a row.")
-+ expect(@statuses).to receive(:find_by_user).with(@me,:limit=>1).and_return([ e ] )
-+ expect(@channel).to receive(:notify).with("You can't submit the same status twice in a row.")
-
- call '#twitter', "status", %w(blah blah)
-- @gateway.notified.should == '#twitter'
-+ expect(@gateway.notified).to eq('#twitter')
- end
-
- it "should not post over 140" do
-- @statuses.should_receive(:find_by_user).with(@me,:limit=>1).and_return(nil)
-- @channel.should_receive(:notify).with("You can't submit the status over 140 chars")
-+ expect(@statuses).to receive(:find_by_user).with(@me,:limit=>1).and_return(nil)
-+ expect(@channel).to receive(:notify).with("You can't submit the status over 140 chars")
-
- call '#twitter', "status", [ 'a' * 141 ]
-- @gateway.notified.should == '#twitter'
-+ expect(@gateway.notified).to eq('#twitter')
- end
- end
-diff --git a/spec/command/thread_spec.rb b/spec/command/thread_spec.rb
-index adde583..0ce0340 100644
---- a/spec/command/thread_spec.rb
-+++ b/spec/command/thread_spec.rb
-@@ -16,75 +16,75 @@ describe Atig::Command::Thread do
- ]
- @command = init Atig::Command::Thread
- @messages = []
-- @channel.stub(:message).and_return{|entry,_|
-+ allow(@channel).to receive(:message){|entry,_|
- @messages.unshift entry
- }
-- @statuses.stub(:find_by_status_id).with(anything).and_return{|id|
-+ allow(@statuses).to receive(:find_by_status_id).with(anything){|id|
- @entries[id.to_i]
- }
- end
-
- it "should provide thread command" do
-- @gateway.names.should == %w( thread )
-+ expect(@gateway.names).to eq(%w( thread ))
- end
-
- it "should show the tweet" do
-- @statuses.should_receive(:find_by_tid).with('a').and_return(@entries[0])
-+ expect(@statuses).to receive(:find_by_tid).with('a').and_return(@entries[0])
-
- call "#twitter","thread",%w(a)
-
-- @messages.should == [ @entries[0] ]
-+ expect(@messages).to eq([ @entries[0] ])
- end
-
- it "should chain the tweets" do
-- @statuses.should_receive(:find_by_tid).with('a').and_return(@entries[1])
-+ expect(@statuses).to receive(:find_by_tid).with('a').and_return(@entries[1])
-
- call "#twitter","thread",%w(a)
-
-- @messages.should == @entries[1..3]
-+ expect(@messages).to eq(@entries[1..3])
- end
-
- it "should chain the tweets by screen name" do
-- @statuses.should_receive(:find_by_tid).with('mzp').and_return(nil)
-- @statuses.should_receive(:find_by_sid).with('mzp').and_return(nil)
-- @statuses.should_receive(:find_by_screen_name).with('mzp',:limit=>1).and_return([ @entries[1] ])
-+ expect(@statuses).to receive(:find_by_tid).with('mzp').and_return(nil)
-+ expect(@statuses).to receive(:find_by_sid).with('mzp').and_return(nil)
-+ expect(@statuses).to receive(:find_by_screen_name).with('mzp',:limit=>1).and_return([ @entries[1] ])
-
- call "#twitter","thread",%w(mzp)
-
-- @messages.should == @entries[1..3]
-+ expect(@messages).to eq(@entries[1..3])
- end
-
- it "should chain the tweets by sid" do
-- @statuses.should_receive(:find_by_tid).with('mzp:a').and_return(nil)
-- @statuses.should_receive(:find_by_sid).with('mzp:a').and_return(@entries[1])
-+ expect(@statuses).to receive(:find_by_tid).with('mzp:a').and_return(nil)
-+ expect(@statuses).to receive(:find_by_sid).with('mzp:a').and_return(@entries[1])
-
- call "#twitter","thread",%w(mzp:a)
-
-- @messages.should == @entries[1..3]
-+ expect(@messages).to eq(@entries[1..3])
- end
-
-
-
- it "should chain the tweets with limit" do
-- @statuses.should_receive(:find_by_tid).with('a').and_return(@entries[1])
-+ expect(@statuses).to receive(:find_by_tid).with('a').and_return(@entries[1])
-
- call "#twitter","thread",%w(a 2)
-
-- @messages.should == @entries[1..2]
-+ expect(@messages).to eq(@entries[1..2])
- end
-
- it "should get new tweets" do
-- @statuses.should_receive(:find_by_tid).with('a').and_return(@entries[4])
-+ expect(@statuses).to receive(:find_by_tid).with('a').and_return(@entries[4])
- user = user 1, 'mzp'
- status = status '','user'=>user
- entry = entry user,status,'new-entry'
-- @statuses.should_receive(:add).with(:status => status, :user => user, :source=>:thread).and_return{
-+ expect(@statuses).to receive(:add).with(status: status, user: user, source: :thread){
- @entries << entry
- }
-- @api.should_receive(:get).with('statuses/show/5').and_return(status)
-+ expect(@api).to receive(:get).with('statuses/show/5').and_return(status)
-
- call "#twitter","thread",%w(a)
-
-- @messages.should == [@entries[4], entry]
-+ expect(@messages).to eq([@entries[4], entry])
- end
- end
-diff --git a/spec/command/time_spec.rb b/spec/command/time_spec.rb
-index 5c46b32..02d56e6 100644
---- a/spec/command/time_spec.rb
-+++ b/spec/command/time_spec.rb
-@@ -8,8 +8,8 @@ describe Atig::Command::Time do
-
- def user(offset, tz)
- u = double "user-#{offset}"
-- u.stub(:utc_offset).and_return(offset)
-- u.stub(:time_zone).and_return(tz)
-+ allow(u).to receive(:utc_offset).and_return(offset)
-+ allow(u).to receive(:time_zone).and_return(tz)
- u
- end
-
-@@ -19,33 +19,31 @@ describe Atig::Command::Time do
- end
-
- it "should provide time command" do
-- @gateway.names.should == ['time']
-+ expect(@gateway.names).to eq(['time'])
- end
-
- it "should show offset time on DB" do
-- ::Time.should_receive(:now).and_return(Time.at(0))
-- @followings.should_receive(:find_by_screen_name).with('mzp').and_return(@user)
-- @channel.
-- should_receive(:message).
-- with(anything, Net::IRC::Constants::NOTICE).
-- and_return{|s,_|
-- s.status.text.should == "\x01TIME :1970-01-01T01:01:01+01:01 (Tokyo)\x01"
-+ expect(::Time).to receive(:now).and_return(Time.at(0))
-+ expect(@followings).to receive(:find_by_screen_name).with('mzp').and_return(@user)
-+ expect(@channel).
-+ to receive(:message).
-+ with(anything, Net::IRC::Constants::NOTICE){|s,_|
-+ expect(s.status.text).to eq("\x01TIME :1970-01-01T01:01:01+01:01 (Tokyo)\x01")
- }
- call '#twitter', 'time', ['mzp']
-- @gateway.notified.should == '#twitter'
-+ expect(@gateway.notified).to eq('#twitter')
- end
-
- it "should show offset time via API" do
-- ::Time.should_receive(:now).and_return(Time.at(0))
-- @followings.should_receive(:find_by_screen_name).with('mzp').and_return(nil)
-- @api.should_receive(:get).with('users/show', :screen_name=>'mzp').and_return(@user)
-- @channel.
-- should_receive(:message).
-- with(anything, Net::IRC::Constants::NOTICE).
-- and_return{|s,_|
-- s.status.text.should == "\x01TIME :1970-01-01T01:01:01+01:01 (Tokyo)\x01"
-+ expect(::Time).to receive(:now).and_return(Time.at(0))
-+ expect(@followings).to receive(:find_by_screen_name).with('mzp').and_return(nil)
-+ expect(@api).to receive(:get).with('users/show', screen_name:'mzp').and_return(@user)
-+ expect(@channel).
-+ to receive(:message).
-+ with(anything, Net::IRC::Constants::NOTICE){|s,_|
-+ expect(s.status.text).to eq("\x01TIME :1970-01-01T01:01:01+01:01 (Tokyo)\x01")
- }
- call '#twitter', 'time', ['mzp']
-- @gateway.notified.should == '#twitter'
-+ expect(@gateway.notified).to eq('#twitter')
- end
- end
-diff --git a/spec/command/uptime_spec.rb b/spec/command/uptime_spec.rb
-index 0d0a457..b9c78c2 100644
---- a/spec/command/uptime_spec.rb
-+++ b/spec/command/uptime_spec.rb
-@@ -7,48 +7,48 @@ describe Atig::Command::Uptime do
- include CommandHelper
-
- before do
-- ::Time.should_receive(:now).and_return(::Time.at(0))
-+ expect(::Time).to receive(:now).and_return(::Time.at(0))
- @command = init Atig::Command::Uptime
- end
-
- it "should register uptime command" do
-- @gateway.names.should == ['uptime']
-+ expect(@gateway.names).to eq(['uptime'])
- end
-
- it "should return mm:ss(min)" do
-- ::Time.should_receive(:now).and_return(::Time.at(0))
-- @channel.should_receive(:notify).with("00:00")
-+ expect(::Time).to receive(:now).and_return(::Time.at(0))
-+ expect(@channel).to receive(:notify).with("00:00")
- call '#twitter', 'uptime', []
-
-- @gateway.notified.should == '#twitter'
-+ expect(@gateway.notified).to eq('#twitter')
- end
-
- it "should return mm:ss(max)" do
-- ::Time.should_receive(:now).and_return(::Time.at(60*60-1))
-- @channel.should_receive(:notify).with("59:59")
-+ expect(::Time).to receive(:now).and_return(::Time.at(60*60-1))
-+ expect(@channel).to receive(:notify).with("59:59")
- call '#twitter', 'uptime', []
-
-- @gateway.notified.should == '#twitter'
-+ expect(@gateway.notified).to eq('#twitter')
- end
-
- it "should return hh:mm:ss(min)" do
-- ::Time.should_receive(:now).and_return(::Time.at(60*60))
-- @channel.should_receive(:notify).with("01:00:00")
-+ expect(::Time).to receive(:now).and_return(::Time.at(60*60))
-+ expect(@channel).to receive(:notify).with("01:00:00")
- call '#twitter', 'uptime', []
-- @gateway.notified.should == '#twitter'
-+ expect(@gateway.notified).to eq('#twitter')
- end
-
- it "should return hh:mm:ss(max)" do
-- ::Time.should_receive(:now).and_return(::Time.at(24*60*60-1))
-- @channel.should_receive(:notify).with("23:59:59")
-+ expect(::Time).to receive(:now).and_return(::Time.at(24*60*60-1))
-+ expect(@channel).to receive(:notify).with("23:59:59")
- call '#twitter', 'uptime', []
-- @gateway.notified.should == '#twitter'
-+ expect(@gateway.notified).to eq('#twitter')
- end
-
- it "should return dd days hh:mm:ss" do
-- ::Time.should_receive(:now).and_return(::Time.at(24*60*60))
-- @channel.should_receive(:notify).with("1 days 00:00")
-+ expect(::Time).to receive(:now).and_return(::Time.at(24*60*60))
-+ expect(@channel).to receive(:notify).with("1 days 00:00")
- call '#twitter', 'uptime', []
-- @gateway.notified.should == '#twitter'
-+ expect(@gateway.notified).to eq('#twitter')
- end
- end
-diff --git a/spec/command/user_info_spec.rb b/spec/command/user_info_spec.rb
-index 37acc76..eaada0f 100644
---- a/spec/command/user_info_spec.rb
-+++ b/spec/command/user_info_spec.rb
-@@ -10,30 +10,28 @@ describe Atig::Command::UserInfo do
- @command = init Atig::Command::UserInfo
- @status = double "status"
- @user = double "user"
-- @user.stub(:description).and_return('hogehoge')
-- @user.stub(:status).and_return(@status)
-+ allow(@user).to receive(:description).and_return('hogehoge')
-+ allow(@user).to receive(:status).and_return(@status)
- end
-
- it "should show the source via DB" do
-- @followings.should_receive(:find_by_screen_name).with('mzp').and_return(@user)
-- @channel.
-- should_receive(:message).
-- with(anything, Net::IRC::Constants::NOTICE).
-- and_return{|s,_|
-- s.status.text.should == "\x01hogehoge\x01"
-+ expect(@followings).to receive(:find_by_screen_name).with('mzp').and_return(@user)
-+ expect(@channel).
-+ to receive(:message).
-+ with(anything, Net::IRC::Constants::NOTICE){|s,_|
-+ expect(s.status.text).to eq("\x01hogehoge\x01")
- }
- call '#twitter','userinfo',%w(mzp)
- end
-
- it "should show the source via API" do
-- @followings.should_receive(:find_by_screen_name).with('mzp').and_return(nil)
-- @api.should_receive(:get).with('users/show',:screen_name=>'mzp').and_return(@user)
-+ expect(@followings).to receive(:find_by_screen_name).with('mzp').and_return(nil)
-+ expect(@api).to receive(:get).with('users/show',:screen_name=>'mzp').and_return(@user)
-
-- @channel.
-- should_receive(:message).
-- with(anything, Net::IRC::Constants::NOTICE).
-- and_return{|s,_|
-- s.status.text.should == "\x01hogehoge\x01"
-+ expect(@channel).
-+ to receive(:message).
-+ with(anything, Net::IRC::Constants::NOTICE){|s,_|
-+ expect(s.status.text).to eq("\x01hogehoge\x01")
- }
-
- call '#twitter','userinfo',%w(mzp)
-diff --git a/spec/command/user_spec.rb b/spec/command/user_spec.rb
-index 0a5a2de..91ca6e0 100644
---- a/spec/command/user_spec.rb
-+++ b/spec/command/user_spec.rb
-@@ -10,23 +10,23 @@ describe Atig::Command::User do
- end
-
- it "should have '/me status' name" do
-- @gateway.names.should == ['user', 'u']
-+ expect(@gateway.names).to eq(['user', 'u'])
- end
-
- it "should" do
- foo = entry user(1,'mzp'),status('foo')
- bar = entry user(1,'mzp'),status('bar')
- baz = entry user(1,'mzp'),status('baz')
-- @api.
-- should_receive(:get).
-+ expect(@api).
-+ to receive(:get).
- with('statuses/user_timeline',:count=>20,:screen_name=>'mzp').
- and_return([foo, bar, baz])
-- @statuses.should_receive(:add).with(any_args).at_least(3)
-- @statuses.
-- should_receive(:find_by_screen_name).
-+ expect(@statuses).to receive(:add).with(any_args).at_least(3)
-+ expect(@statuses).
-+ to receive(:find_by_screen_name).
- with('mzp',:limit=>20).
- and_return([foo, bar, baz])
-- @channel.should_receive(:message).with(anything, Net::IRC::Constants::NOTICE).at_least(3)
-+ expect(@channel).to receive(:message).with(anything, Net::IRC::Constants::NOTICE).at_least(3)
- call "#twitter","user",%w(mzp)
- end
-
-@@ -34,16 +34,16 @@ describe Atig::Command::User do
- foo = entry user(1,'mzp'),status('foo')
- bar = entry user(1,'mzp'),status('bar')
- baz = entry user(1,'mzp'),status('baz')
-- @api.
-- should_receive(:get).
-+ expect(@api).
-+ to receive(:get).
- with('statuses/user_timeline',:count=>200,:screen_name=>'mzp').
- and_return([foo, bar, baz])
-- @statuses.should_receive(:add).with(any_args).at_least(3)
-- @statuses.
-- should_receive(:find_by_screen_name).
-+ expect(@statuses).to receive(:add).with(any_args).at_least(3)
-+ expect(@statuses).
-+ to receive(:find_by_screen_name).
- with('mzp',:limit=>200).
- and_return([foo, bar, baz])
-- @channel.should_receive(:message).with(anything, Net::IRC::Constants::NOTICE).at_least(3)
-+ expect(@channel).to receive(:message).with(anything, Net::IRC::Constants::NOTICE).at_least(3)
- call "#twitter","user",%w(mzp 200)
- end
- end
-diff --git a/spec/command/version_spec.rb b/spec/command/version_spec.rb
-index 908a19f..7e3b706 100644
---- a/spec/command/version_spec.rb
-+++ b/spec/command/version_spec.rb
-@@ -9,56 +9,53 @@ describe Atig::Command::Version do
- before do
- @command = init Atig::Command::Version
- @status = double "status"
-- @status.stub(:source).and_return('<a href="http://echofon.com/" rel="nofollow">Echofon</a>')
-+ allow(@status).to receive(:source).and_return('<a href="http://echofon.com/" rel="nofollow">Echofon</a>')
- @user = double "user"
-- @user.stub(:status).and_return(@status)
-+ allow(@user).to receive(:status).and_return(@status)
- end
-
- it "should provide version command" do
-- @gateway.names.should == ['version']
-+ expect(@gateway.names).to eq(['version'])
- end
-
- it "should show the source via DB" do
-- @statuses.
-- should_receive(:find_by_screen_name).
-+ expect(@statuses).
-+ to receive(:find_by_screen_name).
- with('mzp',:limit => 1).
- and_return([ entry(@user, at status) ])
-- @channel.
-- should_receive(:message).
-- with(anything, Net::IRC::Constants::NOTICE).
-- and_return{|s,_|
-- s.status.text.should == "\x01Echofon <http://echofon.com/>\x01"
-+ expect(@channel).
-+ to receive(:message).
-+ with(anything, Net::IRC::Constants::NOTICE){|s,_|
-+ expect(s.status.text).to eq("\x01Echofon <http://echofon.com/>\x01")
- }
- call '#twitter','version',%w(mzp)
- end
-
- it "should show the source of web" do
- status = double "status"
-- status.stub(:source).and_return('web')
-- @statuses.
-- should_receive(:find_by_screen_name).
-+ allow(status).to receive(:source).and_return('web')
-+ expect(@statuses).
-+ to receive(:find_by_screen_name).
- with('mzp',:limit => 1).
- and_return([ entry(@user,status) ])
-- @channel.
-- should_receive(:message).
-- with(anything, Net::IRC::Constants::NOTICE).
-- and_return{|s,_|
-- s.status.text.should == "\x01web\x01"
-+ expect(@channel).
-+ to receive(:message).
-+ with(anything, Net::IRC::Constants::NOTICE){|s,_|
-+ expect(s.status.text).to eq("\x01web\x01")
- }
- call '#twitter','version',%w(mzp)
- end
-
- it "should show the source via API" do
-- @statuses.stub(:find_by_screen_name).and_return(@status)
-- @statuses.should_receive(:find_by_screen_name).with('mzp',:limit => 1).and_return(nil)
-- @statuses.should_receive(:add).with(:status => @status, :user => @user, :source=>:version)
-- @api.should_receive(:get).with('users/show',:screen_name=>'mzp').and_return(@user)
--
-- @channel.
-- should_receive(:message).
-- with(anything, Net::IRC::Constants::NOTICE).
-- and_return{|s,_|
-- s.status.text.should == "\x01Echofon <http://echofon.com/>\x01"
-+ allow(@statuses).to receive(:find_by_screen_name).and_return(@status)
-+ expect(@statuses).to receive(:find_by_screen_name).with('mzp',:limit => 1).and_return(nil)
-+ expect(@statuses).to receive(:add).with(status: @status, user: @user, source: :version)
-+ expect(@api).to receive(:get).with('users/show',:screen_name=>'mzp').and_return(@user)
-+
-+ expect(@channel).
-+ to receive(:message).
-+ with(anything, Net::IRC::Constants::NOTICE){|s,_|
-+ expect(s.status.text).to eq("\x01Echofon <http://echofon.com/>\x01")
- }
-
- call '#twitter','version',%w(mzp)
-diff --git a/spec/command/whois_spec.rb b/spec/command/whois_spec.rb
-index 14e25bd..de5a6c1 100644
---- a/spec/command/whois_spec.rb
-+++ b/spec/command/whois_spec.rb
-@@ -17,61 +17,61 @@ describe Atig::Command::Whois do
- before do
- @command = init Atig::Command::Whois
- @status = double 'status'
-- @status.stub(:created_at).and_return(time(::Time.at(42)))
-+ allow(@status).to receive(:created_at).and_return(time(::Time.at(42)))
- @user = double "user"
-- @user.stub(:name) .and_return('name')
-- @user.stub(:id) .and_return('10')
-- @user.stub(:screen_name).and_return('screen_name')
-- @user.stub(:description).and_return('blah blah')
-- @user.stub(:protected) .and_return(false)
-- @user.stub(:location) .and_return('Tokyo, Japan')
-- @user.stub(:created_at) .and_return(time(::Time.at(0)))
-- @user.stub(:status) .and_return(@status)
-+ allow(@user).to receive(:name) .and_return('name')
-+ allow(@user).to receive(:id) .and_return('10')
-+ allow(@user).to receive(:screen_name).and_return('screen_name')
-+ allow(@user).to receive(:description).and_return('blah blah')
-+ allow(@user).to receive(:protected) .and_return(false)
-+ allow(@user).to receive(:location) .and_return('Tokyo, Japan')
-+ allow(@user).to receive(:created_at) .and_return(time(::Time.at(0)))
-+ allow(@user).to receive(:status) .and_return(@status)
-
-- ::Time.stub(:now).and_return(::Time.at(50))
-- @followings.stub(:find_by_screen_name).with('mzp').and_return(@user)
-+ allow(::Time).to receive(:now).and_return(::Time.at(50))
-+ allow(@followings).to receive(:find_by_screen_name).with('mzp').and_return(@user)
- end
-
- it "should proide whois command" do
-- @command.command_name.should == %w(whois)
-+ expect(@command.command_name).to eq(%w(whois))
- end
-
- it "should show profile" do
- commands = []
-- @gateway.should_receive(:post){|_,command,_,_,*params|
-+ expect(@gateway).to receive(:post){|_,command,_,_,*params|
- commands << command
- case command
- when RPL_WHOISUSER
-- params.should == ['id=10', 'twitter.com', "*", 'name / blah blah']
-+ expect(params).to eq(['id=10', 'twitter.com', "*", 'name / blah blah'])
- when RPL_WHOISSERVER
-- params.should == ['twitter.com', 'Tokyo, Japan']
-+ expect(params).to eq(['twitter.com', 'Tokyo, Japan'])
- when RPL_WHOISIDLE
-- params.should == ["8", "0", "seconds idle, signon time"]
-+ expect(params).to eq(["8", "0", "seconds idle, signon time"])
- when RPL_ENDOFWHOIS
-- params.should == ["End of WHOIS list"]
-+ expect(params).to eq(["End of WHOIS list"])
- end
- }.at_least(4)
- call '#twitter','whois',%w(mzp)
-- commands.should == [ RPL_WHOISUSER, RPL_WHOISSERVER, RPL_WHOISIDLE, RPL_ENDOFWHOIS]
-+ expect(commands).to eq([ RPL_WHOISUSER, RPL_WHOISSERVER, RPL_WHOISIDLE, RPL_ENDOFWHOIS])
- end
-
- it "should append /protect if the user is protected" do
-- @user.stub(:protected).and_return(true)
-+ allow(@user).to receive(:protected).and_return(true)
- commands = []
-- @gateway.should_receive(:post){|_,command,_,_,*params|
-+ expect(@gateway).to receive(:post){|_,command,_,_,*params|
- commands << command
- case command
- when RPL_WHOISUSER
-- params.should == ['id=10', 'twitter.com/protected', "*", 'name / blah blah']
-+ expect(params).to eq(['id=10', 'twitter.com/protected', "*", 'name / blah blah'])
- when RPL_WHOISSERVER
-- params.should == ['twitter.com/protected', 'Tokyo, Japan']
-+ expect(params).to eq(['twitter.com/protected', 'Tokyo, Japan'])
- when RPL_WHOISIDLE
-- params.should == ["8", "0", "seconds idle, signon time"]
-+ expect(params).to eq(["8", "0", "seconds idle, signon time"])
- when RPL_ENDOFWHOIS
-- params.should == ["End of WHOIS list"]
-+ expect(params).to eq(["End of WHOIS list"])
- end
- }.at_least(4)
- call '#twitter','whois',%w(mzp)
-- commands.should == [ RPL_WHOISUSER, RPL_WHOISSERVER, RPL_WHOISIDLE, RPL_ENDOFWHOIS]
-+ expect(commands).to eq([ RPL_WHOISUSER, RPL_WHOISSERVER, RPL_WHOISIDLE, RPL_ENDOFWHOIS])
- end
- end
-diff --git a/spec/command_helper.rb b/spec/command_helper.rb
-index a73c831..fe1a865 100644
---- a/spec/command_helper.rb
-+++ b/spec/command_helper.rb
-@@ -66,7 +66,7 @@ module CommandHelper
- def init(klass)
- @log = double 'log'
- @opts = Atig::Option.new({})
-- context = OpenStruct.new :log=>@log, :opts=>@opts
-+ context = OpenStruct.new log:@log, opts:@opts
-
- @channel = double 'channel'
- @gateway = FakeGateway.new @channel
-@@ -88,7 +88,7 @@ module CommandHelper
- end
-
- def stub_status(key, hash)
-- @statuses.stub(key).and_return{|arg,*_|
-+ allow(@statuses).to receive(key){|arg,*_|
- hash.fetch(arg, hash[:default])
- }
- end
-diff --git a/spec/db/followings_spec.rb b/spec/db/followings_spec.rb
-index b36afc6..dcfd318 100644
---- a/spec/db/followings_spec.rb
-+++ b/spec/db/followings_spec.rb
-@@ -14,13 +14,13 @@ describe Atig::Db::Followings,"when it is empty" do
- end
-
- it "should be emtpy" do
-- @db.empty?.should be_true
-+ expect(@db.empty?).to be_truthy
- end
- end
-
- describe Atig::Db::Followings,"when updated users" do
- def user(id, name, protect, only)
-- OpenStruct.new(:id => id, :screen_name=>name, :protected=>protect, :only=>only)
-+ OpenStruct.new(id: id, screen_name:name, protected:protect, only:only)
- end
-
- before do
-@@ -43,7 +43,7 @@ describe Atig::Db::Followings,"when updated users" do
- end
-
- it "should return size" do
-- @db.size.should == 2
-+ expect(@db.size).to eq(2)
- end
-
- it "should be invalidated" do
-@@ -53,56 +53,56 @@ describe Atig::Db::Followings,"when updated users" do
- end
- @db.invalidate
-
-- called.should be_true
-+ expect(called).to be_truthy
- end
-
- it "should not empty" do
-- @db.empty?.should be_false
-+ expect(@db.empty?).to be_falsey
- end
-
- it "should call listener with :join" do
- @db.update [ @alice, @bob, @charriey ]
-- @listen[:join].should == [ @charriey ]
-- @listen[:part].should == nil
-- @listen[:mode].should == nil
-+ expect(@listen[:join]).to eq([ @charriey ])
-+ expect(@listen[:part]).to eq(nil)
-+ expect(@listen[:mode]).to eq(nil)
- end
-
- it "should call listener with :part" do
- @db.update [ @alice ]
-- @listen[:join].should == nil
-- @listen[:part].should == [ @bob ]
-- @listen[:mode].should == nil
-+ expect(@listen[:join]).to eq(nil)
-+ expect(@listen[:part]).to eq([ @bob ])
-+ expect(@listen[:mode]).to eq(nil)
- end
-
- it "should not found removed user[BUG]" do
-- @db.include?(@bob).should == true
-+ expect(@db.include?(@bob)).to eq(true)
- @db.update [ @alice ]
- # now, @bob is not member
-- @db.include?(@bob).should == false
-+ expect(@db.include?(@bob)).to eq(false)
- end
-
- it "should call listener with :mode" do
- bob = user 5,'bob', false, false
-
- @db.update [ @alice, bob ]
-- @listen[:join].should == nil
-- @listen[:part].should == nil
-- @listen[:mode].should == [ bob ]
-+ expect(@listen[:join]).to eq(nil)
-+ expect(@listen[:part]).to eq(nil)
-+ expect(@listen[:mode]).to eq([ bob ])
- end
-
- it "should have users" do
-- @db.users.should == [ @alice, @bob ]
-+ expect(@db.users).to eq([ @alice, @bob ])
- end
-
- it "should be found by screen_name" do
-- @db.find_by_screen_name('alice').should == @alice
-- @db.find_by_screen_name('???').should == nil
-+ expect(@db.find_by_screen_name('alice')).to eq(@alice)
-+ expect(@db.find_by_screen_name('???')).to eq(nil)
- end
-
- it "should check include" do
- alice = user @alice.id,'alice', true, true
-- @db.include?(@charriey).should be_false
-- @db.include?(@alice).should be_true
-- @db.include?(alice).should be_true
-+ expect(@db.include?(@charriey)).to be_falsey
-+ expect(@db.include?(@alice)).to be_truthy
-+ expect(@db.include?(alice)).to be_truthy
- end
- end
-diff --git a/spec/db/listenable_spec.rb b/spec/db/listenable_spec.rb
-index c61cf87..dd44e89 100644
---- a/spec/db/listenable_spec.rb
-+++ b/spec/db/listenable_spec.rb
-@@ -24,9 +24,9 @@ describe Atig::Db::Listenable, "when it is called" do
- it "should call all listener" do
- @listeners.hi 1,2,3
-
-- @args.length.should == 3
-+ expect(@args.length).to eq(3)
- 1.upto(2) {|i|
-- @args[i].should == [1,2,3]
-+ expect(@args[i]).to eq([1,2,3])
- }
- end
- end
-diff --git a/spec/db/lists_spec.rb b/spec/db/lists_spec.rb
-index 05ec2fa..bf6a100 100644
---- a/spec/db/lists_spec.rb
-+++ b/spec/db/lists_spec.rb
-@@ -5,7 +5,7 @@ require 'atig/db/lists'
-
- describe Atig::Db::Lists do
- def user(id, name, protect, only)
-- OpenStruct.new(:id => id, :screen_name=>name, :protected=>protect, :only=>only)
-+ OpenStruct.new(id: id, screen_name:name, protected:protect, only:only)
- end
-
- before do
-@@ -29,15 +29,15 @@ describe Atig::Db::Lists do
- @lists.update("a" => [ @alice, @bob ],
- "b" => [ @alice, @bob , @charriey ])
-
-- @lists.find_by_screen_name('alice').sort.should == ["a", "b"]
-- @lists.find_by_screen_name('charriey').should == ["b"]
-+ expect(@lists.find_by_screen_name('alice').sort).to eq(["a", "b"])
-+ expect(@lists.find_by_screen_name('charriey')).to eq(["b"])
- end
-
- it "should have lists" do
- @lists.update("a" => [ @alice, @bob ],
- "b" => [ @alice, @bob , @charriey ])
-
-- @lists.find_by_list_name('a').should == [ @alice, @bob ]
-+ expect(@lists.find_by_list_name('a')).to eq([ @alice, @bob ])
- end
-
- it "should have each" do
-@@ -51,52 +51,52 @@ describe Atig::Db::Lists do
- @lists.each do|name,users|
- hash[name] = users
- end
-- hash.should == data
-+ expect(hash).to eq(data)
- end
-
- it "should call listener when new list" do
- @lists.update("a" => [ @alice, @bob ])
-
-- @args.keys.should include(:new, :join)
-- @args[:new].should == [ "a" ]
-- @args[:join].should == [ "a", [ @alice, @bob ] ]
-+ expect(@args.keys).to include(:new, :join)
-+ expect(@args[:new]).to eq([ "a" ])
-+ expect(@args[:join]).to eq([ "a", [ @alice, @bob ] ])
- end
-
- it "should call listener when partcial update" do
- @lists.update("a" => [ @alice ])
- @lists["a"].update([ @alice, @bob, @charriey ])
-- @args[:join].should == ["a", [ @bob, @charriey ]]
-+ expect(@args[:join]).to eq(["a", [ @bob, @charriey ]])
- end
-
- it "should call on_invalidated" do
- called = false
- @lists.on_invalidated do|name|
-- name.should == "a"
-+ expect(name).to eq("a")
- called = true
- end
- @lists.invalidate("a")
-
-- called.should be_true
-+ expect(called).to be_truthy
- end
-
- it "should call listener when delete list" do
- @lists.update("a" => [ @alice, @bob ])
- @lists.update({})
-- @args.keys.should include(:new, :join, :del)
-- @args[:del].should == ["a"]
-+ expect(@args.keys).to include(:new, :join, :del)
-+ expect(@args[:del]).to eq(["a"])
- end
-
- it "should call listener when join user" do
- @lists.update("a" => [ @alice ])
- @lists.update("a" => [ @alice, @bob, @charriey ])
-
-- @args[:join].should == ["a", [ @bob, @charriey ]]
-+ expect(@args[:join]).to eq(["a", [ @bob, @charriey ]])
- end
-
- it "should call listener when exit user" do
- @lists.update("a" => [ @alice, @bob, @charriey ])
- @lists.update("a" => [ @alice ])
-- @args[:part].should == ["a", [ @bob, @charriey ]]
-+ expect(@args[:part]).to eq(["a", [ @bob, @charriey ]])
- end
-
- it "should call listener when change user mode" do
-@@ -104,6 +104,6 @@ describe Atig::Db::Lists do
- bob = user @bob.id, 'bob', false, false
- @lists.update("a" => [ @alice, bob ])
-
-- @args[:mode].should == [ "a", [ bob ]]
-+ expect(@args[:mode]).to eq([ "a", [ bob ]])
- end
- end
-diff --git a/spec/db/roman_spec.rb b/spec/db/roman_spec.rb
-index 9da6d79..37c3277 100644
---- a/spec/db/roman_spec.rb
-+++ b/spec/db/roman_spec.rb
-@@ -9,9 +9,9 @@ describe Atig::Db::Roman do
- end
-
- it "should make readble tid" do
-- @roman.make(0).should == 'a'
-- @roman.make(1).should == 'i'
-- @roman.make(2).should == 'u'
-+ expect(@roman.make(0)).to eq('a')
-+ expect(@roman.make(1)).to eq('i')
-+ expect(@roman.make(2)).to eq('u')
- end
- end
-
-diff --git a/spec/db/sized_uniq_array_spec.rb b/spec/db/sized_uniq_array_spec.rb
-index 8dc1b84..26f6683 100644
---- a/spec/db/sized_uniq_array_spec.rb
-+++ b/spec/db/sized_uniq_array_spec.rb
-@@ -7,7 +7,7 @@ require 'ostruct'
- describe Atig::Db::SizedUniqArray do
- def item(id)
- item = double "Item-#{id}"
-- item.stub(:id).and_return id
-+ allow(item).to receive(:id).and_return id
- item
- end
-
-@@ -24,40 +24,40 @@ describe Atig::Db::SizedUniqArray do
- end
-
- it "should include items" do
-- @array.to_a.should == [ @item1, @item2, @item3 ]
-+ expect(@array.to_a).to eq([ @item1, @item2, @item3 ])
- end
-
- it "should rorate array" do
- @array << @item4
-- @array.to_a.should == [ @item2, @item3, @item4 ]
-+ expect(@array.to_a).to eq([ @item2, @item3, @item4 ])
- end
-
- it "should have reverse_each" do
- xs = []
- @array.reverse_each {|x| xs << x }
-- xs.should == [ @item3, @item2, @item1 ]
-+ expect(xs).to eq([ @item3, @item2, @item1 ])
- end
-
- it "should not have duplicate element" do
- @array << item(1)
-- @array.to_a.should == [ @item1, @item2, @item3 ]
-+ expect(@array.to_a).to eq([ @item1, @item2, @item3 ])
- end
-
- it "should be accesible by index" do
-- @array[0].should == @item1
-- @array[1].should == @item2
-- @array[2].should == @item3
-+ expect(@array[0]).to eq(@item1)
-+ expect(@array[1]).to eq(@item2)
-+ expect(@array[2]).to eq(@item3)
- end
-
- it "should not change index" do
- @array << @item4
-- @array[0].should == @item4
-- @array[1].should == @item2
-- @array[2].should == @item3
-+ expect(@array[0]).to eq(@item4)
-+ expect(@array[1]).to eq(@item2)
-+ expect(@array[2]).to eq(@item3)
- end
-
- it "should return index when add element" do
-- (@array << @item4).should == 0
-- (@array << @item3).should == nil
-+ expect(@array << @item4).to eq(0)
-+ expect(@array << @item3).to eq(nil)
- end
- end
-diff --git a/spec/db/statuses_spec.rb b/spec/db/statuses_spec.rb
-index 58a4715..d326954 100644
---- a/spec/db/statuses_spec.rb
-+++ b/spec/db/statuses_spec.rb
-@@ -6,11 +6,11 @@ require 'atig/db/statuses'
-
- describe Atig::Db::Statuses do
- def status(id, text, time)
-- OpenStruct.new(:id => id, :text => text, :created_at => time.strftime("%a %b %d %H:%M:%S +0000 %Y"))
-+ OpenStruct.new(id: id, text: text, created_at: time.strftime("%a %b %d %H:%M:%S +0000 %Y"))
- end
-
- def user(name)
-- OpenStruct.new(:screen_name => name, :id => name)
-+ OpenStruct.new(screen_name: name, id: name)
- end
-
- before do
-@@ -26,9 +26,9 @@ describe Atig::Db::Statuses do
- @alice = user 'alice'
- @bob = user 'bob'
-
-- @db.add :status => @a , :user => @alice, :source => :srcA
-- @db.add :status => @b , :user => @bob , :source => :srcB
-- @db.add :status => @c , :user => @alice, :source => :srcC
-+ @db.add status: @a , user: @alice, source: :srcA
-+ @db.add status: @b , user: @bob , source: :srcB
-+ @db.add status: @c , user: @alice, source: :srcC
- end
-
- after(:all) do
-@@ -43,142 +43,142 @@ describe Atig::Db::Statuses do
- entry = nil
- @db.listen{|x| entry = x }
-
-- @db.add :status => @d, :user => @alice, :source => :timeline, :fuga => :hoge
-+ @db.add status: @d, user: @alice, source: :timeline, fuga: :hoge
-
-- entry.source.should == :timeline
-- entry.status.should == @d
-- entry.tid.should match(/\w+/)
-- entry.sid.should match(/\w+/)
-- entry.user.should == @alice
-- entry.source.should == :timeline
-- entry.fuga.should == :hoge
-+ expect(entry.source).to eq(:timeline)
-+ expect(entry.status).to eq(@d)
-+ expect(entry.tid).to match(/\w+/)
-+ expect(entry.sid).to match(/\w+/)
-+ expect(entry.user).to eq(@alice)
-+ expect(entry.source).to eq(:timeline)
-+ expect(entry.fuga).to eq(:hoge)
- end
-
- it "should not contain duplicate" do
- called = false
- @db.listen{|*_| called = true }
-
-- @db.add :status => @c, :user => @bob, :source => :timeline
-- called.should be_false
-+ @db.add status: @c, user: @bob, source: :timeline
-+ expect(called).to be_falsey
- end
-
- it "should be found by id" do
- entry = @db.find_by_id 1
-- entry.id.should == 1
-- entry.status.should == @a
-- entry.user .should == @alice
-- entry.tid .should match(/\w+/)
-- entry.sid.should match(/\w+/)
-+ expect(entry.id).to eq(1)
-+ expect(entry.status).to eq(@a)
-+ expect(entry.user) .to eq(@alice)
-+ expect(entry.tid) .to match(/\w+/)
-+ expect(entry.sid).to match(/\w+/)
- end
-
- it "should have unique tid" do
- db = Atig::Db::Statuses.new 'test.db'
-- db.add :status => @d , :user => @alice, :source => :srcA
-+ db.add status: @d , user: @alice, source: :srcA
-
- a = @db.find_by_id(1)
- d = @db.find_by_id(4)
-- a.tid.should_not == d.tid
-- a.sid.should_not == d.cid
-+ expect(a.tid).not_to eq(d.tid)
-+ expect(a.sid).not_to eq(d.cid)
- end
-
- it "should be found all" do
- db = @db.find_all
-- db.size.should == 3
-+ expect(db.size).to eq(3)
- a,b,c = db
-
-- a.status.should == @c
-- a.user .should == @alice
-- a.tid .should match(/\w+/)
-- a.sid .should match(/\w+/)
-+ expect(a.status).to eq(@c)
-+ expect(a.user) .to eq(@alice)
-+ expect(a.tid) .to match(/\w+/)
-+ expect(a.sid) .to match(/\w+/)
-
-- b.status.should == @b
-- b.user .should == @bob
-- b.tid .should match(/\w+/)
-- b.sid .should match(/\w+/)
-+ expect(b.status).to eq(@b)
-+ expect(b.user) .to eq(@bob)
-+ expect(b.tid) .to match(/\w+/)
-+ expect(b.sid) .to match(/\w+/)
-
-- c.status.should == @a
-- c.user.should == @alice
-- c.tid.should match(/\w+/)
-- c.sid.should match(/\w+/)
-+ expect(c.status).to eq(@a)
-+ expect(c.user).to eq(@alice)
-+ expect(c.tid).to match(/\w+/)
-+ expect(c.sid).to match(/\w+/)
- end
-
- it "should be found by tid" do
- entry = @db.find_by_id(1)
-- @db.find_by_tid(entry.tid).should == entry
-+ expect(@db.find_by_tid(entry.tid)).to eq(entry)
- end
-
- it "should be found by sid" do
- entry = @db.find_by_id(1)
-- @db.find_by_sid(entry.sid).should == entry
-+ expect(@db.find_by_sid(entry.sid)).to eq(entry)
- end
-
- it "should be found by tid" do
-- @db.find_by_tid('__').should be_nil
-+ expect(@db.find_by_tid('__')).to be_nil
- end
-
- it "should be found by user" do
- a,b = *@db.find_by_user(@alice)
-
-- a.status.should == @c
-- a.user .should == @alice
-- a.tid .should match(/\w+/)
-- a.sid .should match(/\w+/)
-+ expect(a.status).to eq(@c)
-+ expect(a.user) .to eq(@alice)
-+ expect(a.tid) .to match(/\w+/)
-+ expect(a.sid) .to match(/\w+/)
-
-- b.status.should == @a
-- b.user.should == @alice
-- b.tid.should match(/\w+/)
-- b.sid.should match(/\w+/)
-+ expect(b.status).to eq(@a)
-+ expect(b.user).to eq(@alice)
-+ expect(b.tid).to match(/\w+/)
-+ expect(b.sid).to match(/\w+/)
- end
-
- it "should be found by screen_name" do
- db = @db.find_by_screen_name('alice')
-- db.size.should == 2
-+ expect(db.size).to eq(2)
- a,b = db
-
-- a.status.should == @c
-- a.user .should == @alice
-- a.tid .should match(/\w+/)
-- a.sid .should match(/\w+/)
-+ expect(a.status).to eq(@c)
-+ expect(a.user) .to eq(@alice)
-+ expect(a.tid) .to match(/\w+/)
-+ expect(a.sid) .to match(/\w+/)
-
-- b.status.should == @a
-- b.user.should == @alice
-- b.tid.should match(/\w+/)
-- b.sid.should match(/\w+/)
-+ expect(b.status).to eq(@a)
-+ expect(b.user).to eq(@alice)
-+ expect(b.tid).to match(/\w+/)
-+ expect(b.sid).to match(/\w+/)
- end
-
- it "should be found by screen_name with limit" do
-- xs = @db.find_by_screen_name('alice', :limit => 1)
-- xs.size.should == 1
-+ xs = @db.find_by_screen_name('alice', limit: 1)
-+ expect(xs.size).to eq(1)
-
- a,_ = xs
-- a.status.should == @c
-- a.user .should == @alice
-- a.tid .should match(/\w+/)
-- a.sid .should match(/\w+/)
-+ expect(a.status).to eq(@c)
-+ expect(a.user) .to eq(@alice)
-+ expect(a.tid) .to match(/\w+/)
-+ expect(a.sid) .to match(/\w+/)
- end
-
- it "should remove by id" do
- @db.remove_by_id 1
-- @db.find_by_id(1).should be_nil
-+ expect(@db.find_by_id(1)).to be_nil
- end
-
- it "should have uniq tid/sid when removed" do
- old = @db.find_by_id 3
- @db.remove_by_id 3
-- @db.add :status => @c , :user => @alice, :source => :src
-+ @db.add status: @c , user: @alice, source: :src
- new = @db.find_by_id 3
-
-- old.tid.should_not == new.tid
-- old.sid.should_not == new.sid
-+ expect(old.tid).not_to eq(new.tid)
-+ expect(old.sid).not_to eq(new.sid)
- end
-
- it "should cleanup" do
-- Atig::Db::Statuses::Size = 10 unless defined? Atig::Db::Statuses::Size # hack
-+ Atig::Db::Statuses::Size = 10 unless defined? Atig::Db::Statuses::Size # hack
- Atig::Db::Statuses::Size.times do|i|
- s = status i+100, 'a', Time.utc(2010,1,5)+i+1
-- @db.add :status => s , :user => @alice , :source => :srcB
-+ @db.add status: s , user: @alice , source: :srcB
- end
- @db.cleanup
-- @db.find_by_status_id(@a.id).should == nil
-+ expect(@db.find_by_status_id(@a.id)).to eq(nil)
- end
- end
-diff --git a/spec/ifilter/expand_url_spec.rb b/spec/ifilter/expand_url_spec.rb
-index 62f3d88..721aaca 100644
---- a/spec/ifilter/expand_url_spec.rb
-+++ b/spec/ifilter/expand_url_spec.rb
-@@ -10,57 +10,57 @@ end
-
- describe Atig::IFilter::ExpandUrl, "when disable whole url" do
- def filtered(text)
-- ifilter = Atig::IFilter::ExpandUrl.new OpenStruct.new(:log=>double('log'),:opts=>OpenStruct.new)
-+ ifilter = Atig::IFilter::ExpandUrl.new OpenStruct.new(log:double('log'),:opts=>OpenStruct.new)
- ifilter.call status(text)
- end
-
- it "should expand bit.ly" do
-- filtered("This is http://bit.ly/hoge").should be_text("This is [http://bit.ly/hoge]")
-- filtered("This is http://bitly.com/hoge").should be_text("This is [http://bitly.com/hoge]")
-+ expect(filtered("This is http://bit.ly/hoge")).to be_text("This is [http://bit.ly/hoge]")
-+ expect(filtered("This is http://bitly.com/hoge")).to be_text("This is [http://bitly.com/hoge]")
- end
-
- it "should expand htn.to" do
-- filtered("This is http://htn.to/TZdkXg").should be_text("This is [http://htn.to/TZdkXg]")
-- filtered("This is http://htnnto/TZdkXg").should be_text("This is http://htnnto/TZdkXg")
-+ expect(filtered("This is http://htn.to/TZdkXg")).to be_text("This is [http://htn.to/TZdkXg]")
-+ expect(filtered("This is http://htnnto/TZdkXg")).to be_text("This is http://htnnto/TZdkXg")
- end
-
- it "should expand tmblr.co" do
-- filtered("This is http://tmblr.co/Z0rNbyxhxUK5").should be_text("This is [http://tmblr.co/Z0rNbyxhxUK5]")
-+ expect(filtered("This is http://tmblr.co/Z0rNbyxhxUK5")).to be_text("This is [http://tmblr.co/Z0rNbyxhxUK5]")
- end
-
- it "should expand nico.ms" do
-- filtered("This is http://nico.ms/sm11870888").should be_text("This is [http://nico.ms/sm11870888]")
-+ expect(filtered("This is http://nico.ms/sm11870888")).to be_text("This is [http://nico.ms/sm11870888]")
- end
-
- it "should through other url" do
-- filtered("http://example.com").should be_text("http://example.com")
-+ expect(filtered("http://example.com")).to be_text("http://example.com")
- end
- end
-
- describe Atig::IFilter::ExpandUrl, "when enable whole url" do
- def filtered(text)
- context = OpenStruct.new(
-- :log => double('log'),
-- :opts => OpenStruct.new(:untiny_whole_urls=>true))
-+ log: double('log'),
-+ opts: OpenStruct.new(untiny_whole_urls:true))
- ifilter = Atig::IFilter::ExpandUrl.new(context)
- ifilter.call status(text)
- end
-
- it "should expand bit.ly" do
-- filtered("This is http://bit.ly/hoge").should be_text("This is [http://bit.ly/hoge]")
-+ expect(filtered("This is http://bit.ly/hoge")).to be_text("This is [http://bit.ly/hoge]")
- end
-
- it "should expand other url" do
-- filtered("http://example.com").should be_text("[http://example.com]")
-- filtered("https://example.com").should be_text("[https://example.com]")
-+ expect(filtered("http://example.com")).to be_text("[http://example.com]")
-+ expect(filtered("https://example.com")).to be_text("[https://example.com]")
- end
- end
-
- describe Atig::IFilter::ExpandUrl, "when has urls entities" do
- def filtered(text, opts)
- context = OpenStruct.new(
-- :log => double('log'),
-- :opts => OpenStruct.new)
-+ log: double('log'),
-+ opts: OpenStruct.new)
- ifilter = Atig::IFilter::ExpandUrl.new(context)
- ifilter.call status(text, opts)
- end
-@@ -77,9 +77,8 @@ describe Atig::IFilter::ExpandUrl, "when has urls entities" do
- }]
- }
- }
-- filtered("http://t.co/1Vyoux4kB8", opts).should be_text("http://example.com/")
-- filtered("http://t.co/1Vyoux4kB8 http://t.co/V1441ye6g2", opts).should
-- be_text("http://example.com/ http://expmaple.org/")
-+ expect(filtered("http://t.co/1Vyoux4kB8", opts)).to be_text("http://example.com/")
-+ expect(filtered("http://t.co/1Vyoux4kB8 http://t.co/V1441ye6g2", opts)).to be_text("http://example.com/ http://example.org/")
- end
-
- it "should expand recursive shorten URL" do
-@@ -91,6 +90,6 @@ describe Atig::IFilter::ExpandUrl, "when has urls entities" do
- }]
- }
- }
-- filtered("http://t.co/h8sqL5ZMuz", opts).should be_text("[http://bit.ly/1LM4fW]")
-+ expect(filtered("http://t.co/h8sqL5ZMuz", opts)).to be_text("[http://bit.ly/1LM4fW]")
- end
- end
-diff --git a/spec/ifilter/retweet_spec.rb b/spec/ifilter/retweet_spec.rb
-index 37d3560..25125ae 100644
---- a/spec/ifilter/retweet_spec.rb
-+++ b/spec/ifilter/retweet_spec.rb
-@@ -14,15 +14,15 @@ describe Atig::IFilter::Retweet do
- end
-
- it "should throw normal status" do
-- filtered("hello").should be_text("hello")
-+ expect(filtered("hello")).to be_text("hello")
- end
-
- it "should prefix RT for Retweet" do
-- filtered("RT: hello...",
-+ expect(filtered("RT: hello...",
- 'retweeted_status'=>{ 'text' => 'hello',
- 'user' => {
- 'screen_name' => 'mzp'
-- } }).
-- should be_text("#{@rt}RT @mzp: hello")
-+ } })).
-+ to be_text("#{@rt}RT @mzp: hello")
- end
- end
-diff --git a/spec/ifilter/retweet_time_spec.rb b/spec/ifilter/retweet_time_spec.rb
-index c86d679..8cb1acc 100644
---- a/spec/ifilter/retweet_time_spec.rb
-+++ b/spec/ifilter/retweet_time_spec.rb
-@@ -10,16 +10,16 @@ describe Atig::IFilter::RetweetTime do
- end
-
- it "should throw normal status" do
-- filtered("hello").should be_text("hello")
-+ expect(filtered("hello")).to be_text("hello")
- end
-
- it "should prefix RT for Retweet" do
-- filtered("RT @mzp: hello",
-+ expect(filtered("RT @mzp: hello",
- 'retweeted_status'=>{ 'text' => 'hello',
- 'created_at' => 'Sat Sep 25 14:33:19 +0000 2010',
- 'user' => {
- 'screen_name' => 'mzp'
-- } }).
-- should be_text("#{@rt}RT @mzp: hello \x0310[2010-09-25 23:33]\x0F")
-+ } })).
-+ to be_text("#{@rt}RT @mzp: hello \x0310[2010-09-25 14:33]\x0F")
- end
- end
-diff --git a/spec/ifilter/sanitize_spec.rb b/spec/ifilter/sanitize_spec.rb
-index 8214925..0f86773 100644
---- a/spec/ifilter/sanitize_spec.rb
-+++ b/spec/ifilter/sanitize_spec.rb
-@@ -10,16 +10,16 @@ describe Atig::IFilter::Sanitize do
- end
-
- it "should convert escape html" do
-- filtered("< > "").should be_text("< > \"")
-+ expect(filtered("< > "")).to be_text("< > \"")
- end
-
- it "should convert whitespace" do
-- filtered("\r\n").should be_text(" ")
-- filtered("\r").should be_text(" ")
-- filtered("\n").should be_text(" ")
-+ expect(filtered("\r\n")).to be_text(" ")
-+ expect(filtered("\r")).to be_text(" ")
-+ expect(filtered("\n")).to be_text(" ")
- end
-
- it "should delete \\000\\001 sequence" do
-- filtered("\000\001").should be_text("")
-+ expect(filtered("\000\001")).to be_text("")
- end
- end
-diff --git a/spec/ifilter/sid_spec.rb b/spec/ifilter/sid_spec.rb
-index 18c1e41..09adeed 100644
---- a/spec/ifilter/sid_spec.rb
-+++ b/spec/ifilter/sid_spec.rb
-@@ -6,24 +6,24 @@ require 'atig/twitter_struct'
-
- describe Atig::IFilter::Sid, "when disable tid" do
- def filtered(text)
-- ifilter = Atig::IFilter::Sid.new(OpenStruct.new(:log=>double('log'),
-- :opts=>OpenStruct.new))
-+ ifilter = Atig::IFilter::Sid.new(OpenStruct.new(log:double('log'),
-+ opts:OpenStruct.new))
- ifilter.call status(text,'sid'=>1)
- end
-
- it "should through text" do
-- filtered("hello").should be_text("hello")
-+ expect(filtered("hello")).to be_text("hello")
- end
- end
-
- describe Atig::IFilter::Sid, "when enable tid" do
- def filtered(text)
-- ifilter = Atig::IFilter::Sid.new(OpenStruct.new(:log=>double('log'),
-- :opts=>OpenStruct.new(:sid=>true)))
-+ ifilter = Atig::IFilter::Sid.new(OpenStruct.new(log:double('log'),
-+ opts:OpenStruct.new(sid:true)))
- ifilter.call status(text,'sid'=>1)
- end
-
- it "should append sid" do
-- filtered("hello").should be_text("hello \x0310[1]\x0F")
-+ expect(filtered("hello")).to be_text("hello \x0310[1]\x0F")
- end
- end
-diff --git a/spec/ifilter/strip_spec.rb b/spec/ifilter/strip_spec.rb
-index 2330f72..364350a 100644
---- a/spec/ifilter/strip_spec.rb
-+++ b/spec/ifilter/strip_spec.rb
-@@ -10,14 +10,14 @@ describe Atig::IFilter::Strip do
- end
-
- it "should strip *tw*" do
-- @ifilter.call(status("hoge *tw*")).should be_text("hoge")
-+ expect(@ifilter.call(status("hoge *tw*"))).to be_text("hoge")
- end
-
- it "should strip _" do
-- @ifilter.call(status("hoge _")).should be_text("hoge")
-+ expect(@ifilter.call(status("hoge _"))).to be_text("hoge")
- end
-
- it "should strip white-space" do
-- @ifilter.call(status(" hoge ")).should be_text("hoge")
-+ expect(@ifilter.call(status(" hoge "))).to be_text("hoge")
- end
- end
-diff --git a/spec/ifilter/tid_spec.rb b/spec/ifilter/tid_spec.rb
-index 8bb8ca6..f277908 100644
---- a/spec/ifilter/tid_spec.rb
-+++ b/spec/ifilter/tid_spec.rb
-@@ -6,24 +6,24 @@ require 'atig/twitter_struct'
-
- describe Atig::IFilter::Tid, "when disable tid" do
- def filtered(text)
-- ifilter = Atig::IFilter::Tid.new(OpenStruct.new(:log=>double('log'),
-- :opts=>OpenStruct.new))
-+ ifilter = Atig::IFilter::Tid.new(OpenStruct.new(log:double('log'),
-+ opts:OpenStruct.new))
- ifilter.call status(text,'tid'=>1)
- end
-
- it "should through text" do
-- filtered("hello").should be_text("hello")
-+ expect(filtered("hello")).to be_text("hello")
- end
- end
-
- describe Atig::IFilter::Tid, "when enable tid" do
- def filtered(text)
-- ifilter = Atig::IFilter::Tid.new(OpenStruct.new(:log=>double('log'),
-- :opts=>OpenStruct.new(:tid=>true)))
-+ ifilter = Atig::IFilter::Tid.new(OpenStruct.new(log:double('log'),
-+ opts:OpenStruct.new(tid:true)))
- ifilter.call status(text,'tid'=>1)
- end
-
- it "should append tid" do
-- filtered("hello").should be_text("hello \x0310[1]\x0F")
-+ expect(filtered("hello")).to be_text("hello \x0310[1]\x0F")
- end
- end
-diff --git a/spec/levenshtein_spec.rb b/spec/levenshtein_spec.rb
-index dc1a112..ca367f8 100644
---- a/spec/levenshtein_spec.rb
-+++ b/spec/levenshtein_spec.rb
-@@ -16,8 +16,8 @@ target.each do |m|
- ["", "foo", 3],
- ["あああ", "ああい", 1],
- ].each do |a, b, expected|
-- m.levenshtein(a.split(//), b.split(//)).should == expected
-- m.levenshtein(b.split(//), a.split(//)).should == expected
-+ expect(m.levenshtein(a.split(//), b.split(//))).to eq(expected)
-+ expect(m.levenshtein(b.split(//), a.split(//))).to eq(expected)
- end
- end
- end
-diff --git a/spec/ofilter/escape_url_spec.rb b/spec/ofilter/escape_url_spec.rb
-index 3410898..032097f 100644
---- a/spec/ofilter/escape_url_spec.rb
-+++ b/spec/ofilter/escape_url_spec.rb
-@@ -10,22 +10,22 @@ end
- describe Atig::OFilter::EscapeUrl do
- before do
- @logger = double('Logger')
-- @logger.should_receive(:info).at_most(:once)
-- @logger.should_receive(:error).at_most(:once)
-- @logger.should_receive(:debug).at_most(:once)
-+ expect(@logger).to receive(:info).at_most(:once)
-+ expect(@logger).to receive(:error).at_most(:once)
-+ expect(@logger).to receive(:debug).at_most(:once)
- end
-
- def filtered(text,opt={})
-- esc = Atig::OFilter::EscapeUrl.new(OpenStruct.new(:log=>@logger,:opts=>nil))
-- esc.call :status => text
-+ esc = Atig::OFilter::EscapeUrl.new(OpenStruct.new(log:@logger,:opts=>nil))
-+ esc.call status: text
- end
-
- it "through normal url" do
-- filtered("http://example.com").should == { :status => "http://example.com"}
-+ expect(filtered("http://example.com")).to eq({ status: "http://example.com"})
- end
-
- it "escape only url" do
-- filtered("あああ http://example.com/あああ").should == { :status => "あああ http://example.com/%E3%81%82%E3%81%82%E3%81%82" }
-+ expect(filtered("あああ http://example.com/あああ")).to eq({ status: "あああ http://example.com/%E3%81%82%E3%81%82%E3%81%82" })
- end
- end
-
-@@ -33,18 +33,18 @@ if defined? ::Punycode then
- describe Atig::OFilter::EscapeUrl,"when punycode is enabled" do
- before do
- @logger = double('Logger')
-- @logger.should_receive(:info).at_most(:once)
-- @logger.should_receive(:error).at_most(:once)
-- @logger.should_receive(:debug).at_most(:once)
-+ expect(@logger).to receive(:info).at_most(:once)
-+ expect(@logger).to receive(:error).at_most(:once)
-+ expect(@logger).to receive(:debug).at_most(:once)
- end
-
- def filtered(text,opt={})
-- esc = Atig::OFilter::EscapeUrl.new(OpenStruct.new(:log=>@logger,:opts=>nil))
-- esc.call :status => text
-+ esc = Atig::OFilter::EscapeUrl.new(OpenStruct.new(log:@logger,:opts=>nil))
-+ esc.call status: text
- end
-
- it "escape international URL" do
-- filtered("http://あああ.com").should == {:status => "http://xn--l8jaa.com" }
-+ expect(filtered("http://あああ.com")).to eq({status: "http://xn--l8jaa.com" })
- end
- end
- end
-diff --git a/spec/ofilter/footer_spec.rb b/spec/ofilter/footer_spec.rb
-index 9e1e4b8..a7efefa 100644
---- a/spec/ofilter/footer_spec.rb
-+++ b/spec/ofilter/footer_spec.rb
-@@ -7,26 +7,26 @@ require 'ostruct'
- describe Atig::OFilter::Footer do
- before do
- @opts = OpenStruct.new
-- @filter = Atig::OFilter::Footer.new(OpenStruct.new(:opts=>@opts))
-+ @filter = Atig::OFilter::Footer.new(OpenStruct.new(opts:@opts))
- end
-
- it "should pass through" do
-- @filter.call(:status => 'hi').should == {
-- :status => "hi"
-- }
-+ expect(@filter.call(status: 'hi')).to eq({
-+ status: "hi"
-+ })
- end
-
- it "should append footer" do
- @opts.footer = '*tw*'
-- @filter.call(:status => 'hi').should == {
-- :status => "hi *tw*"
-- }
-+ expect(@filter.call(status: 'hi')).to eq({
-+ status: "hi *tw*"
-+ })
- end
-
- it "should not append footer" do
- @opts.footer = false
-- @filter.call(:status => 'hi').should == {
-- :status => "hi"
-- }
-+ expect(@filter.call(status: 'hi')).to eq({
-+ status: "hi"
-+ })
- end
- end
-diff --git a/spec/ofilter/geo_spec.rb b/spec/ofilter/geo_spec.rb
-index 6463fc6..2427acc 100644
---- a/spec/ofilter/geo_spec.rb
-+++ b/spec/ofilter/geo_spec.rb
-@@ -6,28 +6,28 @@ require 'ostruct'
-
- describe Atig::OFilter::Geo,"when disabled" do
- def filtered(text,opt={})
-- geo = Atig::OFilter::Geo.new(OpenStruct.new(:opts=>OpenStruct.new(opt)))
-- geo.call :status => text
-+ geo = Atig::OFilter::Geo.new(OpenStruct.new(opts:OpenStruct.new(opt)))
-+ geo.call status: text
- end
-
- it "should through" do
-- filtered("hi").should == {
-- :status => "hi"
-- }
-+ expect(filtered("hi")).to eq({
-+ status: "hi"
-+ })
- end
- end
-
- describe Atig::OFilter::Geo,"when enabled" do
- def filtered(text,opt={})
-- geo = Atig::OFilter::Geo.new(OpenStruct.new(:opts=>OpenStruct.new(opt)))
-- geo.call :status => text
-+ geo = Atig::OFilter::Geo.new(OpenStruct.new(opts:OpenStruct.new(opt)))
-+ geo.call status: text
- end
-
- it "add lat & long" do
-- filtered("hi",:ll=>"42.1,43.1").should == {
-- :status => "hi",
-- :lat => 42.1,
-- :long => 43.1
-- }
-+ expect(filtered("hi",:ll=>"42.1,43.1")).to eq({
-+ status: "hi",
-+ lat: 42.1,
-+ long: 43.1
-+ })
- end
- end
-diff --git a/spec/ofilter/short_url_spec.rb b/spec/ofilter/short_url_spec.rb
-index bfafdee..580661e 100644
---- a/spec/ofilter/short_url_spec.rb
-+++ b/spec/ofilter/short_url_spec.rb
-@@ -8,17 +8,17 @@ describe Atig::OFilter::ShortUrl,"when no-login bitly" do
- before do
- logger = double('Logger')
- bitly = double("Bitly")
-- bitly.stub(:shorten).and_return{|s|
-+ allow(bitly).to receive(:shorten){|s|
- "[#{s}]"
- }
-- Atig::Bitly.should_receive(:no_login).with(logger).and_return(bitly)
-- @ofilter = Atig::OFilter::ShortUrl.new(OpenStruct.new(:log=>logger, :opts=>OpenStruct.new('bitlify'=>true)))
-+ expect(Atig::Bitly).to receive(:no_login).with(logger).and_return(bitly)
-+ @ofilter = Atig::OFilter::ShortUrl.new(OpenStruct.new(log:logger, opts:OpenStruct.new('bitlify'=>true)))
- end
-
- it "should shorten url by bitly" do
-- @ofilter.call({:status => "this is http://example.com/a http://example.com/b"}).should == {
-- :status => "this is [http://example.com/a] [http://example.com/b]"
-- }
-+ expect(@ofilter.call({status: "this is http://example.com/a http://example.com/b"})).to eq({
-+ status: "this is [http://example.com/a] [http://example.com/b]"
-+ })
- end
- end
-
-@@ -26,17 +26,17 @@ describe Atig::OFilter::ShortUrl,"when no-login bitly with size" do
- before do
- logger = double('Logger')
- bitly = double("Bitly")
-- bitly.stub(:shorten).and_return{|s|
-+ allow(bitly).to receive(:shorten){|s|
- "[#{s}]"
- }
-- Atig::Bitly.should_receive(:no_login).with(logger).and_return(bitly)
-- @ofilter = Atig::OFilter::ShortUrl.new(OpenStruct.new(:log=>logger, :opts=>OpenStruct.new('bitlify'=>13)))
-+ expect(Atig::Bitly).to receive(:no_login).with(logger).and_return(bitly)
-+ @ofilter = Atig::OFilter::ShortUrl.new(OpenStruct.new(log:logger, opts:OpenStruct.new('bitlify'=>13)))
- end
-
- it "should only shorten large url" do
-- @ofilter.call({:status => "this is http://example.com/a http://a.com"}).should == {
-- :status => "this is [http://example.com/a] http://a.com"
-- }
-+ expect(@ofilter.call({status: "this is http://example.com/a http://a.com"})).to eq({
-+ status: "this is [http://example.com/a] http://a.com"
-+ })
- end
- end
-
-@@ -44,17 +44,17 @@ describe Atig::OFilter::ShortUrl,"when login bitly" do
- before do
- logger = double('Logger')
- bitly = double("Bitly")
-- bitly.stub(:shorten).and_return{|s|
-+ allow(bitly).to receive(:shorten){|s|
- "[#{s}]"
- }
-- Atig::Bitly.should_receive(:login).with(logger,"username","api_key").and_return(bitly)
-- @ofilter = Atig::OFilter::ShortUrl.new(OpenStruct.new(:log=>logger, :opts=>OpenStruct.new('bitlify'=>'username:api_key')))
-+ expect(Atig::Bitly).to receive(:login).with(logger,"username","api_key").and_return(bitly)
-+ @ofilter = Atig::OFilter::ShortUrl.new(OpenStruct.new(log:logger, opts:OpenStruct.new('bitlify'=>'username:api_key')))
- end
-
- it "should only shorten large url" do
-- @ofilter.call({:status => "this is http://example.com/a http://example.com/b"}).should == {
-- :status => "this is [http://example.com/a] [http://example.com/b]"
-- }
-+ expect(@ofilter.call({status: "this is http://example.com/a http://example.com/b"})).to eq({
-+ status: "this is [http://example.com/a] [http://example.com/b]"
-+ })
- end
- end
-
-@@ -62,17 +62,17 @@ describe Atig::OFilter::ShortUrl,"when login bitly with size" do
- before do
- logger = double('Logger')
- bitly = double("Bitly")
-- bitly.stub(:shorten).and_return{|s|
-+ allow(bitly).to receive(:shorten){|s|
- "[#{s}]"
- }
-- Atig::Bitly.should_receive(:login).with(logger,"username","api_key").and_return(bitly)
-- @ofilter = Atig::OFilter::ShortUrl.new(OpenStruct.new(:log=>logger, :opts=>OpenStruct.new('bitlify'=>'username:api_key:13')))
-+ expect(Atig::Bitly).to receive(:login).with(logger,"username","api_key").and_return(bitly)
-+ @ofilter = Atig::OFilter::ShortUrl.new(OpenStruct.new(log:logger, opts:OpenStruct.new('bitlify'=>'username:api_key:13')))
- end
-
- it "should only shorten large url" do
-- @ofilter.call({:status => "this is http://example.com/a http://a.com"}).should == {
-- :status => "this is [http://example.com/a] http://a.com"
-- }
-+ expect(@ofilter.call({status: "this is http://example.com/a http://a.com"})).to eq({
-+ status: "this is [http://example.com/a] http://a.com"
-+ })
- end
- end
-
-@@ -80,12 +80,12 @@ describe Atig::OFilter::ShortUrl,"when nop" do
- before do
- logger = double('Logger')
-
-- @ofilter = Atig::OFilter::ShortUrl.new(OpenStruct.new(:log=>logger, :opts=>OpenStruct.new()))
-+ @ofilter = Atig::OFilter::ShortUrl.new(OpenStruct.new(log:logger, opts:OpenStruct.new()))
- end
-
- it "should only not do anything" do
-- @ofilter.call({:status => "this is http://example.com/a http://a.com"}).should == {
-- :status => "this is http://example.com/a http://a.com"
-- }
-+ expect(@ofilter.call({status: "this is http://example.com/a http://a.com"})).to eq({
-+ status: "this is http://example.com/a http://a.com"
-+ })
- end
- end
-diff --git a/spec/option_spec.rb b/spec/option_spec.rb
-index 1604f24..9ef2f33 100644
---- a/spec/option_spec.rb
-+++ b/spec/option_spec.rb
-@@ -9,74 +9,74 @@ describe Atig::Option do
- end
-
- it "should have bool property" do
-- @opt.a.should be_true
-+ expect(@opt.a).to be_truthy
- end
-
- it "should have int property" do
-- @opt.b.should == 1
-+ expect(@opt.b).to eq(1)
- end
-
- it "should have float property" do
-- @opt.c.should == 1.2
-+ expect(@opt.c).to eq(1.2)
- end
-
- it "should have string property" do
-- @opt.d.should == 'foo'
-+ expect(@opt.d).to eq('foo')
- end
-
- it "should not have other property" do
-- @opt.e.should == nil
-+ expect(@opt.e).to eq(nil)
- end
-
- it "should update the value" do
- @opt.a = false
-- @opt.a.should be_false
-+ expect(@opt.a).to be_falsey
- end
-
- it "should be accessed by [name]" do
-- @opt[:a].should be_true
-- @opt['a'].should be_true
-+ expect(@opt[:a]).to be_truthy
-+ expect(@opt['a']).to be_truthy
- end
-
- it "should be updated by [name]=" do
- @opt[:a] = false
-
-- @opt.a.should be_false
-- @opt[:a].should be_false
-- @opt['a'].should be_false
-+ expect(@opt.a).to be_falsey
-+ expect(@opt[:a]).to be_falsey
-+ expect(@opt['a']).to be_falsey
- end
-
- it "should be updated by [name]=" do
- @opt['a'] = false
-
-- @opt.a.should be_false
-- @opt[:a].should be_false
-- @opt['a'].should be_false
-+ expect(@opt.a).to be_falsey
-+ expect(@opt[:a]).to be_falsey
-+ expect(@opt['a']).to be_falsey
- end
-
- it "should be created by [name]=" do
- @opt['e'] = false
-
-- @opt.e.should be_false
-- @opt[:e].should be_false
-- @opt['e'].should be_false
-+ expect(@opt.e).to be_falsey
-+ expect(@opt[:e]).to be_falsey
-+ expect(@opt['e']).to be_falsey
- end
-
- it "should be access to id" do
-- @opt.id.should be_nil
-+ expect(@opt.id).to be_nil
- @opt.id = 1
-- @opt.id.should == 1
-+ expect(@opt.id).to eq(1)
- end
-
- it "should have default value" do
-- @opt.api_base.should == 'https://api.twitter.com/1.1/'
-+ expect(@opt.api_base).to eq('https://api.twitter.com/1.1/')
- end
-
- it "should list up all fields" do
-- @opt.fields.map{|x| x.to_s }.sort.should == %w(api_base stream_api_base search_api_base a b c d).sort
-+ expect(@opt.fields.map{|x| x.to_s }.sort).to eq(%w(api_base stream_api_base search_api_base a b c d).sort)
-
- @opt.e = 1
-- @opt.fields.map{|x| x.to_s }.sort.should == %w(api_base search_api_base stream_api_base a b c d e).sort
-+ expect(@opt.fields.map{|x| x.to_s }.sort).to eq(%w(api_base search_api_base stream_api_base a b c d e).sort)
- end
- end
-
-@@ -86,6 +86,6 @@ describe Atig::Option,'with not default value' do
- end
-
- it "should be specified value" do
-- @opt.api_base.should == 'twitter.com'
-+ expect(@opt.api_base).to eq('twitter.com')
- end
- end
-diff --git a/spec/sized_hash_spec.rb b/spec/sized_hash_spec.rb
-index 17cc57e..c3507f1 100644
---- a/spec/sized_hash_spec.rb
-+++ b/spec/sized_hash_spec.rb
-@@ -10,7 +10,7 @@ describe Atig::SizedHash do
-
- it "はkeyとvalueでアクセスできる" do
- @hash[:foo] = :bar
-- @hash[:foo].should == :bar
-+ expect(@hash[:foo]).to eq(:bar)
- end
-
- it "はサイズが取得できる" do
-@@ -29,17 +29,17 @@ describe Atig::SizedHash do
- it "は古いのが消える" do
- ('a'..'c').each{|c| @hash[c] = 42 }
-
-- @hash.key?('a').should be_true
-+ expect(@hash.key?('a')).to be_truthy
-
- @hash['d'] = 42
-- @hash.key?('a').should be_false
-+ expect(@hash.key?('a')).to be_falsey
- end
-
- it "は使うたびに寿命が伸びる" do
- ('a'..'c').each{|c| @hash[c] = 42 }
- @hash['a']
- @hash['d'] = 42
-- @hash.key?('a').should be_true
-- @hash.key?('b').should be_false
-+ expect(@hash.key?('a')).to be_truthy
-+ expect(@hash.key?('b')).to be_falsey
- end
- end
-diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
-index cb0adc7..39a4f10 100644
---- a/spec/spec_helper.rb
-+++ b/spec/spec_helper.rb
-@@ -3,9 +3,11 @@ require 'bundler/setup'
- require 'atig/monkey'
- require 'command_helper'
-
-+ENV['TZ'] = 'UTC'
-+
- RSpec::Matchers.define :be_text do |text|
- match do |status|
-- status.text.should == text
-+ expect(status.text).to eq(text)
- end
- end
-
-@@ -15,16 +17,16 @@ end
-
- def user(id, name)
- user = double("User-#{name}")
-- user.stub(:id).and_return(id)
-- user.stub(:screen_name).and_return(name)
-+ allow(user).to receive(:id).and_return(id)
-+ allow(user).to receive(:screen_name).and_return(name)
- user
- end
-
- def entry(user, status, name = 'entry', id = 0)
- entry = double name
-- entry.stub('id').and_return(id)
-- entry.stub('user').and_return(user)
-- entry.stub('status').and_return(status)
-+ allow(entry).to receive('id').and_return(id)
-+ allow(entry).to receive('user').and_return(user)
-+ allow(entry).to receive('status').and_return(status)
- entry
- end
-
-diff --git a/spec/update_checker_spec.rb b/spec/update_checker_spec.rb
-index 1ad54c9..5141733 100644
---- a/spec/update_checker_spec.rb
-+++ b/spec/update_checker_spec.rb
-@@ -13,8 +13,8 @@ describe Atig::UpdateChecker,'when use git version' do
- end
-
- before do
-- Atig::UpdateChecker.stub(:git?).and_return(true)
-- Atig::UpdateChecker.stub(:commits).
-+ allow(Atig::UpdateChecker).to receive(:git?).and_return(true)
-+ allow(Atig::UpdateChecker).to receive(:commits).
- and_return [
- commit('a', 'foo'),
- commit('b', 'bar'),
-@@ -25,31 +25,31 @@ describe Atig::UpdateChecker,'when use git version' do
- end
-
- it "should not do anything when use HEAD version" do
-- Atig::UpdateChecker.stub(:local_repos?).and_return true
-- Atig::UpdateChecker.stub(:server_version).and_return rev('a')
-+ allow(Atig::UpdateChecker).to receive(:local_repos?).and_return true
-+ allow(Atig::UpdateChecker).to receive(:server_version).and_return rev('a')
-
-- Atig::UpdateChecker.latest.should == []
-+ expect(Atig::UpdateChecker.latest).to eq([])
- end
-
- it "should notify when not use HEAD version" do
-- Atig::UpdateChecker.stub(:local_repos?).and_return false
-- Atig::UpdateChecker.stub(:server_version).and_return rev('b')
-+ allow(Atig::UpdateChecker).to receive(:local_repos?).and_return false
-+ allow(Atig::UpdateChecker).to receive(:server_version).and_return rev('b')
-
-- Atig::UpdateChecker.latest.should == [ 'foo' ]
-+ expect(Atig::UpdateChecker.latest).to eq([ 'foo' ])
- end
-
- it "should notify many changes" do
-- Atig::UpdateChecker.stub(:local_repos?).and_return false
-- Atig::UpdateChecker.stub(:server_version).and_return rev('d')
-+ allow(Atig::UpdateChecker).to receive(:local_repos?).and_return false
-+ allow(Atig::UpdateChecker).to receive(:server_version).and_return rev('d')
-
-- Atig::UpdateChecker.latest.should == [ 'foo', 'bar', 'baz' ]
-+ expect(Atig::UpdateChecker.latest).to eq([ 'foo', 'bar', 'baz' ])
- end
-
- it "should notify all changes" do
-- Atig::UpdateChecker.stub(:local_repos?).and_return false
-- Atig::UpdateChecker.stub(:server_version).and_return rev('z')
-+ allow(Atig::UpdateChecker).to receive(:local_repos?).and_return false
-+ allow(Atig::UpdateChecker).to receive(:server_version).and_return rev('z')
-
-- Atig::UpdateChecker.latest.should == [ 'foo', 'bar', 'baz', 'xyzzy', 'fuga' ]
-+ expect(Atig::UpdateChecker.latest).to eq([ 'foo', 'bar', 'baz', 'xyzzy', 'fuga' ])
- end
-
- end
diff --git a/debian/patches/series b/debian/patches/series
index e390e76..0a3b2eb 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,3 @@
-# import-git-head_2015-08-14.patch
0001-Drop-Bundler-and-RubyGems-dependencies.patch
0002-Disable-update-checker-for-Debian-Package.patch
+0003-Replace-git-execution-from-gemspec.patch
diff --git a/debian/rules b/debian/rules
index f448167..cef16db 100755
--- a/debian/rules
+++ b/debian/rules
@@ -9,6 +9,7 @@ override_dh_auto_install:
dh_auto_install
rm -f $(CURDIR)/debian/atig/usr/bin/console
rm -f $(CURDIR)/debian/atig/usr/bin/setup
+ rm -f $(CURDIR)/debian/atig/usr/lib/ruby/vendor_ruby/memory_profiler.rb
override_dh_auto_clean:
dh_auto_clean
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/atig.git
More information about the Pkg-ruby-extras-commits
mailing list