Ruby
helios

巨大な Helios を取り巻く gem 群について調べてみた

More than 5 years have passed since last update.

Helios は これ
単なる勉強ログなのでおそらくあまり参考にはなりません。
また、Sinatra 関係が多かったのでざっくり省略してあります。

1. Helios を構成する iOS 連携ライブラリ群

すべて Heroku のmattt (Mattt Thompson)氏によるもの。

1-1. cupertino

mattt/cupertino · GitHub

Automate administrative tasks that you would normally have to do through the Apple Dev Center websites. Life's too short to manage device identifiers by hand!

Ruby から Apple Developer Center にアクセスできる驚異のライブラリ。
ターミナルからデバイスの管理などが行えるコマンドラインツールも付属する。

1-2. houston

mattt/houston · GitHub

Houston is a simple gem for sending Apple Push Notifications. Pass your credentials, construct your message, and send it.

iOS のプッシュ通知サービスを利用するためのライブラリ。
同様の機能を持つライブラリに APNS gem があるが、houston gem のほうが実用的な機能がまとまっている。

1-3. rack-push-notification

mattt/rack-push-notification · GitHub

This project is part of a series of open source libraries covering the mission-critical aspects of an iOS app's infrastructure.

Rack に iOS の APNS にデバイス登録するためのエンドポイントを用意するライブラリ。
iOS 側の Orbiter と連携して iOS と Rack アプリケーションのインフラ統合を担うシリーズの一端となる。

1-4. shenzhen

mattt/shenzhen · GitHub

Create .ipa files and then distribute them with TestFlight or HockeyApp, all from the command line!

Xcode の CLI ツールである xcodebuild の Ruby ラッパーを含む iOS プロジェクトのビルド・パッケージング用ライブラリ。
.ipa ファイル (iOS のアプリケーションバイナリ) 生成の煩わしさから解放してくれる。
アプリケーション配布・フィードバック収集サービスである TestFlight や HockeyApp へのデプロイ機構も持つ。

1-5. venice

mattt/venice · GitHub

Venice is a simple gem for verifying Apple In-App Purchase receipts, and retrieving the information associated with receipt data.

iOS のアプリ内課金 (In-App Purchase) の Receipt を Ruby から検証・解析できるライブラリ。
rack-in-app-purchase 内で使用され、Rack アプリケーションの In-App Purchase 対応を容易に行うことができる。

1-6. rack-in-app-purchase

mattt/rack-in-app-purchase · GitHub

Rack::InAppPurchase is Rack middleware that manages products for in-app-purchases and verifies receipts.

iOS のアプリ内課金 (In-App Purchase) に対応する Rack のミドルウェア。
venice に依存する。

1-7. dubai

mattt/dubai · GitHub

Dubai makes it easy to generate .pkpass from a script or the command line, allowing you to rapidly iterate on the design and content of your passes, or generate one-offs on the fly.

iOS 6 の機能である Passbook を開発・パッケージングするためのユーティリティ。コマンドラインツールとして tk コマンドが提供される。
ターミナルから Passbook に関連するリソースを管理・ビルド・認証することが可能で、Passbook の配信サーバを構築することも可能。

1-8. rack-passbook

mattt/rack-passbook · GitHub

Rack アプリケーションを iOS の Passbook に容易に対応させるためのミドルウェア。

1-9. rack-newsstand

mattt/rack-newsstand · GitHub

Rack アプリケーションを iOS の Newsstand に容易に対応させるためのミドルウェア。

1-10. core_data

mattt/core_data · GitHub

iOS や OS X のデータベースフレームワークである CoreData のスキーマ定義ファイル .xcdatamodel をパースするライブラリ。

1-11. rack-scaffold

mattt/rack-scaffold · GitHub

上記 core_data gem を用いて CoreData のスキーマ定義ファイルからモデル群を生成する Rack のミドルウェア。

README より抜粋:

require 'sequel'
require 'core_data'
require 'rack/scaffold'

DB = Sequel.connect(ENV['DATABASE_URL'])

run Rack::Scaffold model: './Example.xcdatamodeld', only: [:create, :read]

2. Heroku 関連

Helios は Heroku 上でも動作するため、Heroku 関連のライブラリもインストールされる。

2-1. foreman

ddollar/foreman · GitHub

Foreman は Heroku における Procfile の後方で動作するアプリケーションを管理するためのツール。
Procfile は、Heroku 内でプロセスのタイプ (web, worker, urgentworker, clock 等) を識別するためのメカニズムのこと。

2-2. rails-database-url

glenngillen/rails-database-url · GitHub

heroku で使用する DATABASE_URL を database.yml から読み取って設定してくれる小さなライブラリ。

3. Rack 関連

3-1. rack-contrib

rack/rack-contrib · GitHub

Rack のアドオンコンポーネント群。

3-2. rack-protection

rkh/rack-protection · GitHub

