mits 0.1.0 → 0.2.0

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 (105) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -1
  3. data/README.md +4 -4
  4. data/lib/mits.rb +4 -1
  5. data/lib/mits/base_mapper.rb +20 -0
  6. data/lib/mits/document.rb +16 -5
  7. data/lib/mits/saxerator_ext.rb +8 -1
  8. data/lib/mits/v3.0/address.rb +20 -0
  9. data/lib/mits/v3.0/amenity.rb +12 -0
  10. data/lib/mits/v3.0/company.rb +13 -0
  11. data/lib/mits/v3.0/deposit.rb +13 -0
  12. data/lib/mits/v3.0/fees.rb +17 -0
  13. data/lib/mits/v3.0/file.rb +18 -0
  14. data/lib/mits/v3.0/floorplan.rb +13 -0
  15. data/lib/mits/v3.0/mapper.rb +50 -0
  16. data/lib/mits/v3.0/mapper/address_mapper.rb +35 -0
  17. data/lib/mits/v3.0/mapper/amenities_mapper.rb +19 -0
  18. data/lib/mits/v3.0/mapper/company_mapper.rb +15 -0
  19. data/lib/mits/v3.0/mapper/deposit_mapper.rb +32 -0
  20. data/lib/mits/v3.0/mapper/fees_mapper.rb +19 -0
  21. data/lib/mits/v3.0/mapper/files_mapper.rb +25 -0
  22. data/lib/mits/v3.0/mapper/floorplan_mapper.rb +27 -0
  23. data/lib/mits/v3.0/mapper/pet_policy_mapper.rb +37 -0
  24. data/lib/mits/v3.0/mapper/policy_mapper.rb +12 -0
  25. data/lib/mits/v3.0/mapper/property_mapper.rb +57 -0
  26. data/lib/mits/v3.0/pet.rb +13 -0
  27. data/lib/mits/v3.0/pet_policy.rb +17 -0
  28. data/lib/mits/v3.0/policy.rb +10 -0
  29. data/lib/mits/v3.0/property.rb +23 -0
  30. data/lib/mits/v4.1/address.rb +21 -0
  31. data/lib/mits/v4.1/amenity.rb +21 -0
  32. data/lib/mits/v4.1/company.rb +8 -0
  33. data/lib/mits/v4.1/deposit.rb +8 -0
  34. data/lib/mits/v4.1/fees.rb +8 -0
  35. data/lib/mits/v4.1/file.rb +8 -0
  36. data/lib/mits/v4.1/mapper.rb +45 -0
  37. data/lib/mits/v4.1/mapper/address_mapper.rb +29 -0
  38. data/lib/mits/v4.1/mapper/company_mapper.rb +9 -0
  39. data/lib/mits/v4.1/mapper/property_mapper.rb +48 -0
  40. data/lib/mits/v4.1/mapper/units_mapper.rb +26 -0
  41. data/lib/mits/v4.1/pet.rb +8 -0
  42. data/lib/mits/v4.1/pet_policy.rb +8 -0
  43. data/lib/mits/v4.1/policy.rb +8 -0
  44. data/lib/mits/v4.1/property.rb +22 -0
  45. data/lib/mits/v4.1/unit.rb +13 -0
  46. data/lib/mits/version.rb +1 -1
  47. data/mits.gemspec +5 -4
  48. data/spec/fixtures/MITS_3.0_Property.yml +583 -0
  49. data/spec/fixtures/MITS_3.0_Sample.xml +589 -0
  50. data/spec/fixtures/{property.yml → MITS_4.1_Property.yml} +0 -0
  51. data/spec/fixtures/{mits.xml → MITS_4.1_Sample.xml} +0 -0
  52. data/spec/lib/mits/document_spec.rb +3 -3
  53. data/spec/lib/mits/v3.0/address_spec.rb +21 -0
  54. data/spec/lib/mits/v3.0/amenity_spec.rb +13 -0
  55. data/spec/lib/mits/{entities → v3.0}/company_spec.rb +0 -0
  56. data/spec/lib/mits/v3.0/deposit_spec.rb +14 -0
  57. data/spec/lib/mits/v3.0/fees_spec.rb +18 -0
  58. data/spec/lib/mits/v3.0/file_spec.rb +20 -0
  59. data/spec/lib/mits/v3.0/floorplan_spec.rb +14 -0
  60. data/spec/lib/mits/v3.0/mapper_spec.rb +198 -0
  61. data/spec/lib/mits/v3.0/pet_policy_spec.rb +17 -0
  62. data/spec/lib/mits/v3.0/pet_spec.rb +15 -0
  63. data/spec/lib/mits/v3.0/property_spec.rb +23 -0
  64. data/spec/lib/mits/v4.1/address_spec.rb +22 -0
  65. data/spec/lib/mits/v4.1/amenity_spec.rb +11 -0
  66. data/spec/lib/mits/v4.1/company_spec.rb +0 -0
  67. data/spec/lib/mits/v4.1/deposit_spec.rb +14 -0
  68. data/spec/lib/mits/v4.1/fees_spec.rb +18 -0
  69. data/spec/lib/mits/v4.1/file_spec.rb +20 -0
  70. data/spec/lib/mits/v4.1/mapper_spec.rb +194 -0
  71. data/spec/lib/mits/v4.1/pet_policy_spec.rb +16 -0
  72. data/spec/lib/mits/v4.1/pet_spec.rb +15 -0
  73. data/spec/lib/mits/v4.1/property_spec.rb +23 -0
  74. data/spec/lib/mits/v4.1/unit_spec.rb +14 -0
  75. metadata +112 -53
  76. data/lib/mits/entities/address.rb +0 -16
  77. data/lib/mits/entities/amenity.rb +0 -8
  78. data/lib/mits/entities/company.rb +0 -11
  79. data/lib/mits/entities/deposit.rb +0 -11
  80. data/lib/mits/entities/fees.rb +0 -15
  81. data/lib/mits/entities/file.rb +0 -16
  82. data/lib/mits/entities/pet.rb +0 -11
  83. data/lib/mits/entities/pet_policy.rb +0 -15
  84. data/lib/mits/entities/property.rb +0 -20
  85. data/lib/mits/entities/unit.rb +0 -11
  86. data/lib/mits/mapper.rb +0 -48
  87. data/lib/mits/mappers/address_mapper.rb +0 -29
  88. data/lib/mits/mappers/amenities_mapper.rb +0 -14
  89. data/lib/mits/mappers/company_mapper.rb +0 -11
  90. data/lib/mits/mappers/deposit_mapper.rb +0 -24
  91. data/lib/mits/mappers/fees_mapper.rb +0 -15
  92. data/lib/mits/mappers/files_mapper.rb +0 -19
  93. data/lib/mits/mappers/pet_policy_mapper.rb +0 -28
  94. data/lib/mits/mappers/property_mapper.rb +0 -41
  95. data/lib/mits/mappers/units_mapper.rb +0 -22
  96. data/spec/lib/mits/entities/address_spec.rb +0 -16
  97. data/spec/lib/mits/entities/amenity_spec.rb +0 -8
  98. data/spec/lib/mits/entities/deposit_spec.rb +0 -11
  99. data/spec/lib/mits/entities/fees_spec.rb +0 -15
  100. data/spec/lib/mits/entities/file_spec.rb +0 -17
  101. data/spec/lib/mits/entities/pet_policy_spec.rb +0 -14
  102. data/spec/lib/mits/entities/pet_spec.rb +0 -12
  103. data/spec/lib/mits/entities/property_spec.rb +0 -20
  104. data/spec/lib/mits/entities/unit_spec.rb +0 -11
  105. data/spec/lib/mits/mapper_spec.rb +0 -180
