| Module | ActiveWarehouse::SlowlyChangingDimension::InstanceMethods::ClassMethods |
| In: |
lib/active_warehouse/dimension/slowly_changing_dimension.rb
|
# File lib/active_warehouse/dimension/slowly_changing_dimension.rb, line 99
99: def calculate(*args)
100: with_older_scope { calculate_with_older(*args) }
101: end
# File lib/active_warehouse/dimension/slowly_changing_dimension.rb, line 95
95: def count(*args)
96: with_older_scope { count_with_older(*args) }
97: end
# File lib/active_warehouse/dimension/slowly_changing_dimension.rb, line 91
91: def count_with_older(*args)
92: calculate_with_older(:count, *construct_count_options_from_legacy_args(*args))
93: end
# File lib/active_warehouse/dimension/slowly_changing_dimension.rb, line 78
78: def find_with_older(*args)
79: options = extract_options_from_args!(args)
80: validate_find_options(options)
81: set_readonly_option!(options)
82: options[:with_older] = true # yuck!
83:
84: case args.first
85: when :first then find_initial(options)
86: when :all then find_every(options)
87: else find_from_ids(args, options)
88: end
89: end
# File lib/active_warehouse/dimension/slowly_changing_dimension.rb, line 104
104: def with_older_scope(&block)
105: with_scope({:find => { :conditions =>
106: ["#{table_name}.#{latest_version_attribute} = ?", true] } }, :merge, &block)
107: end
# File lib/active_warehouse/dimension/slowly_changing_dimension.rb, line 115
115: def with_valid_during_scope(valid_during, &block)
116: with_scope({:find => {:conditions =>
117: ["(? between #{effective_date_attribute} and #{expiration_date_attribute})" +
118: " or (#{effective_date_attribute} between ? and ?)",
119: valid_during.first, valid_during.first, valid_during.last]} }, :merge, &block)
120: end