Module ActiveWarehouse::SlowlyChangingDimension::InstanceMethods::ClassMethods
In: lib/active_warehouse/dimension/slowly_changing_dimension.rb

Methods

Public Instance methods

[Source]

     # 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

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

Protected Instance methods

[Source]

     # 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

[Source]

     # 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

[Source]

     # File lib/active_warehouse/dimension/slowly_changing_dimension.rb, line 109
109:           def with_valid_on_scope(valid_on, &block)
110:             with_scope({:find => { :conditions =>
111:                   ["? between #{effective_date_attribute} " +
112:                   "and #{expiration_date_attribute}", valid_on]} }, :merge, &block)
113:           end

[Validate]