rentlinx 0.9.6 → 0.10.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 +4 -4
- data/lib/rentlinx.rb +2 -2
- data/lib/rentlinx/models/base.rb +12 -10
- data/lib/rentlinx/models/company.rb +2 -2
- data/lib/rentlinx/models/lead.rb +2 -2
- data/lib/rentlinx/models/property.rb +2 -2
- data/lib/rentlinx/models/property_amenity.rb +2 -2
- data/lib/rentlinx/models/property_link.rb +2 -2
- data/lib/rentlinx/models/property_photo.rb +2 -2
- data/lib/rentlinx/models/unit.rb +2 -2
- data/lib/rentlinx/modules/amenityable.rb +3 -3
- data/lib/rentlinx/modules/linkable.rb +3 -3
- data/lib/rentlinx/modules/photoable.rb +3 -3
- data/lib/rentlinx/validators/attribute_processor_service.rb +1 -1
- data/lib/rentlinx/validators/phone_validator.rb +4 -10
- data/lib/rentlinx/validators/state_validator.rb +1 -1
- data/lib/rentlinx/version.rb +1 -1
- metadata +3 -4
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 5d84ca87dc674c10fafbf7c3768f741604c35071
         | 
| 4 | 
            +
              data.tar.gz: f4a5aa6c95773c2aceea5430b7ed9613d33a9684
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 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 | 
| 35 | 
            -
                   | 
| 34 | 
            +
                def configure
         | 
| 35 | 
            +
                  yield(self)
         | 
| 36 36 | 
             
                end
         | 
| 37 37 |  | 
| 38 38 | 
             
                # Sets and retrieves the username used to log in to Rentlinx
         | 
    
        data/lib/rentlinx/models/base.rb
    CHANGED
    
    | @@ -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(', ')}"  | 
| 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 | 
            -
                 | 
| 121 | 
            -
                   | 
| 122 | 
            -
             | 
| 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 | 
            -
             | 
| 125 | 
            -
             | 
| 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 |  | 
    
        data/lib/rentlinx/models/lead.rb
    CHANGED
    
    | @@ -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 |  | 
    
        data/lib/rentlinx/models/unit.rb
    CHANGED
    
    | @@ -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. | 
| 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 | 
| 62 | 
            -
                  options | 
| 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. | 
| 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 | 
| 49 | 
            -
                  options | 
| 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. | 
| 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 | 
| 36 | 
            -
                  options | 
| 35 | 
            +
                  options[:propertyID] = propertyID
         | 
| 36 | 
            +
                  options[:unitID] = unitID if defined? unitID
         | 
| 37 37 | 
             
                  @photos ||= []
         | 
| 38 38 | 
             
                  @photos << photo_class.new(options)
         | 
| 39 39 | 
             
                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( | 
| 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  | 
| 21 | 
            -
                   | 
| 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 |  | 
    
        data/lib/rentlinx/version.rb
    CHANGED
    
    
    
        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. | 
| 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- | 
| 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. | 
| 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: 
         |