rentlinx 0.9.6 → 0.10.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: 4262fdfbae34cb0b07cae309ea4951ec252c1079
4
- data.tar.gz: 6edeb0ae2679e64cdd2da2d52b02ae3c99e7d497
3
+ metadata.gz: 5d84ca87dc674c10fafbf7c3768f741604c35071
4
+ data.tar.gz: f4a5aa6c95773c2aceea5430b7ed9613d33a9684
5
5
  SHA512:
6
- metadata.gz: 53353972541e04bc5041328882e663cd74ec3e6c54243d6ba2e2dcb9c700cbf8cea7a5092d341603cce60f4b7b90e0ac4eeacab1763526044473d346a7674deb
7
- data.tar.gz: 6cdf39903e498e3c0afa2fdf7c2b91874a8e333623a223b23e864827ca082d11b2eeeb8acd65f898eb5fa102ff57f5a9ca645b543fdcba97e5041c4497b31d6c
6
+ metadata.gz: 8c8f68214467b6510fe357f5b8807da5b1f4d66b83c9386ef4e2a5e13dbe9c2fddef2a5b9e007e2bd1d3654dcc3cb584abcffc73dc9366671fd7f250c2f08684
7
+ data.tar.gz: a559470f580ab80c11238dec51c805719acb0825e7fb3539ac6681c884188661fe7a739d43963a15e3eb1a77abdbd1b878e4c7eee14a09725a9770822c3d7087
data/lib/rentlinx.rb CHANGED
@@ -31,8 +31,8 @@ module Rentlinx
31
31
  # rentlinx.site_url 'https://rentlinx.com/api/v2'
32
32
  # rentlinx.log_level :error
33
33
  # end
34
- def configure(&block)
35
- block.call(self)
34
+ def configure
35
+ yield(self)
36
36
  end
37
37
 
38
38
  # Sets and retrieves the username used to log in to Rentlinx
@@ -23,7 +23,7 @@ module Rentlinx
23
23
  send("#{at}=", attrs[at])
24
24
  end
25
25
  remaining_attrs = attrs.keys - attributes
26
- raise UnexpectedAttributes, "Unexpected Attributes: #{remaining_attrs.join(', ')}" if remaining_attrs.compact.size > 0
26
+ raise UnexpectedAttributes, "Unexpected Attributes: #{remaining_attrs.join(', ')}" unless remaining_attrs.compact.empty?
27
27
  end
28
28
 
29
29
  # Provides a list of attributes supported by the class.
@@ -117,22 +117,24 @@ module Rentlinx
117
117
 
118
118
  private
119
119
 
120
- def self.unpost(id)
121
- Rentlinx.client.unpost(type, id)
122
- end
120
+ class << self
121
+ def unpost(id)
122
+ Rentlinx.client.unpost(type, id)
123
+ end
124
+
125
+ def get_from_id(type, id)
126
+ Rentlinx.client.get(type.to_sym, id)
127
+ end
123
128
 
124
- def self.get_from_id(type, id)
125
- Rentlinx.client.get(type.to_sym, id)
129
+ def type
130
+ name.split('::').last.downcase.to_sym
131
+ end
126
132
  end
127
133
 
128
134
  def type
129
135
  self.class.type
130
136
  end
131
137
 
132
- def self.type
133
- name.split('::').last.downcase.to_sym
134
- end
135
-
136
138
  def identity
137
139
  type.to_s + 'ID'
138
140
  end
@@ -1,9 +1,9 @@
1
1
  module Rentlinx
2
2
  # An object that represents a Rentlinx company.
3
3
  class Company < Base
4
- ATTRIBUTES = [:companyID, :companyCapAmount]
4
+ ATTRIBUTES = [:companyID, :companyCapAmount].freeze
5
5
 
6
- REQUIRED_ATTRIBUTES = [:companyID]
6
+ REQUIRED_ATTRIBUTES = [:companyID].freeze
7
7
 
8
8
  attr_accessor(*ATTRIBUTES)
9
9
 
@@ -1,8 +1,8 @@
1
1
  module Rentlinx
2
2
  # An object that represets Rentlinx Leads
3
3
  class Lead < Base
4
- ATTRIBUTES = [:leadID, :refunded, :refund_reason]
5
- REQUIRED_ATTRIBUTES = [:leadID, :refunded, :refund_reason]
4
+ ATTRIBUTES = [:leadID, :refunded, :refund_reason].freeze
5
+ REQUIRED_ATTRIBUTES = [:leadID, :refunded, :refund_reason].freeze
6
6
 
