fossil 0.5.40 → 0.5.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/fossil.gemspec +2 -2
- data/lib/models/city_cost.rb +1 -1
- data/lib/models/city_pair.rb +1 -1
- data/lib/models/flight_log_expense.rb +29 -0
- data/lib/models/trip_leg.rb +41 -0
- data/lib/support/core_extensions.rb +14 -0
- data/spec/core_extensions_spec.rb +22 -0
- data/spec/models/city_pair_spec.rb +6 -6
- data/spec/models/flight_log_expense_spec.rb +5 -0
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.41
|
data/fossil.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{fossil}
|
8
|
-
s.version = "0.5.
|
8
|
+
s.version = "0.5.41"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Daniel Sudol", "Patrick Lardin"]
|
12
|
-
s.date = %q{2011-03-
|
12
|
+
s.date = %q{2011-03-17}
|
13
13
|
s.description = %q{Access FOS/betrieve db with this Sequel based orm wrapper}
|
14
14
|
s.email = %q{dansudol@yahoo.com}
|
15
15
|
s.extra_rdoc_files = [
|
data/lib/models/city_cost.rb
CHANGED
@@ -12,7 +12,7 @@ class CityCost < Sequel::Model(:'city cost')
|
|
12
12
|
self.kid_time = rand(65535)
|
13
13
|
self.kid_comm = rand(255)
|
14
14
|
self.kid_mult = rand(255)
|
15
|
-
self.kid_user =
|
15
|
+
self.kid_user = String.random_of_length(4)
|
16
16
|
self.owner_kid_date = city_pair.kid_date
|
17
17
|
self.owner_kid_time = city_pair.kid_time
|
18
18
|
self.owner_kid_mult = city_pair.kid_mult
|
data/lib/models/city_pair.rb
CHANGED
@@ -12,7 +12,7 @@ class CityPair < Sequel::Model(:'city pair')
|
|
12
12
|
self.kid_time = rand(65535)
|
13
13
|
self.kid_comm = rand(255)
|
14
14
|
self.kid_mult = rand(255)
|
15
|
-
self.kid_user =
|
15
|
+
self.kid_user = String.random_of_length(4)
|
16
16
|
end
|
17
17
|
|
18
18
|
o_to_n :city_costs, :class=>:CityCost, :prefix=>'owner'
|
@@ -104,6 +104,10 @@ class FlightLogExpense < Sequel::Model(:'flight log expenses')
|
|
104
104
|
arrival_airport == 0
|
105
105
|
end
|
106
106
|
|
107
|
+
def type_string
|
108
|
+
is_departure_expense? ? "departure" : "arrival"
|
109
|
+
end
|
110
|
+
|
107
111
|
def airport_fuel_lookup
|
108
112
|
if !is_departure_expense? then
|
109
113
|
ap_str = "ARRIVAL"
|
@@ -151,4 +155,29 @@ class FlightLogExpense < Sequel::Model(:'flight log expenses')
|
|
151
155
|
end
|
152
156
|
0.0
|
153
157
|
end
|
158
|
+
|
159
|
+
def calculate_fuel_data
|
160
|
+
expense_type = expense_type_string
|
161
|
+
tl = trip_leg
|
162
|
+
vendor = tl.send("#{expense_type}_fuel_vendor__company_2")
|
163
|
+
vendor = tl.send("#{expense_type}_fuel_vendor__company_1") if !vendor or vendor == ""
|
164
|
+
vendor = tl.send("#{expense_type}_fuel_vendor__vendor_id") if !vendor or vendor == ""
|
165
|
+
airport = tl.send("#{expense_type}_icao_val")
|
166
|
+
fbo = tl.send("#{expense_type}_fbo__name")
|
167
|
+
aircraft = (tl.aircraft ? tl.tail_number : tl.aircraft_id)
|
168
|
+
leg_date = (tl.dept_date_act_local and tl.dept_date_act_local != 0 ? tl.dept_date_act_local : tl.depart_date_local)
|
169
|
+
|
170
|
+
{
|
171
|
+
:leg_date => leg_date,
|
172
|
+
:trip_number => tl.trip_number,
|
173
|
+
:leg_number => tl.leg_number,
|
174
|
+
:ac => aircraft,
|
175
|
+
:airport => airport,
|
176
|
+
:fbo => fbo,
|
177
|
+
:vendor => vendor,
|
178
|
+
:fuel_rate => expense.fuel_rate,
|
179
|
+
:fuel_quantity => expense.quantity,
|
180
|
+
:fuel_cost => expense.fuel_cost
|
181
|
+
}
|
182
|
+
end
|
154
183
|
end
|
data/lib/models/trip_leg.rb
CHANGED
@@ -935,4 +935,45 @@ class TripLeg < Sequel::Model(:'trip legs')
|
|
935
935
|
def total_fuel_purchased_quantity
|
936
936
|
departure_fuel_purchased_quantity + arrival_fuel_purchased_quantity
|
937
937
|
end
|
938
|
+
|
939
|
+
|
940
|
+
# Fuel Passdown Methods
|
941
|
+
class << self
|
942
|
+
def fuel_passdown_data start_date, end_date, fbo_keys
|
943
|
+
trip_legs = TripLeg.get_fuel_passdown_trip_legs( start_date, end_date )
|
944
|
+
fuel_data_by_fbo_keys( trip_legs, fbo_keys )
|
945
|
+
end
|
946
|
+
|
947
|
+
def get_fuel_passdown_trip_legs start_date, end_date
|
948
|
+
start_date = start_date.to_fos_days
|
949
|
+
end_date = end_date.to_fos_days
|
950
|
+
TripLeg.filter(:cancelled => 0, :status => [0,1,2]).
|
951
|
+
filter(~{:'leg state' => 5}).
|
952
|
+
filter({:'dept date act local' => start_date..end_date,
|
953
|
+
:'depart date - local' => start_date...end_date}.sql_or).limit(10).all
|
954
|
+
end
|
955
|
+
|
956
|
+
def fuel_data_by_fbo_keys trip_legs, fbo_keys
|
957
|
+
data = Hash.new
|
958
|
+
trip_legs.each do |leg|
|
959
|
+
leg.fuel_expenses.each do |expense|
|
960
|
+
|
961
|
+
expense_type = expense_type_string( expense )
|
962
|
+
fbo_name = leg.send( "#{expense_type}_fbo__name" )
|
963
|
+
p fbo_name
|
964
|
+
if fbo_keys.include?(fbo_name) then # is this an fbo we are looking for?
|
965
|
+
expense_hash = calculate_expense( expense, leg )
|
966
|
+
|
967
|
+
if data.has_key?(fbo_name)
|
968
|
+
data[fbo_name].push(expense_hash)
|
969
|
+
else
|
970
|
+
data[fbo_name] = [expense_hash]
|
971
|
+
end
|
972
|
+
end
|
973
|
+
end
|
974
|
+
end
|
975
|
+
data
|
976
|
+
end
|
977
|
+
protected :fuel_data_by_fbo_keys
|
978
|
+
end
|
938
979
|
end
|
@@ -1,5 +1,19 @@
|
|
1
1
|
require 'json'
|
2
2
|
|
3
|
+
class Array
|
4
|
+
def to_flat_file_row options = { :delimeter => ',', :enclosed_by => '' }
|
5
|
+
self.inject("") do |csv, item|
|
6
|
+
csv << "#{options[:enclosed_by]}#{item}#{options[:enclosed_by]}#{options[:delimeter]}"
|
7
|
+
end.chop
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
class String
|
12
|
+
def self.random_of_length length
|
13
|
+
length.times.inject("") {|str| str << (rand(26) + 97).chr }
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
3
17
|
class Integer
|
4
18
|
def as_cost
|
5
19
|
self/100.0
|
@@ -62,4 +62,26 @@ describe Range do
|
|
62
62
|
range = 1..1
|
63
63
|
range.split_by_step(10).should == [1..1]
|
64
64
|
end
|
65
|
+
end
|
66
|
+
|
67
|
+
describe Array do
|
68
|
+
describe "flat file conversions" do
|
69
|
+
before :all do
|
70
|
+
@array = ["one", "two","three"]
|
71
|
+
end
|
72
|
+
|
73
|
+
it "can do flat file string conversions with default values" do
|
74
|
+
@array.to_flat_file_row.should == "one,two,three"
|
75
|
+
end
|
76
|
+
|
77
|
+
it "can do flat file string conversions with options" do
|
78
|
+
@array.to_flat_file_row(:delimeter => '|', :enclosed_by => '"').should == %q{"one"|"two"|"three"}
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
describe String do
|
84
|
+
it "can generate a string of lower case characters of length" do
|
85
|
+
String.random_of_length(4).should match(/[a-z]{4}/)
|
86
|
+
end
|
65
87
|
end
|
@@ -1,12 +1,12 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
2
|
|
3
|
-
RSpec::Matchers.define :have_valid_kid_keys do
|
3
|
+
RSpec::Matchers.define :have_valid_kid_keys do
|
4
4
|
match do |actual|
|
5
|
-
actual.kid_date.to_s.should =~ /\d
|
6
|
-
actual.kid_time.to_s.should =~ /\d
|
7
|
-
actual.kid_user.should =~ /\w{
|
8
|
-
actual.kid_mult.to_s.should =~ /\d
|
9
|
-
actual.kid_comm.to_s.should =~ /\d
|
5
|
+
actual.kid_date.to_s.should =~ /\A\d+\Z/
|
6
|
+
actual.kid_time.to_s.should =~ /\A\d+\Z/
|
7
|
+
actual.kid_user.should =~ /\A\w{4}\Z/
|
8
|
+
actual.kid_mult.to_s.should =~ /\A\d+\Z/
|
9
|
+
actual.kid_comm.to_s.should =~ /\A\d+\Z/
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
@@ -68,4 +68,9 @@ describe FlightLogExpense do
|
|
68
68
|
end
|
69
69
|
end
|
70
70
|
end
|
71
|
+
|
72
|
+
it 'should give the type as a string' do
|
73
|
+
FlightLogExpense.new(:arrival_airport => 0).type_string.should == "departure"
|
74
|
+
FlightLogExpense.new(:arrival_airport => 1).type_string.should == "arrival"
|
75
|
+
end
|
71
76
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 5
|
8
|
-
-
|
9
|
-
version: 0.5.
|
8
|
+
- 41
|
9
|
+
version: 0.5.41
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Daniel Sudol
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-03-
|
18
|
+
date: 2011-03-17 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|