mits 0.4.2 → 0.5.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 36eb66918dca7b9b83758d8d5241098cfea66434
4
- data.tar.gz: 290eb4d8a52c8c57662a9c96481cf1d557368c09
3
+ metadata.gz: 0f6e0521b4d82d57f354b0797cc9df6b9223d7be
4
+ data.tar.gz: ccfd8ab8beff1ed536bbd3392555e331b3ae3e57
5
5
  SHA512:
6
- metadata.gz: 97ec1f49534f9e71869a2fb195f6af3d1759fd69ac19ab4906bcc1dbe7dc34ed4ac858d7223cc7f40b69c6bffefc0548ad2875bd0bda870e999ebc981205325b
7
- data.tar.gz: 5c34f69334d3afa5e64e799ef5e03d01804910696a3cf7e8a3dfc54dc5b9bc3c1de32bbed69a02c667d566a64a40d701ed0fae89922a33ecc0eecb39c8d1d707
6
+ metadata.gz: 655d643a9450de67ca8fe97434da4188fd0af867c9651e870f17e757ccba81de84900de39eaa7936469a48ed0e2b40bb34611e7808ce2d127b189924655969da
7
+ data.tar.gz: 0d68d2aa4197998046d41f7902ac115dede3b4317df4b9a907edf39253465938d466ec86f60efc1c4f797cff06f9d353f96b096ba72f9c95c8bde237531bc474
@@ -6,6 +6,12 @@ module MITS
6
6
  value == 'true'
7
7
  end
8
8
 
9
+ def range_tag(tag)
10
+ min = tag[:Min]
11
+ max = tag[:Max]
12
+ Range.new(min.to_i, max.to_i)
13
+ end
14
+
9
15
  def try(*values, method)
10
16
  value, *args = values
11
17
  return nil unless value
@@ -40,12 +40,6 @@ module MITS
40
40
  extend PolicyMapper
41
41
  extend PropertyMapper
42
42
 
43
- def range_tag(tag)
44
- min = tag[:Min]
45
- max = tag[:Max]
46
- Range.new(min.to_i, max.to_i)
47
- end
48
-
49
43
  extend self
50
44
  end
51
45
  end
@@ -2,13 +2,13 @@ module MITS
2
2
  module V3_0
3
3
  module Mapper
4
4
  module FloorplanMapper
5
- def floorplans(tags)
5
+ def floorplans(tags, fp = Floorplan)
6
6
  tags = [tags] unless tags.is_a? Array
7
- tags.map { |tag| floorplan(tag) }
7
+ tags.map { |tag| floorplan(tag, fp) }
8
8
  end
9
9
 
