Class: Teri::CategoryManager
- Inherits:
-
Object
- Object
- Teri::CategoryManager
- Defined in:
- lib/teri/category_manager.rb
Overview
Manages categories for accounting transactions
Instance Attribute Summary collapse
-
#asset_categories ⇒ Object
readonly
Returns the value of attribute asset_categories.
-
#equity_categories ⇒ Object
readonly
Returns the value of attribute equity_categories.
-
#expense_categories ⇒ Object
readonly
Returns the value of attribute expense_categories.
-
#income_categories ⇒ Object
readonly
Returns the value of attribute income_categories.
-
#liability_categories ⇒ Object
readonly
Returns the value of attribute liability_categories.
Instance Method Summary collapse
-
#add_custom_category(category) ⇒ Object
Add a custom category.
-
#all_categories ⇒ Object
Returns all categories combined.
-
#category_type(category) ⇒ Object
Get category type (expense, income, asset, liability, equity).
-
#initialize ⇒ CategoryManager
constructor
A new instance of CategoryManager.
-
#valid_category?(category) ⇒ Boolean
Check if a category is valid.
Constructor Details
#initialize ⇒ CategoryManager
Returns a new instance of CategoryManager.
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/teri/category_manager.rb', line 6 def initialize # Define common account categories @expense_categories = [ 'Expenses:Rent', 'Expenses:Utilities', 'Expenses:Salaries', 'Expenses:Insurance', 'Expenses:Office', 'Expenses:Professional', 'Expenses:Taxes', 'Expenses:Interest', 'Expenses:Maintenance', 'Expenses:Other', ] @income_categories = [ 'Income:Sales', 'Income:Services', 'Income:Interest', 'Income:Rent', 'Income:Other', ] @asset_categories = [ 'Assets:Cash', 'Assets:Accounts Receivable', 'Assets:Inventory', 'Assets:Equipment', 'Assets:Property', 'Assets:Other', ] @liability_categories = [ 'Liabilities:Accounts Payable', 'Liabilities:Loans', 'Liabilities:Mortgage', 'Liabilities:Credit Cards', 'Liabilities:Taxes Payable', 'Liabilities:Other', ] @equity_categories = [ 'Equity:Capital', 'Equity:Retained Earnings', 'Equity:Drawings', 'Equity:Other', ] end |
Instance Attribute Details
#asset_categories ⇒ Object (readonly)
Returns the value of attribute asset_categories.
4 5 6 |
# File 'lib/teri/category_manager.rb', line 4 def asset_categories @asset_categories end |
#equity_categories ⇒ Object (readonly)
Returns the value of attribute equity_categories.
4 5 6 |
# File 'lib/teri/category_manager.rb', line 4 def equity_categories @equity_categories end |
#expense_categories ⇒ Object (readonly)
Returns the value of attribute expense_categories.
4 5 6 |
# File 'lib/teri/category_manager.rb', line 4 def expense_categories @expense_categories end |
#income_categories ⇒ Object (readonly)
Returns the value of attribute income_categories.
4 5 6 |
# File 'lib/teri/category_manager.rb', line 4 def income_categories @income_categories end |
#liability_categories ⇒ Object (readonly)
Returns the value of attribute liability_categories.
4 5 6 |
# File 'lib/teri/category_manager.rb', line 4 def liability_categories @liability_categories end |
Instance Method Details
#add_custom_category(category) ⇒ Object
Add a custom category
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/teri/category_manager.rb', line 76 def add_custom_category(category) type = category_type(category) case type when :expense @expense_categories << category unless @expense_categories.include?(category) when :income @income_categories << category unless @income_categories.include?(category) when :asset @asset_categories << category unless @asset_categories.include?(category) when :liability @liability_categories << category unless @liability_categories.include?(category) when :equity @equity_categories << category unless @equity_categories.include?(category) end end |
#all_categories ⇒ Object
Returns all categories combined
56 57 58 |
# File 'lib/teri/category_manager.rb', line 56 def all_categories @expense_categories + @income_categories + @asset_categories + @liability_categories + @equity_categories end |
#category_type(category) ⇒ Object
Get category type (expense, income, asset, liability, equity)
66 67 68 69 70 71 72 73 |
# File 'lib/teri/category_manager.rb', line 66 def category_type(category) return :expense if category.start_with?('Expenses:') return :income if category.start_with?('Income:') return :asset if category.start_with?('Assets:') return :liability if category.start_with?('Liabilities:') return :equity if category.start_with?('Equity:') :unknown end |
#valid_category?(category) ⇒ Boolean
Check if a category is valid
61 62 63 |
# File 'lib/teri/category_manager.rb', line 61 def valid_category?(category) all_categories.include?(category) end |