RubyPicoにBrowser.postを実装した

次回リリースの0.9.2で使えるようになる予定です。これで認証トークンが必要な複雑なWeb APIiPhoneから簡単に叩けるようになります。

RubyPico

RubyPico

  • ongaeshi
  • 仕事効率化
  • 無料

使い方は簡単で、URLの後に body, json, header をハッシュ形式で渡すだけです。

# 生のテキストを送信
Browser.post("https://example.com/post", body: "foo\nbar")

# application/x-www-form-urlencoded で送信
hash = {foo: "foo", bar: "bar"}
Browser.post("https://example.com/post", body: hash)

# json形式
Browser.post("https://example.com/post", json: hash)

# ヘッダ情報付きで送信
Browser.post
  "https://example.com/post",
  header: { "Authorization" => "token XXXXXXXX" },
  json: json
  )

例: Gistsに投稿

Created by RubyPico at Sat Nov 12 23:44:12 2016

# https://developer.github.com/v3/gists/#create-a-gist
json = {
  description: "Created by RubyPico at #{Time.now}",
  public: true,
  files: {
    "file1.txt" => {
      content: "updated file contents"
    },
    "old_name.txt" => {
      filename: "new_name.txt",
      content: "modified contents"
    },
    "new_file.txt" => {
      content: "a new file\nあいうえお"
    },
  }
}

puts Browser.post(
  "https://api.github.com/gists",
  header: { "Authorization" => "token XXXXXXXX" },
  json: json
)

宣伝: 個人開発者 Advent Calendar を作りました

個人開発者 Advent Calendar 2016 - Qiita

yatteiki.fmを聞いていて「個人開発者」という言葉はよいなあと思い、他の個人開発者の人たちがどんなものを作っているのか知りたくなり作ってみました。

個人(数人でもOK)が趣味で作っているものを発表していくアドベントカレンダーです。制作物の規模、言語やジャンルは問いませんのでお気軽にご参加いただけたら嬉しいです。

FireLink 2.3.3 リリース - Firefox49で起きる問題を修正

Firefox49になって複数の%url%を含むようなリンクが正しく動かなくなっていましたがPull Request #7のおかげで修正されました。

インストールはこちらからどうぞ。

FireLink - Copy link with keyboard shortcuts :: Add-ons for Firefox

余談: jpm run がFirefox49になると実行できない?

jpm run がFirefox49になると実行できない? - Qiita

RubyPico 0.9.1 リリース - ファイルマネージャーの強化、File、Dir

RubyPico 0.9.1 をリリースしました。ファイルマネージャーの強化、File、Dirが使えるようになりました。

RubyPico

RubyPico

  • ongaeshi
  • 仕事効率化
  • 無料

ファイルマネージャーの強化

ディレクトリが作れるようになりました。実験的なプログラムを/tmp以下に置いたり、複雑なアプリケーションを1つのディレクリ以下にまとめておくことができるようになりました。他にも色々パワーアップしています。

  • Editボタンを追加
  • ディレトリの表示、作成
  • 削除
  • 移動
  • 名前変更
  • ソート種類の変更

f:id:tuto0621:20161106214817p:plain f:id:tuto0621:20161106214906p:plain

File, Dir

FileDirライブラリが使えるようになり、プログラム上でファイルを作ったり、実行時にファイルを読み込むことができるようになりました。

例: tango

複雑なアプリケーションの例として単語帳を作ってみました。

ongaeshi/tango: Flashcard for RubyPico

  • 登録した単語をword.json以下に保存
  • 次回起動時にword.jsonを読み込み
  • 単語の追加、訳の追加、単語を削除したときはword.jsonを更新

f:id:tuto0621:20161106214914j:plain

RubyPicoでアスキーアートアニメーションを作る

次のバージョンで追加されるsleepclearprintという関数を使うと簡単に作れるようになります。

ascii_art.gif

アスキーアートアニメーション - スマホではじめるRubyプログラミング