10
- def floorplan(tag)
11
- Floorplan.new(bathrooms: try(rooms(tag[:Room], 'Bathroom'), :to_f),
10
+ def floorplan(tag, floorplan = Floorplan)
11
+ floorplan.new(bathrooms: try(rooms(tag[:Room], 'Bathroom'), :to_f),
12
12
  bedrooms: try(rooms(tag[:Room], 'Bedroom'), :to_i),
13
13
  name: tag[:Name],
14
14
  rent: range_tag(tag[:MarketRent]),
@@ -17,9 +17,9 @@ module MITS
17
17
 
18
18
  private
19
19
 
20
- def rooms(tag, type)
20
+ def rooms(tags, type)
21
21
  tags = [tags] unless tags.is_a? Array
22
- room = tag.find { |t| t[:RoomType] == type }
22
+ room = tags.find { |t| t[:RoomType] == type }
23
23
  room[:Count] if room
24
24
  end
25
25
  end
@@ -0,0 +1,8 @@
1
+ require 'mits/v3.0/floorplan'
2
+
3
+ module MITS
4
+ module V4_1
5
+ class Floorplan < V3_0::Floorplan
6
+ end
7
+ end
8
+ end
@@ -4,6 +4,7 @@ require_relative 'company'
4
4
  require_relative 'deposit'
5
5
  require_relative 'fees'
6
6
  require_relative 'file'
7
+ require_relative 'floorplan'
7
8
  require_relative 'pet'
8
9
  require_relative 'pet_policy'
9
10
  require_relative 'policy'
@@ -19,6 +20,7 @@ require_relative '../v3.0/mapper/company_mapper'
19
20
  require_relative '../v3.0/mapper/deposit_mapper'
20
21
  require_relative '../v3.0/mapper/fees_mapper'
21
22
  require_relative '../v3.0/mapper/files_mapper'
23
+ require_relative '../v3.0/mapper/floorplan_mapper'
22
24
  require_relative '../v3.0/mapper/pet_policy_mapper'
23
25
  require_relative '../v3.0/mapper/phones_mapper'
24
26
  require_relative '../v3.0/mapper/policy_mapper'
@@ -34,6 +36,7 @@ module MITS
34
36
  extend V3_0::Mapper::DepositMapper
35
37
  extend V3_0::Mapper::FeesMapper
36
38
  extend V3_0::Mapper::FilesMapper
39
+ extend V3_0::Mapper::FloorplanMapper
37
40
  extend V3_0::Mapper::PetPolicyMapper
38
41
  extend V3_0::Mapper::PhonesMapper
39
42
  extend V3_0::Mapper::PolicyMapper
@@ -41,6 +44,8 @@ module MITS
41
44
  extend AddressMapper
42
45
  extend PropertyMapper
43
46
  extend UnitsMapper
47
+
48
+ extend self
44
49
  end
45
50
  end
46
51
  end
@@ -31,6 +31,7 @@ module MITS
31
31
  details[:amenities] = try(tag[:ILS_Unit][:Amenity], Amenity, :amenities)
32
32
  details[:deposit] = try(tag[:Deposit], Deposit, :deposit)
33
33
  details[:fees] = try(tag[:Fee], Fees, :fees)
34
+ details[:floorplans] = try(tag[:Floorplan], Floorplan, :floorplans)
34
35
  details[:files] = try(tag[:File], File, :files)
35
36
  details[:policy] = try(tag[:Policy], Policy, PetPolicy, Pet, :policy)
36
37
  details[:units] = try(tag[:ILS_Unit][:Units][:Unit], :units)
@@ -1,3 +1,3 @@
1
1
  module MITS
2
- VERSION = '0.4.2'
2
+ VERSION = '0.5.0'
3
3
  end
@@ -64,11 +64,11 @@
64
64
  :Count: 1
65
65
  :Size: Large
66
66
  :Weight: 60lbs
67
- - :PetType: Reptile
67
+ - :PetType: Reptile
68
68
  :Description: ''
69
69
  :Count: 1
70
- :Size: Small
71
- :Weight: Under 10lbs
70
+ :Size: Small
71
+ :Weight: Under 10lbs
72
72
  :Comment: 'No cats allowed'
73
73
  :Deposit: '50.00'
74
74
  :Fee: '25.00'
@@ -89,21 +89,18 @@
89
89
  :SquareFeet: '3400'
90
90
  :IDValue: SomethingRandom1
91
91
  :Floorplan:
92
- :Name: {}
92
+ :Name: 'Floorplan A'
93
93
  :UnitCount: '1'
94
94
  :Room:
95
- - :Count: '4'
96
- :Comment: {}
97
- :RoomType: Bedroom
98
95
  - :Count: '4'
99
96
  :Comment: {}
100
97
  :RoomType: Bathroom
101
98
  :SquareFeet:
102
- :Max: '3400'
103
- :Min: '3400'
99
+ :Max: '700'
100
+ :Min: '600'
104
101
  :MarketRent:
105
- :Max: '3400'
106
- :Min: '3400'
102
+ :Max: '1000'
103
+ :Min: '800'
107
104
  :EffectiveRent:
108
105
  :Max: '3400'
109
106
  :Min: '3400'
@@ -203,6 +203,23 @@ module MITS
203
203
  expect(first.sqft).to eq 3400..3400
204
204
  end
205
205
  end
206
+
207
+ describe '.floorplans' do
208
+ subject { Mapper.floorplans(fixture[:Floorplan], Floorplan) }
209
+
210
+ it { is_expected.to be_a Array }
211
+
212
+ it 'includes individual floorplans' do
213
+ first = subject.first
214
+ expect(first).to be_a Floorplan
215
+ expect(first.bathrooms).to eq 4.0
216
+ expect(first.bedrooms).to be_nil
217
+ expect(first.name).to eq 'Floorplan A'
218
+ expect(first.rent).to eq 800..1000
219
+ expect(first.sqft).to eq 600..700
220
+ end
221
+ end
222
+
206
223
  end
207
224
  end
208
225
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mits
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Callan
@@ -198,6 +198,7 @@ files:
198
198
  - lib/mits/v4.1/deposit.rb
199
199
  - lib/mits/v4.1/fees.rb
200
200
  - lib/mits/v4.1/file.rb
201
+ - lib/mits/v4.1/floorplan.rb
201
202
  - lib/mits/v4.1/mapper.rb
202
203
  - lib/mits/v4.1/mapper/address_mapper.rb
203
204
  - lib/mits/v4.1/mapper/company_mapper.rb