Class: Vinbot::Data::Vehicle
- Inherits:
-
Sequel::Model
- Object
- Sequel::Model
- Vinbot::Data::Vehicle
- Defined in:
- lib/data/vehicle.rb
Class Method Summary collapse
- .add_conditions_to_join(join_query, params) ⇒ Object
- .get_random_vehicle ⇒ Object
- .get_vehicle(params) ⇒ Object
- .perform_joins(params) ⇒ Object
Class Method Details
.add_conditions_to_join(join_query, params) ⇒ Object
26 27 28 |
# File 'lib/data/vehicle.rb', line 26 def self.add_conditions_to_join(join_query, params) params.inject(join_query) { |r, e| r.where("#{e.first}s__name".to_sym => e.last) } end |
.get_random_vehicle ⇒ Object
30 31 32 33 |
# File 'lib/data/vehicle.rb', line 30 def self.get_random_vehicle count = ::Vinbot::Data::Vehicle.count ::Vinbot::Data::Vehicle.where(id: rand(count)).first end |
.get_vehicle(params) ⇒ Object
16 17 18 19 20 |
# File 'lib/data/vehicle.rb', line 16 def self.get_vehicle(params) return get_random_vehicle if params.empty? join_query = perform_joins(params) add_conditions_to_join(join_query, params).order(Sequel.lit('RANDOM()')).limit(1).first end |
.perform_joins(params) ⇒ Object
22 23 24 |
# File 'lib/data/vehicle.rb', line 22 def self.perform_joins(params) params.keys.inject(from(:vehicles)) { |r, e| r.join("#{e}s".to_sym, :id => "vehicles__#{e}_id".to_sym) } end |