@@ -1,11 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module MITS
4
- describe Deposit do
5
- it { is_expected.to respond_to(:type) }
6
- it { is_expected.to respond_to(:description) }
7
- it { is_expected.to respond_to(:percent_refundable) }
8
- it { is_expected.to respond_to(:portion_refundable) }
9
- it { is_expected.to respond_to(:amount) }
10
- end
11
- end
@@ -1,15 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module MITS
4
- describe Fees do
5
- it { is_expected.to respond_to(:admin_fee) }
6
- it { is_expected.to respond_to(:application_fee) }
7
- it { is_expected.to respond_to(:broker_fee) }
8
- it { is_expected.to respond_to(:late_fee_per_day) }
9
- it { is_expected.to respond_to(:late_min_fee) }
10
- it { is_expected.to respond_to(:late_percent) }
11
- it { is_expected.to respond_to(:late_type) }
12
- it { is_expected.to respond_to(:non_refundable_hold_fee) }
13
- it { is_expected.to respond_to(:prorate_type) }
14
- end
15
- end
@@ -1,17 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module MITS
4
- describe File do
5
- it { is_expected.to respond_to(:active) }
6
- it { is_expected.to respond_to(:caption) }
7
- it { is_expected.to respond_to(:description) }
8
- it { is_expected.to respond_to(:format) }
9
- it { is_expected.to respond_to(:height) }
10
- it { is_expected.to respond_to(:id) }
11
- it { is_expected.to respond_to(:name) }
12
- it { is_expected.to respond_to(:rank) }
13
- it { is_expected.to respond_to(:source) }
14
- it { is_expected.to respond_to(:width) }
15
- end
16
- end
17
-
@@ -1,14 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module MITS
4
- describe PetPolicy do
5
- it { is_expected.to respond_to(:allowed) }
6
- it { is_expected.to respond_to(:allowed?) }
7
- it { is_expected.to respond_to(:care) }
8
- it { is_expected.to respond_to(:deposit) }
9
- it { is_expected.to respond_to(:fee) }
10
- it { is_expected.to respond_to(:pets) }
11
- it { is_expected.to respond_to(:rent) }
12
- it { is_expected.to respond_to(:restrictions) }
13
- end
14
- end
@@ -1,12 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module MITS
4
- describe Pet do
5
- it { is_expected.to respond_to(:count) }
6
- it { is_expected.to respond_to(:description) }
7
- it { is_expected.to respond_to(:size) }
8
- it { is_expected.to respond_to(:type) }
9
- it { is_expected.to respond_to(:weight) }
10
- end
11
- end
12
-
@@ -1,20 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module MITS
4
- describe Property do
5
- it { is_expected.to respond_to(:address) }
6
- it { is_expected.to respond_to(:amenities) }
7
- it { is_expected.to respond_to(:company_id) }
8
- it { is_expected.to respond_to(:deposit) }
9
- it { is_expected.to respond_to(:description) }
10
- it { is_expected.to respond_to(:fees) }
11
- it { is_expected.to respond_to(:files) }
12
- it { is_expected.to respond_to(:id) }
13
- it { is_expected.to respond_to(:name) }
14
- it { is_expected.to respond_to(:pet_policy) }
15
- it { is_expected.to respond_to(:summary) }
16
- it { is_expected.to respond_to(:type) }
17
- it { is_expected.to respond_to(:units) }
18
- it { is_expected.to respond_to(:website) }
19
- end
20
- end
@@ -1,11 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module MITS
4
- describe Unit do
5
- it { is_expected.to respond_to(:bathrooms) }
6
- it { is_expected.to respond_to(:bedrooms) }
7
- it { is_expected.to respond_to(:name) }
8
- it { is_expected.to respond_to(:rent) }
9
- it { is_expected.to respond_to(:sqft) }
10
- end
11
- end
@@ -1,180 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module MITS
4
- describe Mapper do
5
- let(:fixture) { YAML.load_file('./spec/fixtures/property.yml') }
6
-
7
- describe '.address' do
8
- subject { Mapper.address(fixture[:PropertyID][:Address], fixture[:ILS_Identification]) }
9
-
10
- it { is_expected.to be_a Address }
11
-
12
- it 'include various amenities' do
13
- expect(subject.address1).to eq '123 Main St'
14
- expect(subject.latitude).to eq 44.0
15
- expect(subject.longitude).to eq 45.55
16
- end
17
- end
18
-
19
- describe '.amenities' do
20
- subject { Mapper.amenities(fixture[:ILS_Unit][:Amenity]) }
21
-
22
- it { is_expected.to be_a Array }
23
-
24
- it 'include various amenities' do
25
- first = subject.first
26
- expect(first).to be_a Amenity
27
- expect(first.description).to eq 'Refrigerator'
28
- expect(first.type).to eq 'Refrigerator'
29
- end
30
- end
31
-
32
- describe '.company' do
33
- let(:tag) do
34
- {
35
- Identification: {
36
- IDValue: 'id value',
37
- IDType: 'id type'
38
- },
39
- CompanyName: 'name',
40
- Address: fixture[:PropertyID][:Address],
41
- Website: 'http://...',
42
- Logo: 'http://...',
43
- }
44
- end
45
-
46
- subject { Mapper.company(tag) }
47
-
48
- it { is_expected.to be_a Company }
49
- end
50
-
51
- describe '.deposit' do
52
- subject { Mapper.deposit(fixture[:Deposit]) }
53
-
54
- it { is_expected.to be_a Deposit }
55
-
56
- it 'include deposit details' do
57
- expect(subject.amount).to eq 3000.00
58
- expect(subject.description).to be_nil
59
- expect(subject.type).to eq 'Security Deposit'
60
- end
61
-
62
- context 'when a range' do
63
- let(:ranged_deposit) do
64
- { Amount: { ValueRange: { Min: 100, Max: 1000 } } }
65
- end
66
-
67
- subject { Mapper.deposit(ranged_deposit) }
68
-
69
- it 'include deposit details' do
70
- expect(subject.amount).to eq 100..1000
71
- end
72
- end
73
- end
74
-
75
- describe '.fees' do
76
- subject { Mapper.fees(fixture[:Fee]) }
77
-
78
- it { is_expected.to be_a Fees }
79
-
80
- it 'include individual fee amounts' do
81
- expect(subject.admin_fee).to eq 0.0
82
- expect(subject.application_fee).to eq 50.0
83
- expect(subject.broker_fee).to eq 0.0
84
- expect(subject.late_fee_per_day).to eq 0.0
85
- expect(subject.late_min_fee).to eq 0.0
86
- expect(subject.late_percent).to eq 0.0
87
- expect(subject.late_type).to eq 'Standard'
88
- expect(subject.non_refundable_hold_fee).to eq 0.0
89
- expect(subject.prorate_type).to eq 'Standard'
90
- end
91
- end
92
-
93
- describe '.files' do
94
- subject { Mapper.files(fixture[:File]) }
95
-
96
- it { is_expected.to be_a Array }
97
-
98
- it 'includes each file' do
99
- first = subject.first
100
- expect(first).to be_a File
101
- expect(first.source).to eq 'http://douglaslebsack.name/triston_botsford'
102
- end
103
- end
104
-
105
- describe '.pets' do
106
- subject { Mapper.pets(fixture[:Policy][:Pet][:Pets]) }
107
-
108
- it { is_expected.to be_a Array }
109
-
110
- it 'includes each allowed pet' do
111
- first = subject.first
112
- expect(first).to be_a Pet
113
- expect(first.count).to eq 1
114
- expect(first.size).to eq 'Large'
115
- expect(first.type).to eq 'Dog'
116
- expect(first.weight).to eq '60lbs'
117
- end
118
- end
119
-
120
- describe '.pet_policy' do
121
- subject { Mapper.pet_policy(fixture[:Policy][:Pet]) }
122
-
123
- it { is_expected.to be_a PetPolicy }
124
-
125
- it 'includes details' do
126
- expect(subject.allowed).to be_truthy
127
- expect(subject.care).to be_truthy
128
- expect(subject.fee).to eq 25.00
129
- expect(subject.pets).to be_a Array
130
- expect(subject.rent).to eq 100.00
131
- end
132
-
133
- context 'when no pets allowed' do
134
- before { fixture[:Policy][:Pet][:Allowed] = 'false' }
135
-
136
- it 'will reflect that' do
137
- expect(subject.allowed).to be_falsey
138
- end
139
- end
140
- end
141
-
142
- describe '.property' do
143
- subject { Mapper.property(fixture) }
144
-
145
- it { is_expected.to be_a Property }
146
-
147
- it 'includes details' do
148
- expect(subject.address).to be_a Address
149
- expect(subject.amenities.size).to eq 14
150
- expect(subject.company_id).to eq 'guid: 1'
151
- expect(subject.deposit).to be_a Deposit
152
- expect(subject.description).to eq 'hello. this is a description'
153
- expect(subject.fees).to be_a Fees
154
- expect(subject.files).to be_a Array
155
- expect(subject.id).to eq 'SomethingRandom1'
156
- expect(subject.name).to eq 'Cool New Apartment!!!!'
157
- expect(subject.pet_policy).to be_a PetPolicy
158
- expect(subject.summary).to eq 'Cool New Apartment!!!!'
159
- expect(subject.units).to be_a Array
160
- expect(subject.website).to eq 'http://harris.net/juwan'
161
- end
162
- end
163
-
164
- describe '.units' do
165
- subject { Mapper.units(fixture[:ILS_Unit][:Units][:Unit]) }
166
-
167
- it { is_expected.to be_a Array }
168
-
169
- it 'includes individual units' do
170
- first = subject.first
171
- expect(first).to be_a Unit
172
- expect(first.bathrooms).to eq 4.0
173
- expect(first.bedrooms).to eq 4.0
174
- expect(first.name).to eq 'Cool New Apartment!!!!'
175
- expect(first.rent).to eq 3400.0
176
- expect(first.sqft).to eq 3400..3400
177
- end
178
- end
179
- end
180
- end