diff options
| author | Camil Staps | 2016-09-06 00:23:26 +0200 | 
|---|---|---|
| committer | Camil Staps | 2016-09-06 00:23:26 +0200 | 
| commit | 6f6a6abe3c9971b60aad585a198ced6c51329ef5 (patch) | |
| tree | a6a5300eb572c1306c34d1f400a928eb2a68f631 /database | |
| parent | Add roots (diff) | |
Different root kinds instead of only strong/weak
Diffstat (limited to 'database')
| -rw-r--r-- | database/migrations/2016_09_05_215803_create_root_kinds.php | 45 | ||||
| -rw-r--r-- | database/seeds/BasisTableSeeder.php | 64 | ||||
| -rw-r--r-- | database/seeds/RootTableSeeder.php | 37 | 
3 files changed, 110 insertions, 36 deletions
| diff --git a/database/migrations/2016_09_05_215803_create_root_kinds.php b/database/migrations/2016_09_05_215803_create_root_kinds.php new file mode 100644 index 0000000..2ab1a42 --- /dev/null +++ b/database/migrations/2016_09_05_215803_create_root_kinds.php @@ -0,0 +1,45 @@ +<?php + +use Illuminate\Database\Schema\Blueprint; +use Illuminate\Database\Migrations\Migration; + +class CreateRootKinds extends Migration +{ +	/** +	 * Run the migrations. +	 * +	 * @return void +	 */ +	public function up() +	{ +		Schema::create('root_kinds', function (Blueprint $table) { +			$table->increments('id'); +			$table->boolean('strong'); +			$table->string('name')->unique(); +		}); +		 +		Schema::table('roots', function (Blueprint $table) { +			$table->dropColumn('strong'); + +			$table->integer('root_kind_id')->unsigned()->nullable(); +			$table->foreign('root_kind_id')->references('id')->on('root_kinds'); +		}); +	} + +	/** +	 * Reverse the migrations. +	 * +	 * @return void +	 */ +	public function down() +	{ +		Schema::table('roots', function (Blueprint $table) { +			$table->dropForeign(['root_kind_id']); +			$table->dropColumn('root_kind_id'); + +			$table->boolean('strong')->default(1); +		}); + +		Schema::drop('root_kinds'); +	} +} diff --git a/database/seeds/BasisTableSeeder.php b/database/seeds/BasisTableSeeder.php index bf33d75..d02dfe8 100644 --- a/database/seeds/BasisTableSeeder.php +++ b/database/seeds/BasisTableSeeder.php @@ -18,35 +18,49 @@   */  use Illuminate\Database\Seeder; + +use HebrewParseTrainer\RootKind;  use HebrewParseTrainer\Stem;  use HebrewParseTrainer\Tense;  class BasisTableSeeder extends Seeder { -    /** -     * Run the database seeds. -     * -     * @return void -     */ -    public function run() -    { -        Stem::create(['name' => 'Qal']); -        Stem::create(['name' => 'Niphal']); -        Stem::create(['name' => 'Piel']); -        Stem::create(['name' => 'Pual']); -        Stem::create(['name' => 'Hiphil']); -        Stem::create(['name' => 'Hophal']); -        Stem::create(['name' => 'Hitpael']); +	/** +	 * Run the database seeds. +	 * +	 * @return void +	 */ +	public function run() +	{ +		Stem::create(['name' => 'Qal']); +		Stem::create(['name' => 'Niphal']); +		Stem::create(['name' => 'Piel']); +		Stem::create(['name' => 'Pual']); +		Stem::create(['name' => 'Hiphil']); +		Stem::create(['name' => 'Hophal']); +		Stem::create(['name' => 'Hitpael']); + +		Tense::create(['name' => 'perfect',              'abbreviation' => 'pf']); +		Tense::create(['name' => 'imperfect',            'abbreviation' => 'ipf']); +		Tense::create(['name' => 'cohortative',          'abbreviation' => 'coh']); +		Tense::create(['name' => 'imperative',           'abbreviation' => 'imp']); +		Tense::create(['name' => 'jussive',              'abbreviation' => 'ius']); +		Tense::create(['name' => 'infinitive construct', 'abbreviation' => 'infcs']); +		Tense::create(['name' => 'infinitive absolute',  'abbreviation' => 'infabs']); +		Tense::create(['name' => 'participle active',    'abbreviation' => 'pta']); +		Tense::create(['name' => 'participle passive',   'abbreviation' => 'ptp']); -        Tense::create(['name' => 'perfect',                 'abbreviation' => 'pf']); -        Tense::create(['name' => 'imperfect',               'abbreviation' => 'ipf']); -        Tense::create(['name' => 'cohortative',             'abbreviation' => 'coh']); -        Tense::create(['name' => 'imperative',              'abbreviation' => 'imp']); -        Tense::create(['name' => 'jussive',                 'abbreviation' => 'ius']); -        Tense::create(['name' => 'infinitive construct',    'abbreviation' => 'infcs']); -        Tense::create(['name' => 'infinitive absolute',     'abbreviation' => 'infabs']); -        Tense::create(['name' => 'participle active',       'abbreviation' => 'pta']); -        Tense::create(['name' => 'participle passive',      'abbreviation' => 'ptp']); -    } +		RootKind::create(['strong' => true,  'name' => 'Strong']); +		RootKind::create(['strong' => false, 'name' => 'I-Guttural']); +		RootKind::create(['strong' => false, 'name' => 'I-Aleph']); +		RootKind::create(['strong' => false, 'name' => 'I-Nun']); +		RootKind::create(['strong' => false, 'name' => 'I-Waw']); +		RootKind::create(['strong' => false, 'name' => 'I-Yod']); +		RootKind::create(['strong' => false, 'name' => 'II-Guttural']); +		RootKind::create(['strong' => false, 'name' => 'III-He']); +		RootKind::create(['strong' => false, 'name' => 'Biconsonantal']); +		RootKind::create(['strong' => false, 'name' => 'Geminate']); +		RootKind::create(['strong' => false, 'name' => 'Double weak']); +	} -}
\ No newline at end of file +} diff --git a/database/seeds/RootTableSeeder.php b/database/seeds/RootTableSeeder.php index abda56e..7c3b0ea 100644 --- a/database/seeds/RootTableSeeder.php +++ b/database/seeds/RootTableSeeder.php @@ -19,20 +19,35 @@  use Illuminate\Database\Seeder;  use HebrewParseTrainer\Root; +use HebrewParseTrainer\RootKind;  use HebrewParseTrainer\RootTranslation;  class RootTableSeeder extends Seeder { -    /** -     * Run the database seeds. -     * -     * @return void -     */ -    public function run() -    { -        Root::create(['root' => 'קטל', 'strong' => true]); +	protected function add($root, $kind) { +		$kind_id = null; +		foreach (RootKind::where('name', $kind)->get() as $rootkind) +			$kind_id = $rootkind->id; -        RootTranslation::create(['root' => 'קטל', 'translation' => 'kill']); -    } +		if (is_null($kind_id)) +			die('Unknown root kind ' . $kind . "\n"); -}
\ No newline at end of file +		Root::create([ +			'root' => $root, +			'root_kind_id' => $kind_id +		]); +	} + +	/** +	 * Run the database seeds. +	 * +	 * @return void +	 */ +	public function run() +	{ +		$this->add('קטל', 'Strong'); + +		RootTranslation::create(['root' => 'קטל', 'translation' => 'kill']); +	} + +} | 
