Module: Filters
- Included in:
- InvoiceProject
- Defined in:
- lib/ascii_invoicer/filters.rb
Overview
require File.join __dir__ + ‘/rfc5322_regex.rb’
Instance Method Summary collapse
- #check_email(email) ⇒ Object
- #filter_canceled(canceled) ⇒ Object
- #filter_client_email(email) ⇒ Object
- #filter_created(date) ⇒ Object
- #filter_event_dates(dates) ⇒ Object
- #filter_event_description(string) ⇒ Object
- #filter_hours_salary(salary) ⇒ Object
- #filter_invoice_date(date) ⇒ Object
- #filter_invoice_number(number) ⇒ Object
- #filter_invoice_payed_date(date) ⇒ Object
- #filter_manager(string) ⇒ Object
- #filter_messages(messages) ⇒ Object
- #filter_offer_date(date) ⇒ Object
- #filter_products(products) ⇒ Object
- #strpdates(string, pattern = nil) ⇒ Object
Instance Method Details
#check_email(email) ⇒ Object
30 31 32 |
# File 'lib/ascii_invoicer/filters.rb', line 30 def check_email email email =~ $RFC5322 end |
#filter_canceled(canceled) ⇒ Object
39 40 41 42 |
# File 'lib/ascii_invoicer/filters.rb', line 39 def filter_canceled canceled @STATUS = :canceled if @STATUS != :unparsable and canceled canceled end |
#filter_client_email(email) ⇒ Object
34 35 36 37 |
# File 'lib/ascii_invoicer/filters.rb', line 34 def filter_client_email email return fail_at :client_email unless check_email email email end |
#filter_created(date) ⇒ Object
98 99 100 101 |
# File 'lib/ascii_invoicer/filters.rb', line 98 def filter_created date return Date.parse date if date.class == String fail_at :created_date end |
#filter_event_dates(dates) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/ascii_invoicer/filters.rb', line 44 def filter_event_dates dates dates.each {|d| unless d[:time].nil? or d[:end].nil? ## time and end is missleading @logger.warn "FILTER: #{name} missleading: time and end_date" return fail_at :event_dates end d[:begin] = Date.parse(d[:begin]) if d[:begin].class == String if not d[:time].nil? d[:time][:begin] = DateTime.strptime("#{d[:time][:begin]} #{d[:begin]}", "%H:%M %d.%m.%Y" ) if d[:time][:begin] d[:time][:end] = DateTime.strptime("#{d[:time][:end] } #{d[:begin]}", "%H:%M %d.%m.%Y" ) if d[:time][:end] end if d[:end].class == String d[:end] = Date.parse(d[:end]) else d[:end] = d[:begin] end } dates end |
#filter_event_description(string) ⇒ Object
67 68 69 70 |
# File 'lib/ascii_invoicer/filters.rb', line 67 def filter_event_description string return "" unless string string.strip end |
#filter_hours_salary(salary) ⇒ Object
125 126 127 |
# File 'lib/ascii_invoicer/filters.rb', line 125 def filter_hours_salary salary salary.to_euro end |
#filter_invoice_date(date) ⇒ Object
114 115 116 117 118 |
# File 'lib/ascii_invoicer/filters.rb', line 114 def filter_invoice_date date return Date.parse date if date.class == String fail_at :invoice_date return Date.today end |
#filter_invoice_number(number) ⇒ Object
109 110 111 112 |
# File 'lib/ascii_invoicer/filters.rb', line 109 def filter_invoice_number number return fail_at :invoice_number if number.nil? "R#{number.to_s.rjust(3, ?0)}" end |
#filter_invoice_payed_date(date) ⇒ Object
120 121 122 123 |
# File 'lib/ascii_invoicer/filters.rb', line 120 def filter_invoice_payed_date date return Date.parse date if date.class == String return fail_at :invoice_payed end |
#filter_manager(string) ⇒ Object
72 73 74 |
# File 'lib/ascii_invoicer/filters.rb', line 72 def filter_manager string string.strip end |
#filter_messages(messages) ⇒ Object
76 77 78 |
# File 'lib/ascii_invoicer/filters.rb', line 76 def [ @data[:lang].to_sym ] end |
#filter_offer_date(date) ⇒ Object
103 104 105 106 107 |
# File 'lib/ascii_invoicer/filters.rb', line 103 def filter_offer_date date return Date.parse date if date.class == String fail_at :offer_date return Date.today end |
#filter_products(products) ⇒ Object
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/ascii_invoicer/filters.rb', line 80 def filter_products products new_products = [] products.each{|k,v| if [String, Symbol].include? k.class v[:name] = k new_products.push InvoiceProduct.new v , @settings elsif k.class == Hash new_products.push InvoiceProduct.new k.merge(v), @settings #new_products.push k.merge(v) else return k throw :filter_error end } return new_products end |
#strpdates(string, pattern = nil) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/ascii_invoicer/filters.rb', line 7 def strpdates(string,pattern = nil) return [Date.today] unless string.class == String if pattern return [Date.strptime(string, pattern).to_date] else p = string.split('.') p_range = p[0].split('-') if p_range.length == 1 t = Date.new p[2].to_i, p[1].to_i, p[0].to_i return [t] elsif p_range.length == 2 t1 = Date.new p[2].to_i, p[1].to_i, p_range[0].to_i t2 = Date.new p[2].to_i, p[1].to_i, p_range[1].to_i return [t1,t2] else fail end end end |