AccessibleSeedYaml
is wrapper of rails seed file.
This wrapper provides following function:
- Easy access interface for seed data.
- Hold original seed data.
To install the Gem, run this command from a terminal/shell:
$ gem install accessible_seed_yaml
numbers.yaml
data1:
id: 1
name: "one"
data2:
id: 2
name: "two"
data3:
id: 3
name: "three"
require 'accessible_seed_yaml'
original_seed = File.read('numbers.yaml')
@table = AccessibleSeedYaml::Table.new(original_seed)
# Instance is providing data access interface.
@table.records
# =>
# [
# #<AccessibleSeedYaml::Record:0x007f91552770c0
# @original_seed="data1:\n id: 1\n name: \"one\"\n",
# @seed_data_by_hash={"data1"=>{"id"=>1, "name"=>"one"}}>,
# #<AccessibleSeedYaml::Record:0x007f915526c238
# @original_seed="data2:\n id: 2\n name: \"two\"\n",
# @seed_data_by_hash={"data2"=>{"id"=>2, "name"=>"two"}}>,
# #<AccessibleSeedYaml::Record:0x007f91552662c0
# @original_seed="data3:\n id: 3\n name: \"three\"",
# @seed_data_by_hash={"data3"=>{"id"=>3, "name"=>"three"}}>
# ]
@table.records[0]
# => #<AccessibleSeedYaml::Record:0x007f9155725068
# @original_seed="data1:\n id: 1\n name: \"one\"\n",
# @seed_data_by_hash={"data1"=>{"id"=>1, "name"=>"one"}}>
# Instance is holding original seed.
@table.original_seed == original_seed
# => true
@record = @table.records[0]
@record
# => #<AccessibleSeedYaml::Record:0x007f9155725068
# @original_seed="data1:\n id: 1\n name: \"one\"\n",
# @seed_data_by_hash={"data1"=>{"id"=>1, "name"=>"one"}}>
# Instance is providing data access interface.
@record.attributes # => {"id"=>1, "name"=>"one"}
@record.attributes["id"] # => 1
@record.attributes["name"] # => "one"
# Instance is holding original seed.
@record.original_seed # => "data1:\n id: 1\n name: \"one\"\n"