Ruby

Web上の画像を付けてツイート(1つ・複数)

Twitter gemバージョン6.2.0以降の記事は次のリンクに書きました。 Web上の画像を付けてツイート(1つ・複数)Twitter gemバージョン6.2.0以降の場合 - 別館 子子子子子子(ねこのここねこ) 以下の記事はTwitter gemバージョン6.1.0までの内容です。 画像…

Twitterのツイートにおけるt.coの文字数を取得

t.coの換算が10/19ぐらいから23になってしまって困っている [twitter:@riocampos] です。 こういうときにも困らないようにするには、 Twitter API に入っている数値を取得して定数に入れるのが良いです。 client = Twitter::REST::Client.new(KEY_SECRET_HAS…

nationalgeographic.comの記事を画像付きで印刷したい

小顔のヒト属新種ホモ・ナレディを発見、南ア | ナショナルジオグラフィック日本版サイト という記事の大元記事がこちら。 This Face Changes the Human Story. But How? しかし、残念ながら、印刷しようとすると文章だけになってしまう。 CSS を見ると@medi…

「まつもと直伝 プログラミングのオキテ」からデザインパターン関連部分のリンク

結局はDRY原則もOCPも「原則」に過ぎず,状況に応じて適切に選択しなければならないということなのでしょう。再利用する予定がない,あるいは将来機能拡張する予定がないコードにむりやりデザイン・パターンを適用するのは望ましくないでしょう。デザイン・…

ツイートを検索してRTするスクリプトの一例

Twitterアプリケーションを設定・作成し、続いてスクリプトの設定をしていきます。 今日は ドローンが首相官邸の屋上に落下 セシウムを検出【UPDATE】 のネタが大きかったので、「ドローン」または「drone」を検索することにします。 Twitter アプリケーショ…

Twitter gemの検索結果インスタンスとその内部を解説(ついでに since_id モンキーパッチも)

Twitter gem (バージョンは5.14.0)を使って検索して得られるインスタンス(以下、検索結果インスタンスと呼びます)の扱いが意外と難しいのに詳細解説している記事が見当たらないので書いてみました。 TL;DR(要点) result_tweets = client.search(query,…

MacでRubyを使ってMeCabを利用する準備

形態素解析など言語解析業界では Python のほうがメジャーなようです。でも Rubyist としてはそこでも Ruby で突き進んでいきたいわけです(速度は気にしないという前提)。なので Ruby での使い方をやっていきます。 MeCabとは MeCab (和布蕪)とは MeCabは …

モンキーパッチでArray#eachを上書き(ついでにHash#eachも

Array#eachからRubyのブロックを理解する - Qiita へのコメントの備忘録。 実際にyieldを使ってeachメソッドを作ってみると、次のようになります。(eachメソッドを上書きしようとしたらstack level too deep (SystemStackError)になってしまいましたので、e…

多重代入と連鎖した代入との違い

多重代入について(8409)|teratail で回答したものを補足して引用。 質問: a, b = 1, 1 と a = b = 1 のときに、どちらでも a += 1; b += 2 とすると a は2、 b は3になるので、両者は同じ意味か?回答: 違います。 a, b = 1, 1 は多重代入で、a と b それ…

HashじゃなくStructを使ってみようメモ

ネットから HTML を取得し、 Nokogiri でパースして取れた項目をテキトーに Hash に入れて、それを配列に入れておく、ようなことをしょっちゅうしています。 Hash にしておくと当然ながら項目は Hash[:title] のように Hash#[] で取得することになります。メ…

Mechanizeの使い方(CookiesはRedisサーバへ保存)

普段は OpenURL 、 JS が必要な場合には Watir-Webdriver を使ってサイトへアクセスするのですが、今回は Cookies が必要なだけだったので、初めて Mechanize を使ってみました。記録しておきます。 今回の目的 Qiita にログインして http://qiita.com/api/n…

amazon-ecs gem めも

EXAMPLE require 'amazon/ecs' # Configure your access key, secret key and other options such as the associate tag. Amazon::Ecs.configure do |options| options[:AWS_access_key_id] = '[your access key]' options[:AWS_secret_key] = '[you secret …

Twitter APIめも

REST API(Twitter::REST::Client.new(setting)) 検索 検索APIを使っても検索時刻から20秒前までのツイートは取得出来ません。 User Streaming API(Twitter::Streaming::Client.new(setting).user) ブロックパラメータ status は Twitter::Tweet や Twitt…

minifyされたCSSをセレクタ毎に改行するための正規表現

各セレクタにおける CSS の指定状況を確認するため grep しやすいよう加工したかったのでいま作った。合ってるとは思うけど厳密に正確かどうかはまだ不明。 スクリプトだと while line = gets puts line.chomp.gsub(%r`@[\[\]\w\s^%#"'/(){}>?!.*:;,=-]+}}|\…

OmniAuth Twitterを使ったツイッター認証(認可)状況確認

SinatraでTwitterのWebアプリを作るための学習1 - 別館 子子子子子子(ねこのここねこ) では まず twitter oauth example を使ってみます。 としてそのスクリプトのリーディングも行いました。 ツイッター認証メソッド ツイッター認証されているかどうかを…

Hamlメモ

Haml リファレンス File: REFERENCE — Haml Documentation Attributes: {} Brackets represent a Ruby hash that is used for specifying the attributes of an element. %html{:xmlns => "http://www.w3.org/1999/xhtml", "xml:lang" => "en", :lang => "en…

SinatraでTwitterのWebアプリを作るための学習1

参考アプリで学習その1 まず twitter oauth example を使ってみます。 右側にある「Download Gist」を押して tar.gz ファイルをダウンロードし、展開します。 そして views ディレクトリを作成して、「views_index.erb」ファイルをそこへ移動して「index.er…

Sinatraメモ

本家 Sinatra: README (Japanese) Sinatra Recipes(Sinatra Recipes の日本語訳(大感謝)) 起動(クラシックスタイル) ruby myapp.rb [-h] [-x] [-e ENVIRONMENT] [-p PORT] [-o HOST] [-s HANDLER]オプション: -h # ヘルプ -p # ポート指定(デフォルト…

Sinatra学習の基礎としてRackを学ぶ

概要(歴史的な経緯など) 第23回 Rackとは何か(1)Rackの生まれた背景:Ruby Freaks Lounge|gihyo.jp … 技術評論社 第24回 Rackとは何か(2)Rackの使い方:Ruby Freaks Lounge|gihyo.jp … 技術評論社 第25回 Rackとは何か(3)ミドルウェアのすすめ:Ru…

SafariDriverの作り方

この記事は古くなりました。 Apple Safari: safaridriver (no download needed, it’s pre-installed if you have Safari 10) Drivers – Watir Project safaridriver requires using Safari 10 on either El Capitan or Sierra. Safari – Watir Project だそ…

Watir Webdriverの使い方の例: StackOverflow 日本版へログインする

JavaScript が使われているサイトのスクレイピングなどに役立つ Watir Webdriver 。しょっちゅう使っているのでこれに関する記事を書きたいと思いつつ書いてなかったのですが、今回 ruby - JavaScript が実行された後の HTML を取得したい - スタック・オー…

saleonlines.netに引っ掛かってしまったアカウントを検索するRubyスクリプト

1/10から大量発生しているsaleonlines.netスパムを検索するためのスクリプトです。 参考:saleonlines.net というスパムツイートに注意! - Togetterまとめ30秒おきにツイートを検索します。検索1回に付き100ツイートまで検索出来ます(手抜きスクリプトのた…

ゆかりんのーとからTogetterに移行するためのRubyスクリプト

2015年5月12日をもって「Yukarin'Note」のサービスを終了いたします。 twitterのツイートをまとめるサービスの「Togetter」をご利用ください。 【重要】Yukarin'Noteサービス終了のお知らせ Yukarin'Noteからのお知らせ 私自身は Togetter しか使っていない…

rbenvでMacにRuby 2.2.0 インストール(オプション指定最新版

個人的な最新インストール方法: $ CONFIGURE_OPTS="--disable-install-rdoc --enable-shared" rbenv install 2.2.0ポイント:いままで必要だった CONFIGURE_OPTS="--with-readline-dir=`brew --prefix readline` --with-openssl-dir=`brew --prefix openssl…

POODLE対策されたPhantomJS 1.9.8をインストール

以前から PhantomJS を使って Watir でアクセスしていた某サイト、最近なぜかアクセスできず悩んでいました。 UA を変えてみたり、いろいろやってみたのだけどアクセスできず。 ふと気付いたのが、このサイトへのアクセスが https であること。 もしや、と思…

herokuのPhantomJSを1.9.8のものに変更

PhantomJSのbuildpackは既に1.9.8に更新されています。 stomita/heroku-buildpack-phantomjs ので、git対象のファイルを何か更新して、herokuにpushしてやればOKです(ファイル更新無しにherokuの更新は出来ないのだろうか…)。 ログはこんな感じ。 $ git pu…

faviconがあるかないか確認

速記メモのみ。 require 'open-uri' def get_favicon(domain) open(domain + "/favicon.ico") end faviconが存在する場合 > yahoo = get_favicon("http://www.yahoo.co.jp") # => #<File:/var/folders/r8/t51gts3s5kb5b5qvskswx22c0000gn/T/open-uri20141120-3062-cb0tnc> > yahoo.base_uri => #</file:/var/folders/r8/t51gts3s5kb5b5qvskswx22c0000gn/t/open-uri20141120-3062-cb0tnc>

RubyでJSのURIエンコードを

先にまとめ JavaScript の encodeURIComponent と encodeURI と同じエンコードするメソッドを String クラスに作るモンキーパッチ。 class String def encodeURIComponent unescaped_form = /([#{Regexp.escape(';/?:@&=+$,<>#%"{}|\\^[]`' + (0x0..0x1f).ma…

anyenvをインストール&Homebrewでインストール済のrbenvと互換を取る

rbenv 好きの [twitter:@riocampos] です。 pyenv も入れてます。 node.js はまだほとんど使ってないけど nodebrew だけぶち込んでいます。でも ndenv あると知ったのでそちらを入れたい、ついでに anyenv を入れよう、という魂胆です。 作者による anyenv …

anyenvをインストール2

anyenvをインストール&Homebrewでインストール済のrbenvと互換を取る - 別館 子子子子子子(ねこのここねこ) の続きです。 リンクを最低限にしたほうが対応しやすいはず さきほど書いた対応ではリンクを最低3つ張れば対応出来ます。でも、 **env 一つ当た…