Rack を XSS や CSRF, クリックジャッキングなどの脆弱性攻撃に対処できるようにするライブラリ。

4. コマンドライン関連

4-1. highline

JEG2/highline · GitHub

CLI からのユーザ入力を補助するライブラリ。
パスワードをエコーバックさせないようにしたりできる。
また、複数の選択肢からユーザに選択させるような使い方もできそう。

ドキュメントより抜粋:

choose do |menu|
  menu.prompt = "Please choose your favorite programming language?  "

  menu.choice(:ruby) { say("Good choice!") }
  menu.choices(:python, :perl) { say("Not from around here, are you?") }
end

4-2. commander

visionmedia/commander · GitHub

Thor のような感じで CLI のコマンドを簡単につくれるライブラリ。
依存 gem に上記 highline を持つ。

terminal-table

visionmedia/terminal-table · GitHub

ターミナルにテーブルを描画できる。

README より抜粋:

rows = []
rows << ['One', 1]
rows << ['Two', 2]
rows << ['Three', 3]
table = Terminal::Table.new :rows => rows

# > puts table
#
# +-------+---+
# | One   | 1 |
# | Two   | 2 |
# | Three | 3 |
# +-------+---+

4-3. formatador

geemus/formatador · GitHub

CLI の標準出力をいい感じにフォーマットしてくれるライブラリ。
こちらも terminal-table と同じくテーブルの描画ができる。
また、プログレスバーの表示も可能。

5. Webフロントエンド関連

5-1. compass

chriseppstein/compass · GitHub

Compass is an open-source CSS Authoring Framework.

CSS拡張メタ言語である SASS に乗っかって、ベンダープリフィクスの解決、クリアフィクス、CSS3 関連の機能などを網羅的に、簡潔に使えるようにするための CSS ユーティリティフレームワーク。

5-2. zurb-foundation

zurb/foundation · GitHub

レスポンシブ・ウェブデザインに対応したウェブページを構築するための CSS フレームワーク。

5-3. haml

haml/haml · GitHub

HTML Abstraction Markup Language

言わずと知れた HTML 生成のためのマークアップ言語。

5-4. jsmin

rgrove/jsmin · GitHub

JavaScript を minify することができる jsmin.c の Ruby 実装。
こちらの gem はもう長いことメンテされていない模様。
同様の gem では Uglify が有名。

6. ツール群

6-1. fog

fog/fog · GitHub

Ruby から各種クラウドサービスを簡単に扱うことができるライブラリ。
AWS の EC2 や S3 を始め、Rackspace や VMware vSphere などのサービスにも対応している。

6-2. dotenv

bkeepers/dotenv · GitHub

.env というファイルを読み込んで ENV を設定してくれるライブラリ。
APIのトークンやキー等を管理するのに使える。

6-3. plist

bleything/plist · GitHub

Plist is a library to manipulate Property List files, also known as plists. It can parse plist files into native Ruby data structures as well as generating new plist files from your Ruby objects.

OS X や iOS でポピュラーなデータ形式である Property List をパース・ジェネレートできるライブラリ。

6-4. backports

marcandre/backports · GitHub

The goal of ‘backports’ is to make it easier to write ruby code that runs across different versions of Ruby.

古い Ruby でも新しい Ruby の機能 (例えば Array#sampleString#byteslice など) を使えるようにすることで、特定のコードが Ruby のバージョンに関わらず実行できるようにすることを目標としたライブラリ。

6-5. excon

geemus/excon · GitHub

HTTP クライアントライブラリ。
数ある HTTP クライアントとしては4位のシェアを誇るらしいけど日本語の情報は全然見当たらず。

README より抜粋:

# Custom headers
Excon.get('http://geemus.com', :headers => {'Authorization' => 'Basic 0123456789ABCDEF'})

6-6. chunky_png

wvanbergen/chunky_png · GitHub

Pure Ruby で書かれた PNG 読み書き用のライブラリ。
メタデータをいじったりピクセルデータにアクセスしたりできる。

6-7. fssm

ttilley/fssm · GitHub

ファイルのモニタリングができるライブラリ。但し、currently unmaintained とのこと。
現在、同じ用途では Guard が主流。

7. 説明不要っぽいものたち

7-1. sequel

jeremyevans/sequel · GitHub

Ruby のためのデータベース・ツールキット。
SQL の組み立てをかっこいい感じにできる。

7-2. eventmachine

eventmachine/eventmachine · GitHub

イベントドリブンI/Oを提供するフレームワーク。

7-3. net-ssh

net-ssh/net-ssh · GitHub

Pure Ruby で実装された SSH クライアントライブラリ。

7-4. net-scp

net-ssh/net-scp · GitHub

セキュアなファイル転送プロトコルである SCP の Ruby 実装。

7-5. ruby-hmac

ruby-hmac | RubyGems.org | your community gem host

暗号ハッシュ関数を使用してメッセージ認証を行なう仕組みである HMAC の Ruby 実装。