mismo_enum 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +21 -0
  3. data/Rakefile +21 -0
  4. data/app/assets/javascripts/mismo_enum/application.js +13 -0
  5. data/app/assets/stylesheets/mismo_enum/application.css +15 -0
  6. data/app/controllers/mismo_enum/application_controller.rb +4 -0
  7. data/app/helpers/mismo_enum/application_helper.rb +4 -0
  8. data/app/models/mismo_enum/amortization_type.rb +39 -0
  9. data/app/models/mismo_enum/automated_underwriting_system_type.rb +32 -0
  10. data/app/models/mismo_enum/bankruptcy_disposition_type.rb +26 -0
  11. data/app/models/mismo_enum/bankruptcy_status_type.rb +20 -0
  12. data/app/models/mismo_enum/base.rb +6 -0
  13. data/app/models/mismo_enum/borrower_classification_type.rb +19 -0
  14. data/app/models/mismo_enum/citizenship_residency_type.rb +23 -0
  15. data/app/models/mismo_enum/construction_method_type.rb +33 -0
  16. data/app/models/mismo_enum/definition_of_value_type.rb +25 -0
  17. data/app/models/mismo_enum/foreclosure_status_type.rb +35 -0
  18. data/app/models/mismo_enum/gender_type.rb +21 -0
  19. data/app/models/mismo_enum/index_source_type.rb +140 -0
  20. data/app/models/mismo_enum/index_type.rb +27 -0
  21. data/app/models/mismo_enum/loan_delinquency_status_type.rb +108 -0
  22. data/app/models/mismo_enum/loan_purpose_type.rb +26 -0
  23. data/app/models/mismo_enum/loan_state_type.rb +44 -0
  24. data/app/models/mismo_enum/marital_status_type.rb +22 -0
  25. data/app/models/mismo_enum/mortgage_type.rb +43 -0
  26. data/app/models/mismo_enum/payment_delinquency_status_type.rb +22 -0
  27. data/app/models/mismo_enum/postal_state.rb +95 -0
  28. data/app/models/mismo_enum/prepayment_penalty_option_type.rb +21 -0
  29. data/app/models/mismo_enum/project_design_type.rb +24 -0
  30. data/app/models/mismo_enum/project_legal_structure_type.rb +32 -0
  31. data/app/models/mismo_enum/property_usage_type.rb +26 -0
  32. data/app/models/mismo_enum/property_valuation_method_type.rb +29 -0
  33. data/app/models/mismo_enum/property_valuation_state_type.rb +20 -0
  34. data/app/models/mismo_enum/rate_lock_type.rb +19 -0
  35. data/app/models/mismo_enum/refinance_cash_out_determination_type.rb +21 -0
  36. data/app/models/mismo_enum/taxpayer_identifier_type.rb +24 -0
  37. data/app/views/layouts/mismo_enum/application.html.erb +14 -0
  38. data/config/routes.rb +2 -0
  39. data/db/migrations/001_create_mismo_enums.rb +26 -0
  40. data/db/seeds.rb +3 -0
  41. data/lib/generators/mismo_enum/install/install_generator.rb +22 -0
  42. data/lib/generators/mismo_enum/templates/create_mismo_enums.rb +26 -0
  43. data/lib/mismo_enum.rb +3 -0
  44. data/lib/mismo_enum/class_list.rb +50 -0
  45. data/lib/mismo_enum/engine.rb +11 -0
  46. data/lib/mismo_enum/helper.rb +3 -0
  47. data/lib/mismo_enum/version.rb +3 -0
  48. data/lib/tasks/mismo_enum_tasks.rake +23 -0
  49. metadata +92 -0
