Ruby RSpec導入

インストール

この本のまとめです。 とても良いと思います。 f:id:happy_teeth_ago:20190515131602p:plain

gem install rspec

テストファイル作成

  • テストファイルは filename_spec.rb と名付けるのが一般的

Rspecがあれば、他にドキュメントいらないと言われている。

Rspecのドキュメントはこちらがいいかな relishapp.com

テストファイルから tanto_spec.rb

require_relative 'tanto'

describe Tanto do
//インスタンス生成の書き方
  let(:tanto) { Tanto.new }
  
//example以下でテストしたいことを記載 日本語でかけるので良いと思う
  example '担当の給料は基本給と同じ' do
//expectメソッドで、関数を呼んで期待値を記載する。 eq で等しくなるほかはドキュメント参照
    expect(tanto.calculate_salary(100)).to eq 100
  end
end

tantoクラス shainを継承している

require_relative './shain.rb'

class Tanto < Shain
  
  def standup
    puts "担当は慌てて起立しました"
  end
  
  def calculate_salary(kihonkyu)
    kihonkyu
  end

end

shain クラス これをtantoではオーバーライドしている

class Shain
  
  def standup
    puts "社員はとりあえず起立する"
  end
  
  def calculate_salary(kihonkyu)
    kihonkyu
  end
  
end

テストを自動化するのに .rspecファイルを作成

その為に rakeをインストール=>ビルドするツール

$ gem install rake

//==
Fetching: rake-12.3.2.gem (100%)
Successfully installed rake-12.3.2
Parsing documentation for rake-12.3.2
Installing ri documentation for rake-12.3.2
Done installing documentation for rake after 0 seconds
1 gem installed

Rakefile を作成

require 'rspec/core/rake_task'

RSpec::Core::RakeTask.new(:spec) do |spec|
  spec.pattern = FileList['*_spec.rb']
end

task default: :spec

これで

rake

だけで、_spec.rbのファイルを全て実行できる。

gulp(ガルプ)の利用について 忘備録

参考にさせていただきました。

https://dotinstall.com/lessons/basic_gulp

gulp とは

SCSSなどで記述すると、コンパイルしてCSSにする必要がある。
多少の変更でもコンパイルするのはめんどくさい。 それで、保存した時のタイミングで自動的に、コンパイル処理を走らせたりする。 それをタスクラナーという。

本家サイト

gulpjs.com

環境周りの知識

gulpはnode.jsのパッケージの一つ
node.jsはサーバー再度で動くJavaScript言語の一つと考えておくとよい。
よってnode.jsのインストールが必要。
node.jsのパッケージマネージャーの npmもインストールする。

//gulpをグローバルにインストールする。

sudo npm install gulp -g

$ gulp -v

//==
CLI version: 2.2.0
Local version: Unknown

バージョンが表示されたのでインストールされている

//gulpのインストール
$sudo npm install gulp

//バージョン確認
$ gulp -v
CLI version: 2.2.0
Local version: 4.0.1

package.json へ書き込んでいくのでそれを作成

プロジェクトのディレクトリにいって これでひな形を作成してくれる

npm init

//対話型で作っていく。

できている f:id:happy_teeth_ago:20190509175305p:plain

gulpファイルも必要なので

//--save-devのオプションで先ほど作成した package.json へこのgulpファイルを利用するんだよと書き込んでくれる
npm install --save-dev gulp

node_modulesのフォルダの中に gulpがインストールされている f:id:happy_teeth_ago:20190509175853p:plain

package.jsonは大切。これがあるフォルダで npm install をするとまとめてモジュールをインストールしてくれる。

gulpで実行するファイルは gulpfile.js に記載していく ポイント

これは必須
var gulp = require('gulp');

//task関数 第一引数:関数名、第二引数 処理したいこと
//呼び出しは gulp hoge
gulp.task('hoge', function() {
    console.log('hello world!');
});

//デフォルトを設定
gulp.task('default', ['hoge']);

gulpの監視

特定のファイルに変更があった場合、taskを走らせるもの gulp.watch 定義

//ここでインスタンスにする
const  glap  = require('gulp');


watch(['input/*.js', '!input/something.js'], function(cb) {
  // body omitted
  cb();
});

