mits 0.4.2 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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