@@ -0,0 +1,27 @@
1
+ # app/models/mismo_enum/index_type.rb
2
+ # enum
3
+
4
+ class MismoEnum::IndexType < MismoEnum::Base
5
+ validates_presence_of :name
6
+ validates_uniqueness_of :name
7
+
8
+ def self.description
9
+ 'Specifies the general category of mortgage index upon which adjustments'+
10
+ ' will be based.'
11
+ end
12
+
13
+ def self.seed
14
+ [[1, 'LIBOR', 'London Interbank Offered Rate'],
15
+ [2, 'ConstantMaturityTreasury', 'Often referred to as CMT'],
16
+ [3, 'BankPrimeLoan', 'Often referred to as Prime Rate'],
17
+ [4, 'CertificateOfDepositIndex', 'Often referred to as CODI'],
18
+ [5, 'CostOfSavingsIndex', 'Often referred to as COSI'],
19
+ [6, 'EleventhDistrictCostOfFundsIndex', 'Often referred to as COFI'],
20
+ [7, 'Other', ''],
21
+ [8, 'TreasuryBill', 'Often referred to as T-Bill'],
22
+ [9, 'TwelveMonthTreasuryAverage', 'Often referred to as MTA']
23
+ ].each { |id, entry, desc| create(id: id,
24
+ name: entry,
25
+ description: desc) }
26
+ end
27
+ end
@@ -0,0 +1,108 @@
1
+ # app/models/mismo_enum/loan_delinquency_status_type.rb
2
+ # enum
3
+
4
+ class MismoEnum::LoanDelinquencyStatusType < MismoEnum::Base
5
+ validates_presence_of :name
6
+ validates_uniqueness_of :name
7
+
8
+ def self.description
9
+ 'Loan Delinquency Status Type is used to report the status of a delinquent'+
10
+ ' loan (i.e., is the loan in delinquency, foreclosure, bankruptcy, or '+
11
+ 'some other status).'
12
+ end
13
+
14
+ def self.seed
15
+ [[1, 'AssignmentPursued', 'An FHA-insured mortgage that qualifies for HUD '+
16
+ 'special assignment procedures is in the process of being assigned '+
17
+ 'to HUD.'],
18
+ [2, 'Assumption', 'The Servicer is working with the borrower to sell the '+
19
+ 'property by permitting the purchaser to pay the delinquent '+
20
+ 'installments and assume the outstanding debt.'],
21
+ [3, 'ChapterElevenBankruptcy', 'The borrower has filed for bankruptcy '+
22
+ 'under Chapter 11 of the Federal Bankruptcy Act.'],
23
+ [4, 'ChapterSevenBankruptcy', 'The borrower has filed for bankruptcy '+
24
+ 'under Chapter 7 of the Federal Bankruptcy Act.'],
25
+ [5, 'ChapterThirteenBankruptcy', 'The borrower has filed for bankruptcy '+
26
+ 'under Chapter 13 of the Federal Bankruptcy Act.'],
27
+ [6, 'ChapterTwelveBankruptcy', 'The borrower has filed for bankruptcy '+
28
+ 'under Chapter 12 of the Federal Bankruptcy Act. A Chapter 12 '+
29
+ 'bankruptcy is a bankruptcy action that involves the reorganization'+
30
+ ' of a family farming business.'],
31
+ [7, 'ChargeOffPursued', 'The investor has agreed not to pursue collection'+
32
+ ' efforts or legal actions against the borrower because of a '+
33
+ 'reduced value for the property, a low outstanding mortgage '+
34
+ 'balance, or the presence of environmental hazards on the '+
35
+ 'property.'],
36
+ [8, 'ContestedForeclosure', 'Borrower has contested the legal action of '+
37
+ 'the servicer or there is litigation pending or filed that '+
38
+ 'adversely affects the property. For example, a borrower or other '+
39
+ 'defendant interposes an answer to an action, or files a '+
40
+ 'countersuit.'],
41
+ [9, 'Current', 'The loan has been made current and is no longer '+
42
+ 'delinquent.'],
43
+ [10, 'DelinquentNoAction', 'Considered delinquent based on investor '+
44
+ 'guidelines, but the servicer has not taken legal action.'],
45
+ [11, 'DrugSeizure', 'The Department of Justice or a state/local agency '+
46
+ 'has decided to seize (or has seized) a property under the '+
47
+ 'forfeiture provision of the Controlled Substances Act.'],
48
+ [12, 'Forbearance', 'The Servicer has authorized a temporary suspension '+
49
+ 'of payments or a repayment plan that calls for periodic payments '+
50
+ 'of less than the normal monthly payment, or periodic payments at '+
51
+ 'different intervals, to give the borrower additional time to '+
52
+ 'bring the mortgage current.'],
53
+ [13, 'Foreclosure', 'The Servicer has referred the case to an attorney to'+
54
+ ' take legal action to acquire the property through a foreclosure '+
55
+ 'sale.'],
56
+ [14, 'GovernmentSeizure', 'An action by a local agency to seize or '+
57
+ 'initiate forfeiture proceedings against a property.'],
58
+ [15, 'MediationReferral', 'The mortgage loan has been referrerd to '+
59
+ 'mediation.'],
60
+ [16, 'MilitaryIndulgence', 'The Servicer has granted a delinquent service'+
61
+ ' member forbearance or a stay in foreclosure proceedings under '+
62
+ 'the provisions of the Soldiers and Sailors Civil Relief Act.'],
63
+ [17, 'Modification', 'The Servicer is working with the borrower to '+
64
+ 'renegotiate the terms of the mortgage.'],
65
+ [18, 'PreforeclosureSalePlanned', 'The Servicer plans to pursue a '+
66
+ 'preforeclosure sale with a payoff of less than the full amount '+
67
+ 'of indebtedness.'],
68
+ [19, 'Probate', 'The Servicer cannot pursue (or complete) foreclosure '+
69
+ 'action because proceedings required to verify a will of a '+
70
+ 'deceased mortgagor are in process.'],
71
+ [20, 'Refinance', 'The Servicer is pursuing a new loan in which the '+
72
+ 'existing first mortgage is paid off with the proceeds of the new '+
73
+ 'mortgage.'],
74
+ [21, 'RepaymentPlan', 'A written or verbal agreement between the Servicer'+
75
+ ' and the borrower that gives the borrower a defined period of '+
76
+ 'time to reinstate the mortgage by making payments in excess of '+
77
+ 'the monthly payment.'],
78
+ [22, 'SecondLienConsiderations', 'The Servicer is evaluating the pros and'+
79
+ ' cons of pursuing foreclosure or recommending that the debt be '+
80
+ 'charged off on a second mortgage.'],
81
+ [23, 'ShortSalePlanning', 'The Servicer is working with the borrower to '+
82
+ 'pursue a short sale.'],
83
+ [24, 'TrialModificationActive', 'The borrower has been approved to '+
84
+ 'participate in a modification that requires a trial period plan '+
85
+ 'and is current on their trial payments.'],
86
+ [25, 'VeteransAffairsBuydown', 'The investor has agreed to make a cash '+
87
+ 'contribution to reduce the outstanding indebtedness of a '+
88
+ 'VA-guaranteed mortgage, for which the Department of Veterans '+
89
+ 'Affairs failed to establish an "upset price" bid for the '+
90
+ 'foreclosure sale, in order to get the VA to reconsider its '+
91
+ 'decision. Servicer has completed processing the Buydown.'],
92
+ [26, 'VeteransAffairsNoBids', 'The Department of Veterans Affairs refused'+
93
+ ' to establish an \"upset price\" to be bid at the foreclosure sale '+
94
+ 'of a VA-guaranteed mortgage that the Servicer had referred for '+
95
+ 'foreclosure. Servicer is pursuing a buydown, charge-off or other '+
96
+ 'alternative.'],
97
+ [27, 'VeteransAffairsRefundPursued', 'The Department of Veterans Affairs '+
98
+ 'has requested information about a VA-guaranteed mortgage the '+
99
+ 'Servicer had referred for foreclosure in order to decide whether '+
100
+ 'to accept an assignment and refund the mortgage.'],
101
+ [28, 'Workout', 'There is a workout being pursued on the loan that will '+
102
+ 'help bring the loan current or liquidate the loan to avoid '+
103
+ 'foreclosure.']
104
+ ].each { |id, entry, desc| create(id: id,
105
+ name: entry,
106
+ description: desc) }
107
+ end
108
+ end
@@ -0,0 +1,26 @@
1
+ # app/models/mismo_enum/loan_purpose_type.rb
2
+ # enum
3
+
4
+ class MismoEnum::LoanPurposeType < MismoEnum::Base
5
+ validates_presence_of :name
6
+ validates_uniqueness_of :name
7
+
8
+ def self.description
9
+ 'Specifies the purpose for which the loan proceeds will be used.'
10
+ end
11
+
12
+ def self.seed
13
+ [[1, 'Purchase', 'A loan made in association with the original purchase of'+
14
+ ' a piece of property.'],
15
+ [2, 'Refinance', 'The repayment of a debt from proceeds of a new loan '+
16
+ 'using the same property as security or a mortgage secured by a '+
17
+ 'property previously owned free and clear by the Borrower.'],
18
+ [3, 'MortgageModification', 'Terms of the mortgage are modified from the '+
19
+ 'original terms agreed to by the lender and borrower'],
20
+ [4, 'Other', ''],
21
+ [5, 'Unknown', 'Loan Purpose has not been reported or is not known.']
22
+ ].each { |id, entry, desc| create(id: id,
23
+ name: entry,
24
+ description: desc) }
25
+ end
26
+ end
@@ -0,0 +1,44 @@
1
+ # app/models/mismo_enum/loan_state_type.rb
2
+ # enum
3
+
4
+ class MismoEnum::LoanStateType < MismoEnum::Base
5
+ validates_presence_of :name
6
+ validates_uniqueness_of :name
7
+
8
+ def self.description
9
+ 'Identifies the state in time for the information associated with this '+
10
+ 'occurrance of LOAN'
11
+ end
12
+
13
+ def self.seed
14
+ [[1, 'AtBankruptcyFiling', 'A snapshot of the loan data at the time a '+
15
+ 'borrower files for bankruptcy.'],
16
+ [2, 'AtClosing', 'A snapshot of the loan data at the completion of the '+
17
+ 'closing process. This is sometimes referred to as "original".'],
18
+ [3, 'AtConversion', 'For loans with a conversion option, a snapshot of '+
19
+ 'the loan data at the time the conversion features become effective '+
20
+ '(e.g., biweekly to monthly payments; adjustable to fixed rate '+
21
+ 'amortization).'],
22
+ [4, 'AtEstimate', 'A snapshot of the loan data at the point in time when '+
23
+ 'a loan estimate is disclosed.'],
24
+ [5, 'AtModification', 'For loans which undergo term modifications not '+
25
+ 'originally specified in the note, a snapshot of the loan data at '+
26
+ 'the time the new note terms become effective.'],
27
+ [6, 'AtRelief', 'For loans subject to payment relief, a snapshot of the '+
28
+ 'loan data at the time the relief is initiated.'],
29
+ [7, 'AtReset', 'For balloon mortgages with a reset feature, a snapshot '+
30
+ 'of the loan data on the balloon maturity date at the time the '+
31
+ 'borrower exercises the reset option to modify and extend the '+
32
+ 'balloon note.'],
33
+ [8, 'AtTransfer', 'A snapshot of the loan data as of the effective date '+
34
+ 'of the servicing transfer.'],
35
+ [9, 'AtTrial', 'A snapshot of the loan data at the initiation of a trial '+
36
+ 'period for a workout modification.'],
37
+ [10, 'AtUnderwriting', 'A snapshot of the loan data at the point at which '+
38
+ 'the underwriting recommendation is made.'],
39
+ [11, 'Current', 'A snapshot of the loan data as of the "Loan State Date".']
40
+ ].each { |id, entry, desc| create(id: id,
41
+ name: entry,
42
+ description: desc) }
43
+ end
44
+ end
@@ -0,0 +1,22 @@
1
+ # app/models/mismo_enum/marital_status_type.rb
2
+ # enum
3
+
4
+ class MismoEnum::MaritalStatusType < MismoEnum::Base
5
+ validates_presence_of :name
6
+ validates_uniqueness_of :name
7
+
8
+ def self.description
9
+ 'The marital status of the party as disclosed by the party.'
10
+ end
11
+
12
+ def self.seed
13
+ [[1, 'Married', ''],
14
+ [2, 'NotProvided', ''],
15
+ [3, 'Separated', ''],
16
+ [4, 'Unknown', ''],
17
+ [5, 'Unmarried', '']
18
+ ].each { |id, entry, desc| create(id: id,
19
+ name: entry,
20
+ description: desc) }
21
+ end
22
+ end
@@ -0,0 +1,43 @@
1
+ # app/models/mismo_enum/mortgage_type.rb
2
+ # enum
3
+
4
+ class MismoEnum::MortgageType < MismoEnum::Base
5
+ validates_presence_of :name
6
+ validates_uniqueness_of :name
7
+
8
+ def self.description
9
+ 'Identifies the highest level private or public sector entity under whose'+
10
+ ' guidelines the mortgage is originated.'
11
+ end
12
+
13
+ def self.seed
14
+ [[1, 'Conventional', 'Mortgage financing which is not insured or '+
15
+ 'guaranteed by a government agency.'],
16
+ [2, 'FHA', "A loan originated in accordance with the guidelines of HUD's"+
17
+ " Federal Housing Administration, a federal agency that provides "+
18
+ "mortgage insurance on single-family, multifamily, manufactured homes "+
19
+ "and hospital loans made by FHA-approved lenders throughout the United "+
20
+ "States and its territories."],
21
+ [3, 'LocalAgency', 'A loan originated in accordance with the guidelines '+
22
+ 'of an agency governed by a municipal jurisdiction.'],
23
+ [4, 'Other', ''],
24
+ [5, 'PublicAndIndianHousing', "A loan originated in accordance with the "+
25
+ "guidelines of HUD's Office of Native American Programs, which "+
26
+ "provides safe and affordable housing for lower-income Native "+
27
+ "American, Alaska Native and Native Hawaiian families."],
28
+ [6, 'StateAgency', 'A loan originated in accordance with the guidelines '+
29
+ 'of an agency governed by a state jurisdiction.'],
30
+ [7, 'USDARuralDevelopment', "A loan originated in accordance with the "+
31
+ "guidelines of the USDA Rural Development Agency's Housing and "+
32
+ "Community Facilities Program, which provides funding for single "+
33
+ "family homes in rural communities."],
34
+ [8, 'VA', 'A loan originated in accordance with the guidelines of the '+
35
+ 'Department of Veterans Affairs’ Loan Guaranty Home Loan Program, '+
36
+ 'which guarantees loans made by private lenders, such as banks, '+
37
+ 'savings & loans, or mortgage companies to eligible veterans for the '+
38
+ 'purchase of a home which must be for their own personal occupancy.']
39
+ ].each { |id, entry, desc| create(id: id,
40
+ name: entry,
41
+ description: desc) }
42
+ end
43
+ end
@@ -0,0 +1,22 @@
1
+ # app/models/mismo_enum/payment_delinquency_status_type.rb
2
+ # enum
3
+
4
+ class MismoEnum::PaymentDelinquencyStatusType < MismoEnum::Base
5
+ validates_presence_of :name
6
+ validates_uniqueness_of :name
7
+
8
+ def self.description
9
+ 'Reports the delinquency status of the specific delinquency event.'
10
+ end
11
+
12
+ def self.seed
13
+ [[1, 'MoreThan120Days', ''],
14
+ [2, 'MoreThan30Days', ''],
15
+ [3, 'MoreThan60Days', ''],
16
+ [4, 'MoreThan90Days', ''],
17
+ [5, 'NotDelinquent', '']
18
+ ].each { |id, entry, desc| create(id: id,
19
+ name: entry,
20
+ description: desc) }
21
+ end
22
+ end
@@ -0,0 +1,95 @@
1
+ # app/models/mismo_enum/postal_state.rb
2
+ # utility enum (not mismo)
3
+
4
+ class MismoEnum::PostalState < MismoEnum::Base
5
+ validates_presence_of :name
6
+ validates_uniqueness_of :name
7
+
8
+ def self.description
9
+ 'List of states and territories with accompanying Postal abbreviation.'+
10
+ ' https://en.wikipedia.org/wiki/List_of_U.S._state_abbreviations'
11
+ end
12
+
13
+ def self.seed
14
+ [[1, 'AK', 'Alaska'],
15
+ [2, 'AL', 'Alabama'],
16
+ [3, 'AR', 'Arkansas'],
17
+ [4, 'AZ', 'Arizona'],
18
+ [5, 'CA', 'California'],
19
+ [6, 'CO', 'Colorado'],
20
+ [7, 'CT', 'Connecticut'],
21
+ [8, 'DE', 'Delaware'],
22
+ [9, 'FL', 'Florida'],
23
+ [10, 'GA', 'Georgia'],
24
+ [11, 'HI', 'Hawaii'],
25
+ [12, 'IA', 'Iowa'],
26
+ [13, 'ID', 'Idaho'],
27
+ [14, 'IL', 'Illinois'],
28
+ [15, 'IN', 'Indiana'],
29
+ [16, 'KS', 'Kansas'],
30
+ [17, 'KY', 'Kentucky'],
31
+ [18, 'LA', 'Louisiana'],
32
+ [19, 'MA', 'Massachusetts'],
33
+ [20, 'MD', 'Maryland'],
34
+ [21, 'ME', 'Maine'],
35
+ [22, 'MI', 'Michigan'],
36
+ [23, 'MN', 'Minnesota'],
37
+ [24, 'MO', 'Missouri'],
38
+ [25, 'MS', 'Mississippi'],
39
+ [26, 'MT', 'Montana'],
40
+ [27, 'NC', 'North Carolina'],
41
+ [28, 'ND', 'North Dakota'],
42
+ [29, 'NE', 'Nebraska'],
43
+ [30, 'NH', 'New Hampshire'],
44
+ [31, 'NJ', 'New Jersey'],
45
+ [32, 'NM', 'New Mexico'],
46
+ [33, 'NV', 'Nevada'],
47
+ [34, 'NY', 'New York'],
48
+ [35, 'OH', 'Ohio'],
49
+ [36, 'OK', 'Oklahoma'],
50
+ [37, 'OR', 'Oregon'],
51
+ [38, 'PA', 'Pennsylvania'],
52
+ [39, 'RI', 'Rhode Island'],
53
+ [40, 'SC', 'South Carolina'],
54
+ [41, 'SD', 'South Dakota'],
55
+ [42, 'TN', 'Tennessee'],
56
+ [43, 'TX', 'Texas'],
57
+ [44, 'UT', 'Utah'],
58
+ [45, 'VA', 'Virginia'],
59
+ [46, 'VT', 'Vermont'],
60
+ [47, 'WA', 'Washington'],
61
+ [48, 'WI', 'Wisconsin'],
62
+ [49, 'WV', 'West Virginia'],
63
+ [50, 'WY', 'Wyoming'],
64
+
65
+ # Evil Empire
66
+ [51, 'DC', 'District of Columbia'],
67
+
68
+ # Territories
69
+ [52, 'AS', 'American Samoa'],
70
+ [53, 'GU', 'Guam'],
71
+ [54, 'MP', 'Northern Mariana Islands'],
72
+ [55, 'PR', 'Puerto Rico'],
73
+ [56, 'VI', 'U.S. Virgin Islands'],
74
+ [57, 'UM', 'United States Minor Outlying Islands'],
75
+
76
+ # Freely Associated States
77
+ [58, 'AA', 'Federated States of Micronesia'],
78
+ [59, 'MH', 'Marshall Islands'],
79
+ [60, 'PW', 'Palau'],
80
+
81
+ # Armed Forces
82
+ [61, 'AA', 'Armed Forces Americas (except Canada)'],
83
+ [62, 'AE', 'Armed Forces Europe (covers all USARAEUR, Armed Forces Canada, ' +
84
+ 'Armed Forces Middle East, Armed Forces Africa'],
85
+ [63, 'AP', 'Armed Forces Pacific'],
86
+
87
+ # No Longer Used
88
+ [64, 'CZ', 'Canal Zone'],
89
+ [65, 'TT', 'Trust Territory of the Pacific Islands'],
90
+ [66, 'PI', 'Rizal State']
91
+ ].each { |id, short_name, name| create(:id => id,
92
+ :name => short_name,
93
+ :description => name) }
94
+ end
95
+ end
@@ -0,0 +1,21 @@
1
+ # app/models/mismo_enum/prepayment_penalty_option_type.rb
2
+ # enum
3
+
4
+ class MismoEnum::PrepaymentPenaltyOptionType < MismoEnum::Base
5
+ validates_presence_of :name
6
+ validates_uniqueness_of :name
7
+
8
+ def self.description
9
+ 'Identifies the type of early principal repayment eligible for a penalty'+
10
+ ' charge.'
11
+ end
12
+
13
+ def self.seed
14
+ [[1, 'Hard', 'Standard prepay penalty applies in all situations.'],
15
+ [2, 'Soft', 'Borrower may sell property without penalty. However, '+
16
+ 'refinance will incur penalty.']
17
+ ].each { |id, entry, desc| create(id: id,
18
+ name: entry,
19
+ description: desc) }
20
+ end
21
+ end
@@ -0,0 +1,24 @@
1
+ # app/models/mismo_enum/project_design_type.rb
2
+ # enum
3
+
4
+ class MismoEnum::ProjectDesignType < MismoEnum::Base
5
+ validates_presence_of :name
6
+ validates_uniqueness_of :name
7
+
8
+ def self.description
9
+ 'This field specifies the type of design for the multiple unit buildings'+
10
+ ' in a project.'
11
+ end
12
+
13
+ def self.seed
14
+ [[1, 'GardenProject', ''],
15
+ [2, 'HighriseProject', ''],
16
+ [3, 'MidriseProject', ''],
17
+ [4, 'TownhouseRowhouse', 'One in a row of identical houses or having '+
18
+ 'common wall. Attached to another unit via common wall (e.g., a '+
19
+ 'brownstone.)']
20
+ ].each { |id, entry, desc| create(id: id,
21
+ name: entry,
22
+ description: desc) }
23
+ end
24
+ end