perl

1/9ページ

MAMPな環境のmacにDBD::mysqlをインストール その2

とある事情でMAMPのバージョンを上げざるを得なく、その影響でDBD::mysqlがインストール出来なくなった。 mampな環境のmacにdbdmysqlをインストールの手順だとエラーが出る。(正確に言うと、/tmpが残っている間は成功する) 上記手順でbuildしたものを削除してからcarton installした時のログ 実行環境 macOS Catalina 10.15.3 MAMP 3.5.2 MySQL 5.5.42 Searching DBD::mysql on mirror index /Users/clicktx/***/***/***/local/cache/modules/ […]

Mojolicious純正のフォームバリデーション & フィルター

Mojolicious::Validator::Validation - Perform validations - metacpan.org Mojolicious純正のフォームバリデーションを使う上で気を付ける点を書き留めておく。Mojolicious::Plugin::TagHelpersとも相性良いし(当たり前)、活用すべき。 my $validation = $c->validation; $validation->required('name')->like(qr/hoge/); $validation->optional('name2', 'trim')- […]

[Perl] DBIx::Class(DBIC)でtimestamp的なカラムの自動更新

今更ながらDBIx::Class(DBIC)に入門。使い始めてDBICの作法に翻弄されてる。 timestamp的なカラム、例えばupdated_atカラムを自動更新させるのにハマったのでメモ。 03日目: データモデル から抜粋 package Jobeet::Schema::ResultBase; use strict; use warnings; use parent 'DBIx::Class::Core'; __PACKAGE__->load_components(qw/InflateColumn::DateTime/); sub insert { my $self = shif […]

Mojoliciousでactionの前後に実行される独自のHookを作る。before_action、after_action編

PerlのWebApplicationFrameworkであるMojoliciousでは様々なフックが用意されているのだけれど、actionの前後だけに実行したい場合は独自にフックポイントを追加しないといけない。 実装方法その1 一番単純な実装方法はaround_actionフックを使うのが良さそう。actionは$lastフラグが真の時に実行されるので前後に独自のフックをエミットする。 sub startup { my $self = shift; ... $self->hook( around_action => sub { my ( $next, $c, $action, $ […]

AtomエディターのemmetをMojoliciousのテンプレートで使う

language-mojoliciousを導入する。 keymap.csonに以下を追記 'atom-text-editor[data-grammar="text html mojolicious"]:not([mini])': 'tab': 'emmet:expand-abbreviation-with-tab' タブで展開させるとlanguage-mojoliciousとカブるので emmetはcmd+shift+eにしてみる。 'atom-text-editor[data-grammar="text html mojolicious"]:not([mini])': 'cmd-shift- […]

Mojolicious::Plugin::LocaleTextDomainOOというモジュールでCPANおーさーとなる

Mojolicious::Plugin::LocaleTextDomainOO - I18N(GNU getext) for Mojolicious. - metacpan.org きっかけ Mojolicousで国際化するプラグインにはMojolicous::Plugin::I18Nというものがある。これは良く出来ていて、URLやドメイン名での振り分けが出来たりする。 国際化の部分はLocale::Maketextを使う。Locale::Maketext::Lexiconも使えばpoファイルなどもつかえる。 普通に使う分なら問題ないのだけど、GNU gettextのmsgctxtやtext […]

Mojolicious、Mojolicious::Liteアプリをマウントする方法

プラグインとしては Mojolicious::Plugin::Mount  がある。短いコードなの読むと参考になる。 Mojoliciouアプリを埋め込む 追記:Mojolicious::Commandsを使う方法があるらしい。こっちの方が正統? $app->routes->any( '/sub' )->detour( app => Mojolicious::Commands->start_app('SubApp') ); Mojolicious::Liteのアプリをマウントする方法は日本語だと Mojolicious::Guides::Routing に書いてあ […]

Minillaを使ってMojoliciousプラグインを開発する

1. Mojoliciousプラグインの雛形作成 $ mojo generate plugin MyPlugin カレントディレクトリに Mojolicious-Plugin-MyPlugin というディレクトリ名で雛形作成される。 2. ドキュメントにAuthor情報を追記する。 $ cd ./Mojolicious-Plugin-MyPlugin $ vi lib/MyPlugin.pm minillaではPODに書かれているAuthorが使われる。作成された雛形(MyPlugin.pm)のPODにはAuthorの項目がないので追記する。 vi lib/Mojolicious/Plugin […]

MAMPな環境のmacにDBD::mysqlをインストール

OSX El Capitan(10.11.5) MAMPのバージョン 3.0.7.3 ※1 MySQLのバージョン 5.5.38 MAMPだとWarning (mostly harmless): No library found for -lmysqlclientのエラーでインストール出来ない。 mysql.hが存在しないため、別途インストールする必要があるようだ。 検索しているとC++ で MAMP の MySQL に接続する : あかぎメモに まずこの記事の手順で、MySQL のヘッダファイルやライブラリを用意しておく。うまくいけば次のようなファイルができる。 /Applications/ […]

Amon2アプリをMinillaで管理する時のハマりどころ

amon2-setup.pl --flavor=Large MyApp で作成したLarge flavorのAmon2アプリのリリース管理にMinillaを使ってみようとしらうまくいかなかったので試行錯誤してみた。 まずはMinillaに最適化 minil migrate Minillaで管理するのに必要なファイルの作成や.gitignoreに追加等してくれる。 必要なディレクトリに空ファイルを作成 Large flavorのアプリで言うと db ディレクトリが必要だが、amon2-setup.plで作成した状態だと、.gitignoreは下記の状態になっている。 db/.gitignore […]

1 9