7
7
  attr_accessor(*ATTRIBUTES)
8
8
  end
@@ -10,10 +10,10 @@ module Rentlinx
10
10
  :website, :yearBuilt, :numUnits, :phoneNumber, :extension,
11
11
  :faxNumber, :emailAddress, :acceptsHcv, :propertyType,
12
12
  :activeURL, :companyName, :leadsURL,
13
- :premium, :capAmount]
13
+ :premium, :capAmount].freeze
14
14
 
15
15
  REQUIRED_ATTRIBUTES = [:propertyID, :address, :city, :state, :zip,
16
- :phoneNumber, :emailAddress]
16
+ :phoneNumber, :emailAddress].freeze
17
17
 
18
18
  attr_accessor(*ATTRIBUTES)
19
19
 
@@ -1,9 +1,9 @@
1
1
  module Rentlinx
2
2
  # An amenity on a propery
3
3
  class PropertyAmenity < Base
4
- ATTRIBUTES = [:details, :name, :propertyID]
4
+ ATTRIBUTES = [:details, :name, :propertyID].freeze
5
5
 
6
- REQUIRED_ATTRIBUTES = [:name, :propertyID]
6
+ REQUIRED_ATTRIBUTES = [:name, :propertyID].freeze
7
7
 
8
8
  attr_accessor(*ATTRIBUTES)
9
9
 
@@ -1,9 +1,9 @@
1
1
  module Rentlinx
2
2
  # A link on a property
3
3
  class PropertyLink < Base
4
- ATTRIBUTES = [:propertyID, :title, :url]
4
+ ATTRIBUTES = [:propertyID, :title, :url].freeze
5
5
 
6
- REQUIRED_ATTRIBUTES = [:propertyID, :title, :url]
6
+ REQUIRED_ATTRIBUTES = [:propertyID, :title, :url].freeze
7
7
 
8
8
  attr_accessor(*ATTRIBUTES)
9
9
 
@@ -1,9 +1,9 @@
1
1
  module Rentlinx
2
2
  # A photo on a property
3
3
  class PropertyPhoto < Base
4
- ATTRIBUTES = [:url, :caption, :position, :propertyID, :unitID]
4
+ ATTRIBUTES = [:url, :caption, :position, :propertyID, :unitID].freeze
5
5
 
6
- REQUIRED_ATTRIBUTES = [:url, :propertyID]
6
+ REQUIRED_ATTRIBUTES = [:url, :propertyID].freeze
7
7
 
8
8
  attr_accessor(*ATTRIBUTES)
9
9
 
@@ -10,9 +10,9 @@ module Rentlinx
10
10
  :bedrooms, :fullBaths, :halfBaths, :isMobilityAccessible,
11
11
  :isVisionAccessible, :isHearingAccessible, :rentIsBasedOnIncome,
12
12
  :isOpenToLease, :dateAvailable, :dateLeasedThrough, :numUnits,
13
- :numAvailable]
13
+ :numAvailable].freeze
14
14
 
15
- REQUIRED_ATTRIBUTES = [:unitID]
15
+ REQUIRED_ATTRIBUTES = [:unitID].freeze
16
16
 
17
17
  attr_accessor(*ATTRIBUTES)
18
18
 
@@ -17,7 +17,7 @@ module Rentlinx
17
17
  def post_amenities
18
18
  return if @amenities.nil?
19
19
 
20
- if @amenities.length == 0
20
+ if @amenities.empty?
21
21
  Rentlinx.client.unpost_amenities_for(self)
22
22
  else
23
23
  Rentlinx.client.post_amenities(@amenities)
@@ -58,8 +58,8 @@ module Rentlinx
58
58
  # {Rentlinx::PropertyAmenity}
59
59
  # @return the updated list of amenities on the object
60
60
  def add_amenity(options)
61
- options.merge!(propertyID: propertyID)
62
- options.merge!(unitID: unitID) if defined? unitID
61
+ options[:propertyID] = propertyID
62
+ options[:unitID] = unitID if defined? unitID
63
63
  @amenities ||= []
64
64
  @amenities << amenity_class.new(options)
65
65
  end
@@ -17,7 +17,7 @@ module Rentlinx
17
17
  def post_links
