Class: Droonga::Catalog::Schema::ColumnCreateSorter
- Inherits:
-
Object
- Object
- Droonga::Catalog::Schema::ColumnCreateSorter
- Includes:
- TSort
- Defined in:
- lib/droonga/catalog/schema.rb
Instance Method Summary collapse
- #all_columns ⇒ Object
-
#initialize(tables) ⇒ ColumnCreateSorter
constructor
A new instance of ColumnCreateSorter.
- #tsort_each_child(column, &block) ⇒ Object
- #tsort_each_node(&block) ⇒ Object
Constructor Details
#initialize(tables) ⇒ ColumnCreateSorter
232 233 234 |
# File 'lib/droonga/catalog/schema.rb', line 232 def initialize(tables) @tables = tables end |
Instance Method Details
#all_columns ⇒ Object
236 237 238 |
# File 'lib/droonga/catalog/schema.rb', line 236 def all_columns @tables.values.collect {|table| table.columns.values}.flatten end |
#tsort_each_child(column, &block) ⇒ Object
244 245 246 247 248 249 250 251 252 253 |
# File 'lib/droonga/catalog/schema.rb', line 244 def tsort_each_child(column, &block) dependent_column_names = column..sources || [] dependent_column_names -= ["_key"] # _key always exists after the table created reference_table = @tables[column.value_type_groonga] # TODO when _key specified, check to ensure reference_table is not Array dependent_columns = dependent_column_names.collect do |column_name| reference_table.columns[column_name] end dependent_columns.each(&block) end |
#tsort_each_node(&block) ⇒ Object
240 241 242 |
# File 'lib/droonga/catalog/schema.rb', line 240 def tsort_each_node(&block) all_columns.each(&block) end |