//書き方
watch(globs, [options], [task])


- 第1引数
文字列、配列
監視するファイル
-第2引数 配列

第3引数
配列
実行するタスク

ブラウザをリロードする。

特定の変更があったときに、ブラウザを自動でリロードするようにする。 必要なもの

  • ip address  ローカルで開発している場合普通はlocalhost

ip a で調べられる

//web-serverをインストール

npm install --save-dev gulp-webserber

実装

const webserver = require('gulp-webserver');

//監視対象を.src配下の全てのhtmlにした
gulp.task('watch', function() {
    gulp.watch('./src/*.html', ['html'])
});

//
gulp.task('webserver', function() {
  //ファイル場所は./dist
  gulp.src('./dist')
        //つなげる
        .pipe(
   
            webserver({
                //IPアドレス
                host: '192.168.39.42',
                //リロード設定
                livereload: true
            })
        );
});

//デフォルトで今設定した関数 webserver を実行するようにする
gulp.task('default', ['webserver']);

PHP パラメータのわたし方 忘備録

クエリを受け取るには $_GET を利用する

a タグのリンク先に ? に続けて記載する

<a href="show.php"?name=Bob>

$_GET の中身はハッシュになっている。 Rails のparams と同じ

 $_GET = array(
 
  //キー     値
   'name' => 'Bob'
)

SCSSファイルのコンパイル方法

SASSファイルのコンパイルについて

SASSはコンパイルしてcssファイルに変更する必要がある。

  1. まずnode.jsをダウンロードする。

ダウンロードサイト 本家

左側のLTSの方をダウンロードする。安定版

f:id:happy_teeth_ago:20190507002331p:plain

nodejs.org

コマンドラインで確認

$ node --version

//==OKですね
v10.14.2

glup(ガルプ)をインストールする。

gulpとは自動的に、ファイルをビルドしてくれる便利なものです。 作業内容を随時登録できるので、勝手にビルドすることなどありません。

詳しくはこちらを御覧ください。 参考サイト 現場で使えるgulp入門 - gulpとは何か | CodeGrid

//-g はグローバルへインストール、どこのフォルダでも同じものが利用できるということ
$ sudo npm install gulp-cli -g

//確認
$ gulp --version

//==OKですね。
CLI version: 2.2.0

作業フォルダへ移動して

$ sudo npm install gulp


$ gulp watch

これで、wordpressファイルを保存したら、自動的にブラウザのリフレッシュしてくれる。

Windows でLinuxコマンドを利用する方法

windowsは簡単なbash のコマンドも使えない。

大変である。 解決法

git bash をインストールする。

ダウンロードサイト

git-scm.com

これで一通り、linuxのコマンドが利用できるようになる。

プログラミングを勉強したいなら、そもそもwindowsは買ってはいけない。 MACを買うべし!

グーグル本社の内部の風景を見たけれど、PCは全てMACだった。 当たり前。

めでたしめでたし

Swift4 カスタムセルの作り方

他の記事が古かったり、いい記事がなかったのでまとめます。

xibファイルの作成

ポイントはUITableViewCell を継承したクラスを作成すること
画面はそれぞれ@IBOutletで接続しておく。 f:id:happy_teeth_ago:20190515164943p:plain

実装するクラスでセルを登録 registerメソッドを利用

ここではPlanCellという名で登録している。ここはどんな名前でも良い。

ただ、あとでこの名前を使うので注意 ここでViewを作るのでStoryBoardには、cellを配置しなくても良い 当然 identifiyer も不要

   super.viewDidLoad()
        tableView_plan.delegate = self
        tableView_plan.dataSource = self
//登録 
        self.tableView_plan.register(DayListCell.self, forCellReuseIdentifier: "PlanCell")
        
            }

tableViewの記述

  func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        // セルを取得する 先程のPlanCell よってキャストも必要ない
        let cell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: "PlanCell", for: indexPath)
        
        // セルに表示する値を設定する
        cell.textLabel!.text = plans?[indexPath.row].name
        
        return cell
    }

ちなみに画面外にボタンが配置されていてエラー これで1Hもったいない f:id:happy_teeth_ago:20190515165004p:plain