18
18
  return if @links.nil?
19
19
 
20
- if @links.length == 0
20
+ if @links.empty?
21
21
  Rentlinx.client.unpost_links_for(self)
22
22
  else
23
23
  Rentlinx.client.post_links(@links)
@@ -45,8 +45,8 @@ module Rentlinx
45
45
  end
46
46
 
47
47
  def add_link(options)
48
- options.merge!(propertyID: propertyID)
49
- options.merge!(unitID: unitID) if defined? unitID
48
+ options[:propertyID] = propertyID
49
+ options[:unitID] = unitID if defined? unitID
50
50
  @links ||= []
51
51
  @links << link_class.new(options)
52
52
  end
@@ -12,7 +12,7 @@ module Rentlinx
12
12
  def post_photos
13
13
  return if @photos.nil?
14
14
 
15
- if @photos.length == 0
15
+ if @photos.empty?
16
16
  Rentlinx.client.unpost_photos_for(self)
17
17
  else
18
18
  Rentlinx.client.post_photos(@photos)
@@ -32,8 +32,8 @@ module Rentlinx
32
32
  end
33
33
 
34
34
  def add_photo(options)
35
- options.merge!(propertyID: propertyID)
36
- options.merge!(unitID: unitID) if defined? unitID
35
+ options[:propertyID] = propertyID
36
+ options[:unitID] = unitID if defined? unitID
37
37
  @photos ||= []
38
38
  @photos << photo_class.new(options)
39
39
  end
@@ -56,7 +56,7 @@ module Rentlinx
56
56
  #
57
57
  # @return [Boolean] true if valid, false if not
58
58
  def valid?
59
- @errors.size == 0
59
+ @errors.empty?
60
60
  end
61
61
  end
62
62
  end
@@ -5,24 +5,18 @@ module Rentlinx
5
5
  def processed_value
6
6
  return '' if value_blank?
7
7
  return @value unless valid?
8
- @value.gsub(/\D/, '')
8
+ @value.gsub(/[\+\(\)\s\-]/, '')
9
9
  end
10
10
 
11
11
  private
12
12
 
13
13
  def validate
14
- return if value_blank? ||
15
- valid_us_number_without_country_code?(processed_value) ||
16
- valid_us_number_with_country_code?(processed_value)
14
+ return if value_blank? || valid_us_phone_number?(processed_value)
17
15
  @error = "#{@value} is not a valid phone number"
18
16
  end
19
17
 
20
- def valid_us_number_with_country_code?(number)
21
- number.start_with?('1') && valid_us_number_without_country_code?(number[1..-1])
22
- end
23
-
24
- def valid_us_number_without_country_code?(number)
25
- !number.start_with?('1') && !number.start_with?('0') && number.size == 10
18
+ def valid_us_phone_number?(number)
19
+ /^1?[2-9][0-9]{2}[2-9][0-9]{6}$/.match(number)
26
20
  end
27
21
  end
28
22
  end
@@ -5,7 +5,7 @@ module Rentlinx
5
5
  class StateValidator < BaseValidator
6
6
  STATES = %w(AK AL AR AS AZ CA CO CT DC DE FL GA GU HI IA ID IL IN KS KY LA
7
7
  MA MD ME MI MN MO MP MS MT NC ND NE NH NJ NM NV NY OH OK OR PA
8
- PR RI SC SD TN TX UT VA VI VT WA WI WV WY)
8
+ PR RI SC SD TN TX UT VA VI VT WA WI WV WY).freeze
9
9
 
10
10
  private
11
11
 
@@ -1,5 +1,5 @@
1
1
  # This is the main rentlinx module. All Rentlinx objects
2
2
  # and methods are namespaced under this module.
3
3
  module Rentlinx
4
- VERSION = '0.9.6'
4
+ VERSION = '0.10.0'.freeze
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rentlinx
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.6
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - AppFolio, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-11 00:00:00.000000000 Z
11
+ date: 2016-05-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpclient
@@ -115,9 +115,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
115
115
  version: '0'
116
116
  requirements: []
117
117
  rubyforge_project:
118
- rubygems_version: 2.4.3
118
+ rubygems_version: 2.5.1
119
119
  signing_key:
120
120
  specification_version: 4
121
121
  summary: API Wrapper for the Rentlinx API
122
122
  test_files: []
123
- has_rdoc: