#! /usr/bin/env ruby require 'bundler' Bundler.require class App < Sinatra::Base get '/' do "Hello World" end end
ReactJSが取り沙汰されるようになって久しい昨今、 Ruby界隈ではRails対応のgem、もしくはプラグインしか存在しておらず、 未だにSinatraやPadrinoでReactJSを(サーバサイドレンダリングも含め)使うためのgemがないことに絶望したので自分で書いた。 個人的にはサーバサイドレンダリングは筋が良い技術だとは到底思えないし、廃れゆくべき技術だと思っているが、 個人開発においてどうしても必要になったため、実装した次第である。 tl; dr; namusyaka/react-sinatraというgemを書いた。 SinatraでReact.jsを用いたサーバサイドレンダリングができるようになる。 サンプルはnamusyaka/react-sinatra-sampleを参照。 このgemを動かすにあたって必要になるnamusyaka/react-sinatra-ujsとい
Twilioで電話をしたらその電話へSMSメッセージを送るサンプルアプリを作っていこうと思います。 サーバーサイドはHerokuで作ろう。言語はrubyです。フレームワークはsinatraで。(Ruby on Railsがまだ覚えられてない。。) 実行環境 ruby 2.1.3p242 OSX Yosemite 10.10.5 sinatra 1.4.6 目次 Herokuでアプリを作る Twilioで電話番号を購入&設定 2の電話番号に電話してSMSのメッセージがくるのを確認 Herokuでアプリを作る 初期設定 どこでもいいので、作業ディレクトリを作ってgit,Gemfileを作ります # フォルダ作成&移動 mkdir sample-app && cd sample-app # Gitリポジトリにする git init # Gemfile の生成 bundle init
LINEBOT API公開記念でただ同じ事を返すだけのボットを作ってみた。 アカウントや設定とかは、 https://developers.line.me から適当にやってください。 まず最初にハマるところは、Callback URLです。どうやらポート番号も必要なので、https://example.com:443/callbackなどのように443を指定してください。 LINE_CHANNEL_ID, LINE_CHANNEL_SECRET, LINE_CHANNEL_MIDは適当な物を指定して下記を実行すると「オウム返しBot」の出来上がり。 APIを呼ぶにはWhitelistにIPを登録する必要があるので、Herokuなどで動かす事はできません。 【追記】 LINE BOT をとりあえずタダで Heroku で動かすを見ると、Fixieっていうアドオンを使えばHerokuでも行ける
tmixエンジニアのid:ksssです。 今年の夏も暑いですね。 僕は最近tmixで作ったドライTシャツを着て、朝のランニングで体力づくりに取り組んでいます。 http://tmix.jp/designs/2052395 このTシャツには、プログラマー界での有名な言葉をもじって「ぐだぐだ言ってないで、走れ!」という意味を込めていて、なまけがちな自分をとっとと走りに行かせようと意識をたかめています。 今回はここに表示されている画像の裏側についてお話したいと思います。 動的画像変換 このTシャツ画像はリクエストを受けたときに指定のサイズの画像を生成して返しています。 動的画像変換を使うと、管理するファイルの削減や、事前処理の単純化、デザインへの柔軟対応などのメリットがあり、tmixでも様々なページで使われています。 動的画像変換には様々な実装がありますが、tmixではあまりがんばらない動的画像
■ Sinatra版Amazon-Auth-Proxyの運用を始めた 試験的に作ってみたSinatra版Amazon-Auth-Proxyだが、忙しさにかまけて放置していたら、当初のGAE値上げに続いて今度はAmazonのAPIが11月から変更になるということで、まじめに運用しないといけない感じになってきたのでなんとか実装したのだった。ソースはいつものようにGitHubで: Amazon-Auth-Proxy ちなみに今回のAmazonのAPI変更は、正式なAssociateTagが含まれていないクエリは受け付けなくなるというものなので、今まで日本のAmazon用AssociateTagを使い回して各国向けのクエリを処理していたプロキシは、軒並みダメになる。ちゃんとそれぞれの国向けのAmazonで専用のAssociateTagを発行してもらわなくてはいけないのだ。現在プロキシを運用している
Paul Sobocinski Paul has over ten years of full-stack web applications development experience. He has built and scaled apps on LAMP stacks as well as on Ruby on Rails. He currently works at Nulogy as a Software Developer, where he enjoys practicing TDD and pair programming on a daily basis. 1 Introduction In this article, we're going to compare the relative merits of Ruby on Rails and Sinatra by b
久々に使いたくなってさわってみたら忘れてたのでメモ。 herokuコマンドインストール gemでインストールしたらHeroku Toolbelt使えって言われたのでダウンロードしてインストール。 foremanとかも一緒に入るみたいです。 $ gem install heroku ... ... ! The `heroku` gem has been deprecated and replaced with the Heroku Toolbelt. ! Download and install from: https://toolbelt.heroku.com ! For API access, see: https://github.com/heroku/heroku.rb SSH鍵再登録 SSHの鍵も新しい鍵にしていたので登録しなおします。 $ heroku login $ herok
ちょっと jQuery と簡単なサーバサイドの処理を組み合わせた処理を試しに書いてみよう・・・なんて時に、いちいち jQuery を取ってきて HTML を書いて script タグを書いてロードして sinatra 立ち上げて云々・・・というのが毎度面倒なので、ひな形になるアプリケーションを作った。 https://github.com/naoya/boilerplate ひとまず sinatra でサーバーサイドを書き、HTML は slim で、CSS は sass 。JavaScript は CoffeeScriptで書くにあたって jQuery、underscore、Backbone をロードしてある、というような構成にしてあります。 まあ、この類のことは人それぞれ自分なりにカスタマイズしてやっていると思いますが、どういうコンポーネントで構成しているかを、備忘録も兼ねてちょっと紹
まず読め http://www.sinatrarb.com/extensions.html Sinatra::Base を直接いじるな。あらゆるSinatraアプリケーションに影響があってきついので、ことモジュラースタイルでは明示的にregisterさせること Extension内部で直接 require 'sinatra' するとモジュラスタイルでサーバが立ち上がり沢山の悲しみが生まれるので、require 'sinatra/base' しなさい http://www.sinatrarb.com/extensions.html に書いてあるAPIだけをできるだけ使え。直接Sinatraのコアクラスにモンキーパッチとかは勘弁 ExtensionはSinatraのnamespace配下で、moduleとして定義される べきだ 。例えば、基本認証を有効にするようなやつなら Sinatra::B
前回の記事「エラーメッセージから学ぶRack - 最初の一歩」の続きです。 噂によるとRackにはMiddlewareなる魔法があるそうです。そしてRack古文書にはMiddlewareについて次のようにあります。 useの呪文を唱えよ。さすれば扉は開かれん 準備 前回作った、なんちゃってWebフレームワーク「draque」を継続して使います。config.ruが少し長くなったので、Webアプリの本体を別ファイルdraque.rbに移します。 #draque.rb module Draque @@routes = { get:{} } def draque(env) path = env['PATH_INFO'] if res = @@routes[:get][path] res.call(env) else [ 404, headers, not_found ] end end def
This quickstart will have you up and running with a native iOS application that consumes a web API with Sinatra. For additional resources about Sinatra, please see the Ruby quickstart. Prerequisites Basic Objective-C knowledge, including a development environment running Mac OS X with Xcode 4.2 installed. Basic Ruby knowledge, including an installed version of Ruby 1.9.2, Rubygems, Bundler, and Si
DataMapperのコンポーネントは、基本的にクラスではなくモジュールとして提供されているため、アプリケーションで利用するモデルクラスにインクルードして使います。 Resourceモジュールをインクルードすると、自動的にModelモジュールがextendされ、PersonクラスはModelクラスとして振る舞うようになります。これは図1のPersonに相当します。 図1のPerson Mapperに相当する仕組みはRepositoryです。Repositoryは、create, update, delete, read_one, read_manyなどの、データストアに対する基本的な操作のインターフェイスを規定します。Modelクラスは、Repositoryへの参照を持っていて、 Modelクラスによるデータストアへのアクセスは、全てRepositoryを介して行われます。この際、データス
rubykaigiの永和さんのセッション中にチラッと紹介されてたtapp。 require 'pp' class Object def tapp tap { pp block_given? ? yield(self) : self } end def taputs tap { puts block_given? ? yield(self) : self } end end セッションでは、よくわかんなかったんだけど ソースを見ると、納得。なるほどなぁ。 ちょっとしたデバッグに便利そう。 >> (1..5).select(&:odd?).map(&:succ).join => "246" #tappを使うと >> (1..5).tapp.select(&:odd?).tapp.map(&:succ).tapp.join 1..5 [1, 3, 5] [2, 4, 6] => "246" #t
While working on a sinatra app recently, I noticed that sinatra has no rails equivalent to rails console. So here’s tux, dressing your sinatra app in a console. Install and Try On $ gem install tux In the directory of your sinatra app, try on tux: $ tux # If app's rack config file isn't config.ru, specify it with -c $ tux -c app.ru # ruby options like -I and -r are available to tux $ tux -h Usage:
passengerをインストールして、使うためのコマンド実行。 % sudo gem install passenger % sudo passenger-install-apache2-module最後にこんなメッセージ。 Please edit your Apache configuration file, and add these lines: LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.3/ext/apache2/mod_passenger.so PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.3 PassengerRuby /usr/bin/ruby表示されるパスは環境により異なるはず。まぁ、言われる通りに上記をapac
gem install padrino padrino g project test_app -d datamapper -b cd test_app padrino g admin padrino rake dm:migrate seed padrino start Sinatra Core Many people love the simplicity and expressiveness of Sinatra but quickly find themselves missing a great deal of functionality provided by other web frameworks such as Rails when building non-trivial applications. Sinatra acts as a thin layer on top o
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く