reso 0.1.6.7 → 0.2.2

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.
Files changed (325) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +11 -17
  3. data/.rspec +3 -0
  4. data/.travis.yml +7 -0
  5. data/CODE_OF_CONDUCT.md +74 -0
  6. data/Gemfile +4 -1
  7. data/Gemfile.lock +60 -0
  8. data/LICENSE.txt +17 -18
  9. data/README.md +19 -125
  10. data/Rakefile +5 -0
  11. data/bin/console +14 -0
  12. data/bin/setup +8 -0
  13. data/lib/generators/reso/install/install_generator.rb +23 -0
  14. data/lib/generators/reso/install/templates/create_reso_enumeration_assignments.rb +14 -0
  15. data/lib/generators/reso/install/templates/create_reso_enumerations.rb +12 -0
  16. data/lib/reso/app/models/.DS_Store +0 -0
  17. data/lib/reso/app/models/application_record.rb +3 -0
  18. data/lib/reso/app/models/reso/contact.rb +3 -0
  19. data/lib/reso/app/models/reso/contact_listing.rb +3 -0
  20. data/lib/reso/app/models/reso/contact_listing_note.rb +3 -0
  21. data/lib/reso/app/models/reso/data_dictionary.rb +124 -0
  22. data/lib/reso/app/models/reso/enumeration.rb +3 -0
  23. data/lib/reso/app/models/reso/enumeration_assignment.rb +4 -0
  24. data/lib/reso/app/models/reso/history_transactional.rb +3 -0
  25. data/lib/reso/app/models/reso/internet_tracking/actor.rb +6 -0
  26. data/lib/reso/app/models/reso/internet_tracking/event.rb +6 -0
  27. data/lib/reso/app/models/reso/internet_tracking/object.rb +6 -0
  28. data/lib/reso/app/models/reso/internet_tracking.rb +7 -0
  29. data/lib/reso/app/models/reso/lookup/accessibility_feature.rb +4 -0
  30. data/lib/reso/app/models/reso/lookup/actor_type.rb +4 -0
  31. data/lib/reso/app/models/reso/lookup/appliance.rb +4 -0
  32. data/lib/reso/app/models/reso/lookup/area_source.rb +6 -0
  33. data/lib/reso/app/models/reso/lookup/area_unit.rb +5 -0
  34. data/lib/reso/app/models/reso/lookup/association_amenity.rb +4 -0
  35. data/lib/reso/app/models/reso/lookup/association_fee_include.rb +5 -0
  36. data/lib/reso/app/models/reso/lookup/attended.rb +4 -0
  37. data/lib/reso/app/models/reso/lookup/basement.rb +5 -0
  38. data/lib/reso/app/models/reso/lookup/body_type.rb +4 -0
  39. data/lib/reso/app/models/reso/lookup/business_type.rb +4 -0
  40. data/lib/reso/app/models/reso/lookup/buyer_agent_designation.rb +5 -0
  41. data/lib/reso/app/models/reso/lookup/buyer_financing.rb +4 -0
  42. data/lib/reso/app/models/reso/lookup/change_type.rb +5 -0
  43. data/lib/reso/app/models/reso/lookup/class_name.rb +4 -0
  44. data/lib/reso/app/models/reso/lookup/co_buyer_agent_designation.rb +4 -0
  45. data/lib/reso/app/models/reso/lookup/co_list_agent_designation.rb +4 -0
  46. data/lib/reso/app/models/reso/lookup/common_interest.rb +4 -0
  47. data/lib/reso/app/models/reso/lookup/common_wall.rb +4 -0
  48. data/lib/reso/app/models/reso/lookup/community_feature.rb +4 -0
  49. data/lib/reso/app/models/reso/lookup/compensation_type.rb +8 -0
  50. data/lib/reso/app/models/reso/lookup/concession.rb +4 -0
  51. data/lib/reso/app/models/reso/lookup/construction_material.rb +4 -0
  52. data/lib/reso/app/models/reso/lookup/contact_listing_preference.rb +4 -0
  53. data/lib/reso/app/models/reso/lookup/contact_status.rb +4 -0
  54. data/lib/reso/app/models/reso/lookup/contact_type.rb +4 -0
  55. data/lib/reso/app/models/reso/lookup/cooling.rb +4 -0
  56. data/lib/reso/app/models/reso/lookup/current_financing.rb +4 -0
  57. data/lib/reso/app/models/reso/lookup/current_use.rb +4 -0
  58. data/lib/reso/app/models/reso/lookup/daily_schedule.rb +4 -0
  59. data/lib/reso/app/models/reso/lookup/development_status.rb +4 -0
  60. data/lib/reso/app/models/reso/lookup/device_type.rb +4 -0
  61. data/lib/reso/app/models/reso/lookup/direction_face.rb +4 -0
  62. data/lib/reso/app/models/reso/lookup/door_feature.rb +4 -0
  63. data/lib/reso/app/models/reso/lookup/electric.rb +4 -0
  64. data/lib/reso/app/models/reso/lookup/event_target.rb +4 -0
  65. data/lib/reso/app/models/reso/lookup/event_type.rb +4 -0
  66. data/lib/reso/app/models/reso/lookup/existing_lease_type.rb +4 -0
  67. data/lib/reso/app/models/reso/lookup/exterior_feature.rb +4 -0
  68. data/lib/reso/app/models/reso/lookup/fencing.rb +4 -0
  69. data/lib/reso/app/models/reso/lookup/financial_data_source.rb +4 -0
  70. data/lib/reso/app/models/reso/lookup/fireplace_feature.rb +4 -0
  71. data/lib/reso/app/models/reso/lookup/flooring.rb +4 -0
  72. data/lib/reso/app/models/reso/lookup/foundation_detail.rb +4 -0
  73. data/lib/reso/app/models/reso/lookup/frontage_type.rb +4 -0
  74. data/lib/reso/app/models/reso/lookup/furnished.rb +4 -0
  75. data/lib/reso/app/models/reso/lookup/green_building_verification_type.rb +4 -0
  76. data/lib/reso/app/models/reso/lookup/green_energy_efficient.rb +4 -0
  77. data/lib/reso/app/models/reso/lookup/green_energy_generation.rb +4 -0
  78. data/lib/reso/app/models/reso/lookup/green_indoor_air_quality.rb +4 -0
  79. data/lib/reso/app/models/reso/lookup/green_sustainability.rb +4 -0
  80. data/lib/reso/app/models/reso/lookup/green_water_conservation.rb +4 -0
  81. data/lib/reso/app/models/reso/lookup/heating.rb +4 -0
  82. data/lib/reso/app/models/reso/lookup/horse_amenity.rb +4 -0
  83. data/lib/reso/app/models/reso/lookup/hours_days_of_operation.rb +4 -0
  84. data/lib/reso/app/models/reso/lookup/image_of.rb +4 -0
  85. data/lib/reso/app/models/reso/lookup/income_include.rb +4 -0
  86. data/lib/reso/app/models/reso/lookup/labor_information.rb +4 -0
  87. data/lib/reso/app/models/reso/lookup/laundry_feature.rb +4 -0
  88. data/lib/reso/app/models/reso/lookup/lease_renewal_compensation.rb +4 -0
  89. data/lib/reso/app/models/reso/lookup/lease_term.rb +4 -0
  90. data/lib/reso/app/models/reso/lookup/list_agent_designation.rb +4 -0
  91. data/lib/reso/app/models/reso/lookup/listing_agreement.rb +4 -0
  92. data/lib/reso/app/models/reso/lookup/listing_service.rb +4 -0
  93. data/lib/reso/app/models/reso/lookup/listing_term.rb +4 -0
  94. data/lib/reso/app/models/reso/lookup/lock_box_type.rb +4 -0
  95. data/lib/reso/app/models/reso/lookup/lot_dimensions_source.rb +4 -0
  96. data/lib/reso/app/models/reso/lookup/lot_feature.rb +4 -0
  97. data/lib/reso/app/models/reso/lookup/lot_size_source.rb +4 -0
  98. data/lib/reso/app/models/reso/lookup/lot_size_unit.rb +4 -0
  99. data/lib/reso/app/models/reso/lookup/media_category.rb +4 -0
  100. data/lib/reso/app/models/reso/lookup/media_type.rb +4 -0
  101. data/lib/reso/app/models/reso/lookup/member_designation.rb +4 -0
  102. data/lib/reso/app/models/reso/lookup/member_other_phone_type.rb +4 -0
  103. data/lib/reso/app/models/reso/lookup/member_status.rb +4 -0
  104. data/lib/reso/app/models/reso/lookup/member_type.rb +4 -0
  105. data/lib/reso/app/models/reso/lookup/noted_by.rb +4 -0
  106. data/lib/reso/app/models/reso/lookup/object_id_type.rb +4 -0
  107. data/lib/reso/app/models/reso/lookup/object_type.rb +4 -0
  108. data/lib/reso/app/models/reso/lookup/occupant_type.rb +4 -0
  109. data/lib/reso/app/models/reso/lookup/open_house_status.rb +4 -0
  110. data/lib/reso/app/models/reso/lookup/open_house_type.rb +4 -0
  111. data/lib/reso/app/models/reso/lookup/operating_expense_include.rb +4 -0
  112. data/lib/reso/app/models/reso/lookup/other_equipment.rb +4 -0
  113. data/lib/reso/app/models/reso/lookup/other_structure.rb +4 -0
  114. data/lib/reso/app/models/reso/lookup/owner_pay.rb +4 -0
  115. data/lib/reso/app/models/reso/lookup/ownership_type.rb +4 -0
  116. data/lib/reso/app/models/reso/lookup/parking_feature.rb +4 -0
  117. data/lib/reso/app/models/reso/lookup/patio_and_porch_feature.rb +4 -0
  118. data/lib/reso/app/models/reso/lookup/permission.rb +4 -0
  119. data/lib/reso/app/models/reso/lookup/pets_allowed.rb +4 -0
  120. data/lib/reso/app/models/reso/lookup/pool_feature.rb +4 -0
  121. data/lib/reso/app/models/reso/lookup/possession.rb +4 -0
  122. data/lib/reso/app/models/reso/lookup/possible_use.rb +4 -0
  123. data/lib/reso/app/models/reso/lookup/property_condition.rb +4 -0
  124. data/lib/reso/app/models/reso/lookup/property_sub_type.rb +4 -0
  125. data/lib/reso/app/models/reso/lookup/property_type.rb +4 -0
  126. data/lib/reso/app/models/reso/lookup/queue_transaction_type.rb +4 -0
  127. data/lib/reso/app/models/reso/lookup/reason_active_or_disabled.rb +4 -0
  128. data/lib/reso/app/models/reso/lookup/rent_include.rb +4 -0
  129. data/lib/reso/app/models/reso/lookup/road_frontage_type.rb +4 -0
  130. data/lib/reso/app/models/reso/lookup/road_responsibility.rb +4 -0
  131. data/lib/reso/app/models/reso/lookup/road_surface_type.rb +4 -0
  132. data/lib/reso/app/models/reso/lookup/roof.rb +4 -0
  133. data/lib/reso/app/models/reso/lookup/rule_format.rb +4 -0
  134. data/lib/reso/app/models/reso/lookup/schedule_type.rb +4 -0
  135. data/lib/reso/app/models/reso/lookup/search_query_type.rb +4 -0
  136. data/lib/reso/app/models/reso/lookup/security_feature.rb +4 -0
  137. data/lib/reso/app/models/reso/lookup/sewer.rb +4 -0
  138. data/lib/reso/app/models/reso/lookup/showing_contact_type.rb +4 -0
  139. data/lib/reso/app/models/reso/lookup/showing_requirement.rb +4 -0
  140. data/lib/reso/app/models/reso/lookup/skirt.rb +4 -0
  141. data/lib/reso/app/models/reso/lookup/spa_feature.rb +4 -0
  142. data/lib/reso/app/models/reso/lookup/special_license.rb +4 -0
  143. data/lib/reso/app/models/reso/lookup/special_listing_condition.rb +4 -0
  144. data/lib/reso/app/models/reso/lookup/standard_status.rb +4 -0
  145. data/lib/reso/app/models/reso/lookup/street_direction.rb +4 -0
  146. data/lib/reso/app/models/reso/lookup/structure_type.rb +4 -0
  147. data/lib/reso/app/models/reso/lookup/syndicate_to.rb +4 -0
  148. data/lib/reso/app/models/reso/lookup/tax_status_current.rb +4 -0
  149. data/lib/reso/app/models/reso/lookup/team_member_type.rb +4 -0
  150. data/lib/reso/app/models/reso/lookup/team_status.rb +4 -0
  151. data/lib/reso/app/models/reso/lookup/tenant_pay.rb +4 -0
  152. data/lib/reso/app/models/reso/lookup/unit_type_type.rb +4 -0
  153. data/lib/reso/app/models/reso/lookup/units_furnished.rb +4 -0
  154. data/lib/reso/app/models/reso/lookup/utility.rb +4 -0
  155. data/lib/reso/app/models/reso/lookup/vegetation.rb +4 -0
  156. data/lib/reso/app/models/reso/lookup/view.rb +4 -0
  157. data/lib/reso/app/models/reso/lookup/water_source.rb +4 -0
  158. data/lib/reso/app/models/reso/lookup/waterfront_feature.rb +4 -0
  159. data/lib/reso/app/models/reso/lookup/window_feature.rb +4 -0
  160. data/lib/reso/app/models/reso/lookup/year_built_source.rb +4 -0
  161. data/lib/reso/app/models/reso/lookup.rb +2 -0
  162. data/lib/reso/app/models/reso/media.rb +3 -0
  163. data/lib/reso/app/models/reso/member.rb +3 -0
  164. data/lib/reso/app/models/reso/office.rb +3 -0
  165. data/lib/reso/app/models/reso/open_house.rb +3 -0
  166. data/lib/reso/app/models/reso/other_phone.rb +3 -0
  167. data/lib/reso/app/models/reso/ouid.rb +3 -0
  168. data/lib/reso/app/models/reso/property/business.rb +6 -0
  169. data/lib/reso/app/models/reso/property/characteristic.rb +9 -0
  170. data/lib/reso/app/models/reso/property/equipment.rb +5 -0
  171. data/lib/reso/app/models/reso/property/farming.rb +9 -0
  172. data/lib/reso/app/models/reso/property/financial.rb +9 -0
  173. data/lib/reso/app/models/reso/property/hoa.rb +6 -0
  174. data/lib/reso/app/models/reso/property/listing/agent_office/buyer_agent.rb +6 -0
  175. data/lib/reso/app/models/reso/property/listing/agent_office/buyer_office.rb +6 -0
  176. data/lib/reso/app/models/reso/property/listing/agent_office/co_buyer_agent.rb +6 -0
  177. data/lib/reso/app/models/reso/property/listing/agent_office/co_buyer_office.rb +6 -0
  178. data/lib/reso/app/models/reso/property/listing/agent_office/co_list_agent.rb +6 -0
  179. data/lib/reso/app/models/reso/property/listing/agent_office/co_list_office.rb +6 -0
  180. data/lib/reso/app/models/reso/property/listing/agent_office/list_agent.rb +6 -0
  181. data/lib/reso/app/models/reso/property/listing/agent_office/list_office.rb +6 -0
  182. data/lib/reso/app/models/reso/property/listing/agent_office/team.rb +6 -0
  183. data/lib/reso/app/models/reso/property/listing/agent_office.rb +15 -0
  184. data/lib/reso/app/models/reso/property/listing/closing.rb +6 -0
  185. data/lib/reso/app/models/reso/property/listing/compensation.rb +6 -0
  186. data/lib/reso/app/models/reso/property/listing/contract.rb +6 -0
  187. data/lib/reso/app/models/reso/property/listing/date.rb +6 -0
  188. data/lib/reso/app/models/reso/property/listing/marketing.rb +6 -0
  189. data/lib/reso/app/models/reso/property/listing/media.rb +6 -0
  190. data/lib/reso/app/models/reso/property/listing/price.rb +6 -0
  191. data/lib/reso/app/models/reso/property/listing/remark.rb +6 -0
  192. data/lib/reso/app/models/reso/property/listing/showing.rb +6 -0
  193. data/lib/reso/app/models/reso/property/listing.rb +17 -0
  194. data/lib/reso/app/models/reso/property/location/address.rb +6 -0
  195. data/lib/reso/app/models/reso/property/location/area.rb +6 -0
  196. data/lib/reso/app/models/reso/property/location/gis.rb +6 -0
  197. data/lib/reso/app/models/reso/property/location/school.rb +6 -0
  198. data/lib/reso/app/models/reso/property/location.rb +10 -0
  199. data/lib/reso/app/models/reso/property/occupant_owner.rb +6 -0
  200. data/lib/reso/app/models/reso/property/structure/performance/green_marketing.rb +6 -0
  201. data/lib/reso/app/models/reso/property/structure/performance/green_verification.rb +6 -0
  202. data/lib/reso/app/models/reso/property/structure/performance.rb +7 -0
  203. data/lib/reso/app/models/reso/property/structure/room.rb +6 -0
  204. data/lib/reso/app/models/reso/property/structure.rb +11 -0
  205. data/lib/reso/app/models/reso/property/tax.rb +6 -0
  206. data/lib/reso/app/models/reso/property/unit_type.rb +9 -0
  207. data/lib/reso/app/models/reso/property/utility.rb +12 -0
  208. data/lib/reso/app/models/reso/property.rb +22 -0
  209. data/lib/reso/app/models/reso/property_agent_office.rb +2 -0
  210. data/lib/reso/app/models/reso/property_green_verification.rb +3 -0
  211. data/lib/reso/app/models/reso/property_location.rb +2 -0
  212. data/lib/reso/app/models/reso/property_performance.rb +2 -0
  213. data/lib/reso/app/models/reso/property_power_production.rb +3 -0
  214. data/lib/reso/app/models/reso/property_room.rb +3 -0
  215. data/lib/reso/app/models/reso/property_unit_type.rb +3 -0
  216. data/lib/reso/app/models/reso/prospecting.rb +3 -0
  217. data/lib/reso/app/models/reso/queue.rb +48 -0
  218. data/lib/reso/app/models/reso/rule.rb +85 -0
  219. data/lib/reso/app/models/reso/saved_search.rb +3 -0
  220. data/lib/reso/app/models/reso/showing/agent.rb +6 -0
  221. data/lib/reso/app/models/reso/showing/listing.rb +6 -0
  222. data/lib/reso/app/models/reso/showing.rb +7 -0
  223. data/lib/reso/app/models/reso/social_media.rb +3 -0
  224. data/lib/reso/app/models/reso/team.rb +7 -0
  225. data/lib/reso/app/models/reso/team_member.rb +3 -0
  226. data/lib/reso/config/inflections.rb +10 -0
  227. data/lib/reso/config/initializers/enumeration_assignments.rb +374 -0
  228. data/lib/reso/railtie.rb +5 -0
  229. data/lib/reso/version.rb +2 -2
  230. data/lib/reso.rb +215 -8
  231. data/reso-1.7.xml +109899 -0
  232. data/reso.gemspec +20 -20
  233. metadata +259 -159
  234. data/app/controllers/syndication_controller.rb +0 -5
  235. data/app/models/.keep +0 -0
  236. data/app/models/address.rb +0 -25
  237. data/app/models/address_type.rb +0 -3
  238. data/app/models/alternate_price.rb +0 -2
  239. data/app/models/appliance.rb +0 -3
  240. data/app/models/architecture_style.rb +0 -5
  241. data/app/models/area_unit.rb +0 -2
  242. data/app/models/brokerage.rb +0 -4
  243. data/app/models/builder.rb +0 -4
  244. data/app/models/business.rb +0 -8
  245. data/app/models/community.rb +0 -5
  246. data/app/models/cooling_system.rb +0 -3
  247. data/app/models/county.rb +0 -5
  248. data/app/models/currency_period.rb +0 -3
  249. data/app/models/enumeration.rb +0 -7
  250. data/app/models/expense.rb +0 -6
  251. data/app/models/expense_category.rb +0 -2
  252. data/app/models/exterior_type.rb +0 -3
  253. data/app/models/floor_covering.rb +0 -3
  254. data/app/models/foreclosure_status.rb +0 -5
  255. data/app/models/franchise.rb +0 -4
  256. data/app/models/gender.rb +0 -3
  257. data/app/models/heating_fuel.rb +0 -3
  258. data/app/models/heating_system.rb +0 -3
  259. data/app/models/home_feature.rb +0 -3
  260. data/app/models/import.rb +0 -153
  261. data/app/models/import_format.rb +0 -3
  262. data/app/models/import_result.rb +0 -12
  263. data/app/models/license_category.rb +0 -2
  264. data/app/models/listing.rb +0 -64
  265. data/app/models/listing_category.rb +0 -5
  266. data/app/models/listing_media.rb +0 -6
  267. data/app/models/listing_provider.rb +0 -9
  268. data/app/models/listing_status.rb +0 -5
  269. data/app/models/multiple_listing_service.rb +0 -5
  270. data/app/models/neighborhood.rb +0 -3
  271. data/app/models/office.rb +0 -6
  272. data/app/models/open_house.rb +0 -4
  273. data/app/models/parking.rb +0 -3
  274. data/app/models/participant.rb +0 -5
  275. data/app/models/participant_license.rb +0 -8
  276. data/app/models/participant_role.rb +0 -3
  277. data/app/models/person.rb +0 -18
  278. data/app/models/photo.rb +0 -3
  279. data/app/models/place.rb +0 -3
  280. data/app/models/price.rb +0 -4
  281. data/app/models/property_sub_type.rb +0 -5
  282. data/app/models/property_type.rb +0 -5
  283. data/app/models/queued_listing.rb +0 -31
  284. data/app/models/roof_type.rb +0 -3
  285. data/app/models/room.rb +0 -4
  286. data/app/models/room_category.rb +0 -2
  287. data/app/models/school.rb +0 -3
  288. data/app/models/school_category.rb +0 -2
  289. data/app/models/source_provider_category.rb +0 -2
  290. data/app/models/tax.rb +0 -3
  291. data/app/models/video.rb +0 -3
  292. data/app/models/view_type.rb +0 -3
  293. data/app/models/virtual_tour.rb +0 -3
  294. data/app/views/syndication/rets.xml.erb +0 -325
  295. data/lib/class_extensions.rb +0 -53
  296. data/lib/generators/reso/install_generator.rb +0 -45
  297. data/lib/generators/reso/setup.rb +0 -37
  298. data/lib/generators/reso/templates/create_addresses.rb +0 -33
  299. data/lib/generators/reso/templates/create_businesses.rb +0 -18
  300. data/lib/generators/reso/templates/create_enumerations.rb +0 -13
  301. data/lib/generators/reso/templates/create_expenses.rb +0 -13
  302. data/lib/generators/reso/templates/create_import_results.rb +0 -16
  303. data/lib/generators/reso/templates/create_imports.rb +0 -19
  304. data/lib/generators/reso/templates/create_join_tables.rb +0 -27
  305. data/lib/generators/reso/templates/create_listing_media.rb +0 -18
  306. data/lib/generators/reso/templates/create_listing_providers.rb +0 -13
  307. data/lib/generators/reso/templates/create_listings.rb +0 -111
  308. data/lib/generators/reso/templates/create_multiple_listing_services.rb +0 -11
  309. data/lib/generators/reso/templates/create_offices.rb +0 -29
  310. data/lib/generators/reso/templates/create_open_houses.rb +0 -18
  311. data/lib/generators/reso/templates/create_participant_licenses.rb +0 -13
  312. data/lib/generators/reso/templates/create_participants.rb +0 -26
  313. data/lib/generators/reso/templates/create_people.rb +0 -18
  314. data/lib/generators/reso/templates/create_places.rb +0 -20
  315. data/lib/generators/reso/templates/create_prices.rb +0 -19
  316. data/lib/generators/reso/templates/create_queued_listings.rb +0 -10
  317. data/lib/generators/reso/templates/create_rooms.rb +0 -10
  318. data/lib/generators/reso/templates/create_schools.rb +0 -13
  319. data/lib/generators/reso/templates/create_taxes.rb +0 -12
  320. data/lib/generators/reso/templates/enumerations.csv +0 -748
  321. data/lib/generators/reso/templates/reso.rake +0 -142
  322. data/lib/mapper/reso.rb +0 -617
  323. data/lib/mapper.rb +0 -274
  324. data/lib/reso/engine.rb +0 -13
  325. data/lib/reso/railties/reso.rake +0 -38
