fossil 0.5.35 → 0.5.36

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 CHANGED
@@ -1 +1 @@
1
- 0.5.35
1
+ 0.5.36
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{fossil}
8
- s.version = "0.5.35"
8
+ s.version = "0.5.36"
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-15}
12
+ s.date = %q{2011-03-16}
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 = [
@@ -4,6 +4,7 @@ class FlightLogExpense < Sequel::Model(:'flight log expenses')
4
4
 
5
5
  #Many to one association with composite keys
6
6
  n_to_o :trip_leg, :class=>:TripLeg, :prefix=>'trip leg'
7
+ many_to_one :vendor, :class=>:Vendor, :key=>:vendor_id, :primary_key=>:'vendor id'
7
8
 
8
9
  #### BEGIN GENERATED SECTION ####
9
10
  set_primary_key [:'kid - user', :'kid - mult', :'kid - comm', :'kid - date', :'kid - time']
@@ -75,6 +75,7 @@ class TripLeg < Sequel::Model(:'trip legs')
75
75
  o_to_n :crew_legs, :class=>:CrewLeg, :prefix=>'trip leg'
76
76
  o_to_n :audit_trails, :class=>:AuditTrail, :prefix=>'owner'
77
77
  o_to_n :flight_log_expenses, :class=>:FlightLogExpense, :prefix=>'trip leg'
78
+ o_to_n :fuel_expenses, :class=>:FlightLogExpense, :prefix=>'trip leg', :extra_conditions => {:type => 1}
78
79
 
79
80
  # Code associations
80
81
  code_association :approval_value, :'approval code', :trip_approval
@@ -900,10 +901,6 @@ class TripLeg < Sequel::Model(:'trip legs')
900
901
  end
901
902
 
902
903
  # Fuel Expense Stuff
903
- def fuel_expenses
904
- flight_log_expenses.find_all { |expense| expense.type == 1 }
905
- end
906
-
907
904
  def departure_fuel_expenses
908
905
  fuel_expenses.select { |expense| expense.arrival_airport == 0 }
909
906
  end
@@ -20,9 +20,10 @@ class Sequel::Model
20
20
  # TripLeg['MERE',0,8,40443,1259], you would get a trip leg
21
21
  # You still have to massage this key alittle to make the query:
22
22
  # see Sequel.fos_id_to_lookup_key in core_patch.rb
23
- PK_KEYS = [:"kid - user",:"kid - mult",:"kid - comm",:"kid - date",:"kid - time"]
23
+ PK_KEYS = [:"kid - user", :"kid - mult", :"kid - comm", :"kid - date", :"kid - time"]
24
+
24
25
  def fos_id
25
- PK_KEYS.collect{|key| value=send(key); value.strip! if value.is_a?(String); value}.join('-')
26
+ PK_KEYS.collect { |key| value=send(key); value.strip! if value.is_a?(String); value }.join('-')
26
27
  end
27
28
 
28
29
  # Passing in an array of attribute / method names, fills a hash with values from
@@ -39,7 +40,7 @@ class Sequel::Model
39
40
  hash[attribute_name] = send(attribute_name) if respond_to? attribute_name
40
41
  hash
41
42
  end
42
- elsif attributes.is_a? Hash
43
+ elsif attributes.is_a? Hash
43
44
  hash = {}
44
45
  attributes.each do |key, attribute|
45
46
  attribute_name = attribute.to_s.gsub('__', '_').to_sym
@@ -50,12 +51,12 @@ class Sequel::Model
50
51
  end
51
52
  end
52
53
 
53
- def method_missing(method, *args, &block)
54
+ def method_missing(method, * args, & block)
54
55
  if method.to_s.split(/__/).size > 1
55
56
  generate_delegator(method)
56
- send(method.to_s.gsub('__','_').to_sym)
57
+ send(method.to_s.gsub('__', '_').to_sym)
57
58
  else
58
- super(method, *args, &block)
59
+ super(method, * args, & block)
59
60
  end
60
61
  end
61
62
 
@@ -96,15 +97,31 @@ class Sequel::Model
96
97
  class_name = options[:class]
97
98
  prefix = options[:prefix]
98
99
  case assoc_type
99
- when :one_to_many
100
- key = options[:key] || primary_key
101
- primary_key = options[:primary_key] || key
102
- graph_conditions = { :"#{prefix} kid - date" => :'kid - date', :"#{prefix} kid - time" => :'kid - time', :"#{prefix} kid - user" => :'kid - user', :"#{prefix} kid - mult" => :'kid - mult', :"#{prefix} kid - comm" => :'kid - comm' }
103
- dataset_filter = proc { class_name.to_s.constantize.filter( :"#{prefix} kid - date"=>self[:'kid - date'], :"#{prefix} kid - time"=>self[:'kid - time'], :"#{prefix} kid - user"=>self[:'kid - user'], :"#{prefix} kid - mult"=>self[:'kid - mult'], :"#{prefix} kid - comm"=>self[:'kid - comm']) }
104
- when :many_to_one
105
- key = nil
106
- graph_conditions = { :'kid - date'=>:"#{prefix} kid - date", :'kid - time'=>:"#{prefix} kid - time", :'kid - user'=>:"#{prefix} kid - user", :'kid - mult'=>:"#{prefix} kid - mult", :'kid - comm'=>:"#{prefix} kid - comm" }
107
- dataset_filter = proc { class_name.to_s.constantize.filter( :"kid - date"=>self[:"#{prefix} kid - date"], :"kid - time"=>self[:"#{prefix} kid - time"], :"kid - user"=>self[:"#{prefix} kid - user"], :"kid - mult"=>self[:"#{prefix} kid - mult"], :"kid - comm"=>self[:"#{prefix} kid - comm"]) }
100
+ when :one_to_many
101
+ key = options[:key] || primary_key
102
+ primary_key = options[:primary_key] || key
103
+ extra_dataset_conditions = options[:extra_conditions] || {}
104
+ graph_conditions = {:"#{prefix} kid - date" => :'kid - date',
105
+ :"#{prefix} kid - time" => :'kid - time',
106
+ :"#{prefix} kid - user" => :'kid - user',
107
+ :"#{prefix} kid - mult" => :'kid - mult',
108
+ :"#{prefix} kid - comm" => :'kid - comm'}.
109
+ merge(extra_dataset_conditions)
110
+ dataset_filter = proc {
111
+ class_name.to_s.constantize.filter(
112
+ {:"#{prefix} kid - date"=>self[:'kid - date'],
113
+ :"#{prefix} kid - time"=>self[:'kid - time'],
114
+ :"#{prefix} kid - user"=>self[:'kid - user'],
115
+ :"#{prefix} kid - mult"=>self[:'kid - mult'],
116
+ :"#{prefix} kid - comm"=>self[:'kid - comm']}.
117
+ merge(extra_dataset_conditions)
118
+ )
119
+ }
120
+ when :many_to_one
121
+ key = nil
122
+ graph_conditions = {:'kid - date'=>:"#{prefix} kid - date", :'kid - time'=>:"#{prefix} kid - time", :'kid - user'=>:"#{prefix} kid - user", :'kid - mult'=>:"#{prefix} kid - mult", :'kid - comm'=>:"#{prefix} kid - comm"}
123
+ extra_dataset_conditions = options[:dataset_conditions] || {}
124
+ dataset_filter = proc { class_name.to_s.constantize.filter({:"kid - date"=>self[:"#{prefix} kid - date"], :"kid - time"=>self[:"#{prefix} kid - time"], :"kid - user"=>self[:"#{prefix} kid - user"], :"kid - mult"=>self[:"#{prefix} kid - mult"], :"kid - comm"=>self[:"#{prefix} kid - comm"]}.merge(extra_dataset_conditions)) }
108
125
  end
109
126
  graph_conditions.merge!(options[:graph_only_conditions]) if options[:graph_only_conditions]
110
127
  send(assoc_type, assoc_name, :key=> key, :primary_key=>primary_key, :class => class_name, :dataset=> dataset_filter, :graph_only_conditions=>graph_conditions)
@@ -114,13 +131,13 @@ class Sequel::Model
114
131
  def code_association(assoc_name, column_name_holding_code, code_group_name)
115
132
  # create the many to one association
116
133
  send(:many_to_one, assoc_name, :class=>:Code, :key=>nil,
117
- # dataset adds
118
- :dataset=>proc {
119
- value = self[column_name_holding_code] || send(column_name_holding_code)
120
- Code.filter(:'value'=> value, :name=>CodeGroup.send(code_group_name))
121
- },
122
- # graph_only_conditions add the join conditions when using eager_graph in query
123
- :graph_only_conditions => { :'value'=> column_name_holding_code, :name=>CodeGroup.send(code_group_name)}
134
+ # dataset adds
135
+ :dataset=>proc {
136
+ value = self[column_name_holding_code] || send(column_name_holding_code)
137
+ Code.filter(:'value'=> value, :name=>CodeGroup.send(code_group_name))
138
+ },
139
+ # graph_only_conditions add the join conditions when using eager_graph in query
140
+ :graph_only_conditions => {:'value'=> column_name_holding_code, :name=>CodeGroup.send(code_group_name)}
124
141
  )
125
142
 
126
143
  # create the :get_all method to find all codes of the code group name
@@ -128,15 +145,15 @@ class Sequel::Model
128
145
  Code.get_codes(CodeGroup.send(code_group_name))
129
146
  end
130
147
  # add a delegator that calls for the code, and one for description
131
- delegate :code, :to=> assoc_name, :prefix=>true, :allow_nil => true
132
- delegate :description, :to=> assoc_name, :prefix=>true, :allow_nil => true
148
+ delegate :code, :to=> assoc_name, :prefix=>true, :allow_nil => true
149
+ delegate :description, :to=> assoc_name, :prefix=>true, :allow_nil => true
133
150
  end
134
151
 
135
152
  # date_column,time_column should be a Fixnum because fos stores dates,times as numbers
136
153
  def column_def_datetime(datetime_column_name, date_column, time_column)
137
154
  inst_def datetime_column_name do
138
- days = send(:[], date_column) || 0 # nil defaults to 0 days
139
- minutes = send(:[], time_column) || 0 # nil defaults to 0 minutes
155
+ days = send(:[], date_column) || 0 # nil defaults to 0 days
156
+ minutes = send(:[], time_column) || 0 # nil defaults to 0 minutes
140
157
  DateTime.from_fos_date_time(days, minutes) # returns utc datetime
141
158
  end
142
159
  end
@@ -214,7 +231,7 @@ class Sequel::Model
214
231
  # paid_boolean => which returns a string ("False" / "True") for values ( 0 / 1 )
215
232
  #
216
233
  def column_view(column_name, type, custom_method_name=nil)
217
- raise(StandardError,"Expect the type to be either :date, :datetime, :time, :currency, :precision or :boolean") unless [:date, :time, :datetime, :currency, :precision, :boolean].include? type
234
+ raise(StandardError, "Expect the type to be either :date, :datetime, :time, :currency, :precision or :boolean") unless [:date, :time, :datetime, :currency, :precision, :boolean].include? type
218
235
  # will get value from old_column_name
219
236
  method_name = custom_method_name || "#{column_name}_#{type.to_s}"
220
237
 
@@ -223,16 +240,16 @@ class Sequel::Model
223
240
  column_value = send(column_name)
224
241
  case type
225
242
  when :date
226
- Date.from_fos_days(column_value) if column_value
243
+ Date.from_fos_days(column_value) if column_value
227
244
  when :time
228
245
  Time.from_fos_time(column_value) if column_value
229
246
  when :currency
230
- number_to_currency( (column_value || 0).to_f/100, :unit=>'', :precision=>2)
247
+ number_to_currency((column_value || 0).to_f/100, :unit=>'', :precision=>2)
231
248
  when :precision
232
249
  # precision wont do delimiter .. so send to currency
233
- number_to_currency( (column_value || 0).to_f/100, :unit=>'', :precision=>2)
250
+ number_to_currency((column_value || 0).to_f/100, :unit=>'', :precision=>2)
234
251
  when :boolean
235
- return "True" if column_value and ( column_value == 1 or column_value == true )
252
+ return "True" if column_value and (column_value == 1 or column_value == true)
236
253
  "False"
237
254
  end
238
255
  end
@@ -267,8 +284,8 @@ class Sequel::Model
267
284
  end
268
285
  end
269
286
 
270
- def select_fields(table, *fields)
271
- dataset.select_fields(table, *fields)
287
+ def select_fields(table, * fields)
288
+ dataset.select_fields(table, * fields)
272
289
  end
273
290
  end
274
291
 
@@ -7,12 +7,13 @@ DB = Sequel.fos('fos', :loggers=>[Logger.new($stdout)])
7
7
  #DB = Sequel.fos('demo_company_fos_db')#, :loggers=>[Logger.new($stdout)])
8
8
  #DB = Sequel.fos('flyos')#, :loggers=>[Logger.new($stdout)])
9
9
  #[CityPair,CityCost].each {|model| model.db = DB}
10
- [Vendor].each {|model| model.db = DB}
10
+ [TripLeg,FlightLogExpense].each {|model| model.db = DB}
11
+ #[Vendor].each {|model| model.db = DB}
11
12
  #p Aircraft.first.type_id
12
13
  #p [AirportFuel.min(:kid_date),AirportFuel.max(:kid_date)]
13
14
  #p [TripLeg.min(:dept_date_gmt),TripLeg.max(:dept_date_gmt)]
14
15
  #p [Date.from_fos_days(TripLeg.min(:dept_date_gmt)).to_s,Date.from_fos_days(TripLeg.max(:dept_date_gmt)).to_s]
15
- p Vendor.count
16
+ #p Vendor.count
16
17
  #p TripLeg.filter{kid_date > 40500}.limit(10).all.collect &:dep_fuel_vendor
17
18
  #p Passenger.filter(:kid_date=>38439, :kid_time=>1428, :kid_comm=>1, :kid_mult=>0).first
18
19
  #p Aircraft.filter(:kid_date=>39722).first.owner_name
@@ -76,7 +77,9 @@ p Vendor.count
76
77
  #p AirportFbo.filter(:icao=>'KSFO').count
77
78
  #DB.execute('Update "trip legs" set "lunch comment" = \'hi\' where "trip number" = 83100 and "leg number" = 3')
78
79
  #DB.execute('Update "trip legs" set "pax count" = 4 where "trip number" = 62 and "leg number" = 1 ')
79
- #tl = TripLeg.filter(:trip_number=>69012,:leg_number=>1).first#eager_graph(:arrival_fbo).all.first
80
+ #tl = TripLeg.filter(:trip_number=>69012,:leg_number=>1).eager_graph(:fuel_expenses).all.first
81
+ tl = TripLeg.first
82
+ p tl.fuel_expenses
80
83
  #p tl.actual_arrival_date_time_gmt
81
84
  #date = TripLeg.filter(:arr_date_act_gmt=>0).filter{:verify_date >0}.order(:kid_date).last.kid_date # :arrival_date_gmt
82
85
  #p Date.from_fos_days(date).to_s
File without changes
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 5
8
- - 35
9
- version: 0.5.35
8
+ - 36
9
+ version: 0.5.36
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-15 00:00:00 -07:00
18
+ date: 2011-03-16 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency