71 lines
1.7 KiB
Ruby
71 lines
1.7 KiB
Ruby
require_relative '../../app/models/carto/analysis'
|
|
require_dependency 'carto/uuidhelper'
|
|
require 'helpers/unique_names_helper'
|
|
|
|
include UniqueNamesHelper
|
|
|
|
module AnalysisFactoryHelper
|
|
def self.source_analysis_for_table(table_name, query)
|
|
query ||= "select * from #{table_name}"
|
|
{
|
|
id: unique_string,
|
|
type: 'source',
|
|
params: { query: query },
|
|
options: { table_name: table_name }
|
|
}
|
|
end
|
|
end
|
|
|
|
FactoryGirl.define do
|
|
factory :source_analysis, class: Carto::Analysis do
|
|
ignore do
|
|
source_table 'subway_stops'
|
|
query nil
|
|
end
|
|
|
|
analysis_definition { AnalysisFactoryHelper.source_analysis_for_table(source_table, query) }
|
|
|
|
factory :analysis, class: Carto::Analysis do
|
|
created_at { Time.now }
|
|
updated_at { Time.now }
|
|
end
|
|
end
|
|
|
|
factory :analysis_with_source, class: Carto::Analysis do
|
|
ignore do
|
|
source_table 'subway_stops'
|
|
query nil
|
|
end
|
|
|
|
analysis_definition do
|
|
{
|
|
id: unique_string,
|
|
type: "buffer",
|
|
params: {
|
|
source: AnalysisFactoryHelper.source_analysis_for_table(source_table, query)
|
|
}
|
|
}
|
|
end
|
|
end
|
|
|
|
factory :analysis_point_in_polygon, class: Carto::Analysis do
|
|
ignore do
|
|
source_table 'subway_stops'
|
|
source_query nil
|
|
target_table 'districts'
|
|
target_query nil
|
|
end
|
|
|
|
analysis_definition do
|
|
{
|
|
id: unique_string,
|
|
type: "intersection",
|
|
params: {
|
|
source: AnalysisFactoryHelper.source_analysis_for_table(source_table, source_query),
|
|
target: AnalysisFactoryHelper.source_analysis_for_table(target_table, target_query)
|
|
}
|
|
}
|
|
end
|
|
end
|
|
end
|