class WageStats

Attributes

download_url[RW]
file_name[RW]

Public Class Methods

convert_dates_array(dates_array) click to toggle source

# File lib/salary_croatia.rb, line 111
def self.convert_dates_array(dates_array)              
        cd = ConvertDate.new
        cd.get_dates(dates_array)
end
get_latest_average_salary() click to toggle source

Basically last month value of average national net salary

# File lib/salary_croatia.rb, line 38
def self.get_latest_average_salary
        if File.exists?(FILE_NAME)
                self.update_stats
        end

        if @@merged_hash.empty?
                self.update_stats
                self.merge_arrays
        end
        @@average_salary_hash.values.last
end
get_salary_for_date(date) click to toggle source

# File lib/salary_croatia.rb, line 52
def self.get_salary_for_date(date)
        if @@merged_hash.empty?
                self.update_stats
                self.merge_arrays
        end
        converted_date = ConvertDate.new.transform_date(date)
        return @@merged_hash[converted_date.to_s]
end
get_salary_history() click to toggle source

# File lib/salary_croatia.rb, line 81
def self.get_salary_history
        if @@merged_hash.empty?
                self.update_stats
                self.merge_arrays
        end
        return @@merged_hash
end
get_year_of_salaries(year) click to toggle source

# File lib/salary_croatia.rb, line 63
def self.get_year_of_salaries(year)
        if @@merged_hash.empty?
                self.update_stats
                self.merge_arrays
        end
        year_salaries = []
        @@merged_hash.values.each_with_index do |value, index|
                if @@merged_hash.keys[index].include?(year) and year.length > 3
                        year_salaries << value
                end
        end

        return year_salaries
end
merge_arrays() click to toggle source

# File lib/salary_croatia.rb, line 91
def self.merge_arrays
        dates_array   = self.convert_dates_array(@@dates_hash.values.drop(2))
        salaries_array        = @@average_salary_hash.values.drop(2)                # Removing 2 empty cells from the start of an array
        while dates_array.size > salaries_array.size
                dates_array.pop
        end

        if dates_array.size == salaries_array.size
                @@merged_hash = DataTypeHelper.merge_arrays_into_hash(dates_array, salaries_array)
        else
                puts "Dates size: " + dates_array.size.to_s
                puts dates_array
                puts "Salary size: " + salaries_array.size.to_s
                puts salaries_array
                raise Exception.new "Arrays have different size, thus incompatible"
        end
end
update_stats(filename=FILE_NAME, download_url=WAGE_STATISTICS_URL) click to toggle source

class method, that is using default values for download and file_name

# File lib/salary_croatia.rb, line 17
def self.update_stats(filename=FILE_NAME, download_url=WAGE_STATISTICS_URL)
        if !File.file?(filename) or download_url != WAGE_STATISTICS_URL
                File.open(filename, "wb") do |saved_file|
                        open(download_url, "rb") do |read_file|
                                saved_file.write(read_file.read)
                        end
                end
                #puts "Updated stats!"
        end

        if (@@average_salary_hash.empty?)
                file_data = Creek::Book.new filename
                file_data.sheets[0].rows.each_with_index do |row, index|
                        @@average_salary_hash = row if index == 75
                        @@dates_hash = row if index == 6
                end
        end
end