data/lib/mapper.rb DELETED
@@ -1,274 +0,0 @@
1
- module Mapper
2
- RESO_LISTING_ATTRIBUTES = %w(
3
- address
4
- alternate_prices
5
- appliances
6
- architecture_style
7
- architecture_style_description
8
- bathrooms
9
- bedrooms
10
- brokerage
11
- builder
12
- building_unit_count
13
- condo_floor_num
14
- cooling_systems
15
- county
16
- currency_code
17
- directions
18
- disclaimer
19
- disclose_address
20
- elevation
21
- expenses
22
- exterior_types
23
- floor_coverings
24
- foreclosure_status
25
- franchise
26
- full_bathrooms
27
- geocode_options
28
- half_bathrooms
29
- has_attic
30
- has_barbecue_area
31
- has_basement
32
- has_ceiling_fan
33
- has_deck
34
- has_disabled_access
35
- has_dock
36
- has_doorman
37
- has_double_pane_windows
38
- has_elevator
39
- has_fireplace
40
- has_garden
41
- has_gated_entry
42
- has_greenhouse
43
- has_hot_tub_spa
44
- has_intercom
45
- has_jetted_bath_tub
46
- has_lawn
47
- has_mother_in_law
48
- has_patio
49
- has_pond
50
- has_pool
51
- has_porch
52
- has_rv_parking
53
- has_sauna
54
- has_security_system
55
- has_skylight
56
- has_sports_court
57
- has_sprinkler_system
58
- has_vaulted_ceiling
59
- has_wet_bar
60
- heating_fuels
61
- heating_systems
62
- import
63
- is_cable_ready
64
- is_new_construction
65
- is_waterfront
66
- is_wired
67
- latitude
68
- lead_routing_email
69
- legal_description
70
- list_price
71
- list_price_low
72
- listing_category
73
- listing_date
74
- listing_description
75
- listing_provider
76
- listing_status
77
- listing_title
78
- listing_url
79
- living_area
80
- living_area_unit
81
- longitude
82
- lot_size
83
- mls_number
84
- multiple_listing_service
85
- modification_timestamp
86
- neighborhoods
87
- num_floors
88
- num_parking_spaces
89
- office
90
- one_quarter_bathrooms
91
- open_houses
92
- parcel_info
93
- participants
94
- permit_address_on_internet
95
- photos
96
- property_sub_type
97
- property_sub_type_description
98
- property_type
99
- property_type_description
100
- roof_types
101
- room_count
102
- rooms
103
- taxes
104
- three_quarter_bathrooms
105
- videos
106
- view_types
107
- virtual_tours
108
- vow_address_display
109
- vow_automated_valuation_display
110
- vow_consumer_comment
111
- year_built
112
- year_updated
113
- )
114
-
115
- def self.fetch_enumeration class_name, item_name
116
- Rails.cache.fetch([class_name, item_name], expires_in: 12.hours) do
117
- class_name.constantize.find_by(name: item_name)
118
- end
119
- end
120
-
121
- def self.address_types item_name
122
- fetch_enumeration 'AddressType', item_name
123
- end
124
-
125
- def self.appliances item_name
126
- fetch_enumeration 'Appliance', item_name
127
- end
128
-
129
- def self.architecture_styles item_name
130
- fetch_enumeration 'ArchitectureStyle', item_name
131
- end
132
-
133
- def self.area_units item_name
134
- fetch_enumeration 'AreaUnit', item_name
135
- end
136
-
137
- def self.cooling_systems item_name
138
- fetch_enumeration 'CoolingSystem', item_name
139
- end
140
-
141
- def self.currency_periods item_name
142
- fetch_enumeration 'CurrencyPeriod', item_name
143
- end
144
-
145
- def self.expense_categories item_name
146
- fetch_enumeration 'ExpenseCategory', item_name
147
- end
148
-
149
- def self.exterior_types item_name
150
- fetch_enumeration 'ExteriorType', item_name
151
- end
152
-
153
- def self.floor_coverings item_name
154
- fetch_enumeration 'FloorCovering', item_name
155
- end
156
-
157
- def self.foreclosure_statuses item_name
158
- fetch_enumeration 'ForeclosureStatus', item_name
159
- end
160
-
161
- def self.gender item_name
162
- fetch_enumeration 'Gender', item_name
163
- end
164
-
165
- def self.heating_fuels item_name
166
- fetch_enumeration 'HeatingFuel', item_name
167
- end
168
-
169
- def self.heating_systems item_name
170
- fetch_enumeration 'HeatingSystem', item_name
171
- end
172
-
173
- def self.home_features item_name
174
- fetch_enumeration 'HomeFeature', item_name
175
- end
176
-
177
- def self.import_formats item_name
178
- fetch_enumeration 'ImportFormat', item_name
179
- end
180
-
181
- def self.license_categories item_name
182
- fetch_enumeration 'LicenseCategory', item_name
183
- end
184
-
185
- def self.listing_categories item_name
186
- fetch_enumeration 'ListingCategory', item_name
187
- end
188
-
189
- def self.listing_statuses item_name
190
- fetch_enumeration 'ListingStatus', item_name
191
- end
192
-
193
- def self.parkings item_name
194
- fetch_enumeration 'Parking', item_name
195
- end
196
-
197
- def self.participant_roles item_name
198
- fetch_enumeration 'ParticipantRole', item_name
199
- end
200
-
201
- def self.property_sub_types item_name
202
- fetch_enumeration 'PropertySubType', item_name
203
- end
204
-
205
- def self.property_types item_name
206
- fetch_enumeration 'PropertyType', item_name
207
- end
208
-
209
- def self.roof_types item_name
210
- fetch_enumeration 'RoofType', item_name
211
- end
212
-
213
- def self.room_categories item_name
214
- fetch_enumeration 'RoomCategory', item_name
215
- end
216
-
217
- def self.school_categories item_name
218
- fetch_enumeration 'SchoolCategory', item_name
219
- end
220
-
221
- def self.source_provider_categories item_name
222
- fetch_enumeration 'SourceProviderCategory', item_name
223
- end
224
-
225
- def self.view_types item_name
226
- fetch_enumeration 'ViewType', item_name
227
- end
228
-
229
- def self.unique_identifier queued_listing
230
- (result = Mapper::get_value(queued_listing, queued_listing.import.unique_identifier.split(' ')))
231
- end
232
-
233
- def self.get_boolean_value queued_listing, elements
234
- (result = Mapper::get_value(queued_listing, elements)) ? result.to_s.to_bool : nil
235
- end
236
-
237
- def self.get_value queued_listing, elements
238
- if elements.count.eql?(1)
239
- get_simple_value(queued_listing, elements.first)
240
- else
241
- get_subvalue(queued_listing, elements.first, elements[1..-1])
242
- end
243
- end
244
-
245
- def self.get_simple_value queued_listing, element
246
- if (value = queued_listing.listing_data[element])
247
- value.unwrap_attribute
248
- end
249
- end
250
-
251
- def self.get_subvalue queued_listing, element, child_elements
252
- if (value = get_simple_value(queued_listing, element))
253
- if (subvalue = child_elements.inject(value){|v, e| v[e] ? v[e] : Hash.new })
254
- subvalue.present? ? subvalue.unwrap_attribute : nil
255
- end
256
- end
257
- end
258
-
259
- def self.get_repeaters queued_listing, elements
260
- if (value = Mapper::get_value(queued_listing, elements[0..-2]))
261
- (result = value.drilldown(elements.last)) ? (result.is_a?(Array) ? result : [result]) : nil
262
- else
263
- return []
264
- end
265
- end
266
-
267
- def self.get_enums queued_listing, elements
268
- if (result = get_repeaters(queued_listing, elements))
269
- enums = result.map{|name| Mapper.send(elements.last.tableize, name)}
270
- end
271
- enums ? enums.compact : nil
272
- end
273
-
274
- end
data/lib/reso/engine.rb DELETED
@@ -1,13 +0,0 @@
1
- require "reso"
2
- require "rails"
3
-
4
- module Reso
5
- class Engine < ::Rails::Engine
6
- engine_name :reso
7
-
8
- rake_tasks do
9
- load "reso/railties/reso.rake"
10
- end
11
-
12
- end
13
- end
@@ -1,38 +0,0 @@
1
- namespace :reso do
2
-
3
- desc "Populate database with seed data."
4
- task :seed => [:load_enumerations, :seed_imports]
5
-
6
- task :load_enumerations => [:environment] do
7
- require "csv"
8
- csv_text = File.read("#{Rails.root}/db/enumerations.csv")
9
- csv = CSV.parse(csv_text, :headers => true)
10
- csv.each do |row|
11
- row = row.to_hash.with_indifferent_access
12
- Enumeration.find_or_create_by(row.to_hash.symbolize_keys)
13
- puts row.inspect
14
- end
15
- puts
16
- end
17
-
18
- task :seed_imports => [:environment] do
19
- imports = [{ name: "RESO Example",
20
- token: "reso",
21
- import_format_id: ImportFormat.find_by(name: 'reso').id,
22
- source_url: "https://app.listhub.com/syndication-docs/example.xml"
23
- }]
24
-
25
- imports.each do |import|
26
- @import = Import.new
27
- import.each_pair{|key, value| @import[key] = value }
28
- @import.save
29
- end
30
- end
31
-
32
- desc "Download and import data file for specified import."
33
- task :import, [:import_token] => [:environment] do |t, args|
34
- args.with_defaults(:import_token => "reso")
35
- Import.find_by(token: args.import_token).run_import
36
- end
37
-
38
- end