スマホ用の多面サイコロをRubyで書いてみる

スマホではじめるRubyプログラミングというページをはじめました。

第1弾として多面ダイスを作ってみました。RubyPico0.9で入ったTextView.click_linkを使うとRubyスクリプトが走る擬似ボタンのようなものを作ることができるようになりました、便利です。

dice.gif

お楽しみください。

多面サイコロ - スマホではじめるRubyプログラミング

RubyPico 0.9 リリース - gets、リンク付き文字列、クリックイベント、チュートリアル

RubyPico 0.9 をリリースしました。getsによる入力、リンク付き文字列、クリックイベントのハンドリング、Ruby初心者のためのチュートリアルと盛りだくさんです。

RubyPico

RubyPico

  • ongaeshi
  • 仕事効率化
  • 無料

gets

コンソールを表示しながら入力できるようになったのでより自然なirbが実装できました。

f:id:tuto0621:20160924004944p:plain

詳しくはgetsでirbを再実装をどうぞ。

リンク付き文字列

HTMLのように、見た目は普通の文字だけどクリックすると特定のURLにジャンプできる文字列を生成できるようになりました。

f:id:tuto0621:20160924143357p:plain

詳しくはGitHubの気になるユーザーのレポジトリをiOSで一覧表示するをどうぞ。

クリックイベント

さらにさらに、リンク付き文字列がクリックされたときに指定したコールバック関数が呼べるようになりました。つまりダミーのURLを埋め込んで実際にはRubyプログラムを呼び出すためのボタンを生成する・・ができるようになります!

サンプルタブにclick_link.rbを用意したので参考にしてください。

# # click_link
#
# ## Description
# Make clickable links

def a(str)
  AttrString.new(str, link: str)
end

def reload
  puts "Click bellow links\n\n"
  puts a("foo") + ", " + a("bar") + ", " + a("baz") + ", " + a("clear")
  puts "----"
end

TextView.click_link do |url|
  case url
  when "clear"
    TextView.clear
    reload
  else
    puts url
  end
end

TextView.click_link do |url|
  puts "Hi!, #{url}" if url == "bar"
end

reload

チュートリアル

https://www.ruby-lang.org/ にある「20分ではじめるRuby」をRubyPicoでやるためのドキュメントを書きました。

20分ではじめるRubyPico

iOSが動く端末があれば0からRubyを学習することができます。

RubyにはTry Rubyのようなブラウザだけですぐに試せる素晴らしいチュートリアルがたくさんあります。それらと比べてRubyPicoのよいところは自分のローカルマシンだけで動かせることです。もし無限ループのようなコードを間違えて書いてしまってもアプリを再起動するだけですみます。サーバートラブルで動かないといったこともありません。そしてなんといっても素晴らしいのはチュートリアルが終わったあとは自由に自分の好きなプログラムを書けるということです。早速RubyPicoをダウンロードしてチュートリアルをお試しください。

誤字脱字、分かりにくい、感想などありましたら教えてもらえると助かります。

GitHubの気になるユーザーのレポジトリをiOSで一覧表示する

次のバージョンのRubyPico 0.9 からリンク付き文字列を生成できるようになった。いちいちURLを表示しないですむ。

puts AttrString.new("foo", link: "http://ongaeshi.me")

GitHubのレポジトリ一覧を表示してみる。

def repos(user)
  json = Browser.json("https://api.github.com/users/#{user}/repos?sort=pushed&per_page=8")

  puts "#{user}'s repos"
  json.each do |e|
    puts AttrString.new(e["name"], link:  e["html_url"])
  end
end

repos('ongaeshi')

loop do
  print "user?> "
  name = gets
  repos(name)
end

最初に自分のレポジトリを表示する。2回目以降はユーザー名を入力してその人の最近のレポジトリを見ることができる。

f:id:tuto0621:20160924143357p:plain

matzはstreemやってるとかいつでも分かるようになった。