Class: ActiveRecord::FixtureBuilder
- Inherits:
-
Object
- Object
- ActiveRecord::FixtureBuilder
show all
- Defined in:
- lib/active_record/fixture_builder.rb,
lib/active_record/fixture_builder.rb,
lib/active_record/fixture_builder/version.rb
Defined Under Namespace
Classes: Builder, Configuration, Database, Fixture
Constant Summary
collapse
- PUBLIC_INSTANCE_METHODS =
public_instance_methods - superclass.public_instance_methods
- VERSION =
"0.0.1"
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
Returns a new instance of FixtureBuilder.
15
16
17
|
# File 'lib/active_record/fixture_builder.rb', line 15
def initialize(&block)
configure(&block) if block_given?
end
|
Class Method Details
.instance ⇒ Object
78
79
80
|
# File 'lib/active_record/fixture_builder.rb', line 78
def instance
@instance ||= new
end
|
Instance Method Details
#build_fixtures! ⇒ Object
51
52
53
54
|
# File 'lib/active_record/fixture_builder.rb', line 51
def build_fixtures!
database.truncate_all_tables!
builders.each(&:build!)
end
|
#builders ⇒ Object
40
41
42
43
44
45
|
# File 'lib/active_record/fixture_builder.rb', line 40
def builders
config.freeze
@builders ||= Dir[config.builders_path+'*.rb'].map do |path|
Builder.new self, Pathname(path)
end
end
|
#config ⇒ Object
19
20
21
|
# File 'lib/active_record/fixture_builder.rb', line 19
def config
@config ||= Configuration.new
end
|
23
24
25
26
|
# File 'lib/active_record/fixture_builder.rb', line 23
def configure
yield config
self
end
|
#database ⇒ Object
28
29
30
31
|
# File 'lib/active_record/fixture_builder.rb', line 28
def database
config.freeze
@database ||= Database.new(config)
end
|
#fixtures ⇒ Object
33
34
35
36
37
38
|
# File 'lib/active_record/fixture_builder.rb', line 33
def fixtures
config.freeze
@fixtures ||= Dir[config.fixtures_path+'*.yml'].map do |path|
Fixture.new self, Pathname(path)
end
end
|
#inspect ⇒ Object
71
72
73
|
# File 'lib/active_record/fixture_builder.rb', line 71
def inspect
super.split(/ |>/).first+'>'
end
|
#load_fixtures! ⇒ Object
47
48
49
|
# File 'lib/active_record/fixture_builder.rb', line 47
def load_fixtures!
fixtures.each(&:load!)
end
|
#write_fixtures! ⇒ Object
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# File 'lib/active_record/fixture_builder.rb', line 56
def write_fixtures!
database.table_names.each do |table_name|
config.fixtures_path.join("#{table_name}.yml").open('w') do |file|
records = database.select_all(table_name)
fixture_data = {}
records.each_with_index do |record, index|
fixture_data["#{table_name}_#{index.to_s.rjust(3,'0')}"] = record
end
file.write fixture_data.to_yaml
end
end
end
|