質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.91%

Rubyのソースコードをデスクトップアプリ化したい

解決済

回答 4

投稿 編集

  • 評価
  • クリップ 2
  • VIEW 3,213

katsuya_ds

score 31

前提・実現したいこと

Rubyにてnokogiriを使用してスクレイピングするアプリを作ったとします。
それをターミナルやコマンドプロンプトからの操作ではなく、デスクトップアプリやネイティブアプリのように使用するためのハードルの低い技術はありませんでしょうか?
RubyTKなども試したのですが、古い技術のようで私の環境では使えませんでした。

アプリは取得したいデータを入力するためのファイルと結果を出力するファイルがあります。
ですので、exeファイルのようなものと出力ファイルと入力ファイルを格納する必要がある仕様となっています。

特定のサイトをスクレイピングをするツールの作成をお願いされたのですが、依頼者はターミナルを操作するのはハードルが高いというので、GUIで操作できるもので実装して欲しいとのことでした。

依頼者の環境へのrubyのインストールは私が説明するので可能です。
マルチプラットフォーム(Win、MacのみでOK)で使えるようにしたいと思っています。

どなたかご教授いただけませんでしょうか?
よろしくお願い致します。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • IPU

    2017/02/17 11:17

    何を目的に、それをしたいかを書いた方が良いと思います。背景がわかった方が正しいアドバイスが行えると思いますので。

    キャンセル

回答 4

+2

exeファイル化するプログラム(コンパイラっぽいもの)はいくつかありますが、ネイティブ側のライブラリ(Windowsなりmacなりlinuxなりの)を呼ぶ方法がないのでGUIが作れないのではと思います。
ほかの言語でGUIだけ作って、裏でrubyのコマンドをコールするようなものを作るしかないかなと思います。

まぁ私なら素直にWebアプリにしますが…。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/17 11:36

    rubyのインストールは依頼者に私が教えながら行えるのですが、それでは如何でしょうか?

    キャンセル

  • 2017/02/17 11:41

    exeファイルにしたらrubyのインストールは不要でしょう。
    ですが、rubyからGUIを作ることができないので、exeファイルになってもコンソールアプリになってしまうので、結局rubyのスクリプトを実行するのと大差なくなってしまうことが問題です。

    キャンセル

checkベストアンサー

+1

#encoding : utf-8
require"dxruby"

Window.width = 200
Window.height = 100
font = Font.new(32)
word = "Ready"
mouse_point = Sprite.new(0, 0, Image.new(1, 1))
background = Sprite.new(0, 0, Image.new(200, 100, C_RED))
Window.loop do
  mouse_point.x = Input.mouse_pos_x
  mouse_point.y = Input.mouse_pos_y

  Sprite.draw(mouse_point)
  Sprite.draw(background)
  Window.draw_font(50, 30, word, font)

  if mouse_point === background && Input.mousePush?(M_LBUTTON)
    word = "Start"
    #スクレイピングの処理
  end
end


DXRubyでボタンを作って中にスクレイピングの処理を入れるとか。
できたものをOcraでexe化すればそれっぽく見えるかも。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/17 11:48

    DXRubyはまだ試してないです!参考にさせていただきます!

    キャンセル

  • 2017/02/17 11:52

    Ocraについてはこちらも参考になると思います。
    ocraによるexe化(http://mirichi.github.io/dxruby-doc/tips/ocra.html
    Ocraで、rubyからWindowsの実行ファイル(exe)を作る(http://myruby.seesaa.net/article/124126159.html

    キャンセル

  • 2017/02/17 11:57

    ocraについては知っていましたがその前のGUI化のところでつまずいている感じでした!助かります!

    キャンセル

  • 2017/02/17 11:59 編集

    Ocraでexe化できなくてもよいならGTKがあります。
    Ruby-GNOME2 Project(https://ruby-gnome2.osdn.jp/ja/#Ruby-GNOME2+Project+Website)
    GTK2はGTK3よりも日本語の資料が整っています。GTK3はほぼ手さぐりになると思います。

    キャンセル

+1

Windowsですよね?HTAアプリというのをご存じでしょうか?HTMLとVBScriptまたはJScript(Javascript)で作るアプリです。HTML+JavaScriptを作った処理が書ける人なら書けます。

使ったことは無いのですが、ActiveScriptRubyを使うと、VBScript/JScriptからRubyを呼べるようです。
https://www.google.co.jp/search?q=activescriptruby+HTA

あるいは、VBScript/JScriptからそのまま、"rubyw.exe スクリプト名" を実行できますので、そういう方が簡単かもしれません。データはファイル経由でやりとりする。
あるいは、VBAを使えば、メインはExcelということも出来るかと思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/17 11:46

    試したことのない技術です!参考にさせていただきます!

    キャンセル

  • 2017/02/17 12:22

    「Ruby+GUI機能」よりは、日本語の参考情報が多いと思いますよ。

    キャンセル

+1

うーん。

目的

特定のサイトをスクレイピングをするツールの作成をお願いされたのですが、依頼者はターミナルを操作するのはハードルが高いというので、GUIで操作できるもので実装して欲しいとのことでした。

に対して、

Rubyにてnokogiriを使用してスクレイピングするアプリを作ったとします。 
それをターミナルやコマンドプロンプトからの操作ではなく、デスクトップアプリやネイティブアプリのように使用するためのハードルの低い技術はありませんでしょうか? 
RubyTKなども試したのですが、古い技術のようで私の環境では使えませんでした。

この内容だと、いまいち話がかみ合わない気がするのですが。。。

Chrome拡張「Scraper」でWEBページ情報を手軽にスクレイピングしてデータ化する方法

こういうのじゃ、ダメなんですか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/17 11:44

    興味深いextensionですね!参考にさせていただきます!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.91%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る