stbaldricks 6.13.0 → 6.13.1.alpha.1
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/stbaldricks/configuration.rb +2 -1
- data/lib/stbaldricks/endpoints/event.rb +4 -2
- data/lib/stbaldricks/endpoints/facebook/user.rb +3 -3
- data/lib/stbaldricks/endpoints/kid_honor.rb +1 -3
- data/lib/stbaldricks/endpoints/kid_institution.rb +1 -3
- data/lib/stbaldricks/endpoints/lib/entity.rb +9 -6
- data/lib/stbaldricks/endpoints/participant.rb +2 -1
- data/lib/stbaldricks/endpoints/photo.rb +5 -5
- data/lib/stbaldricks/endpoints/search.rb +2 -1
- data/lib/stbaldricks/endpoints/user.rb +5 -6
- data/lib/stbaldricks/entities/concerns/entity_response_concern.rb +3 -2
- data/lib/stbaldricks/entities/concerns/event_year_concern.rb +1 -0
- data/lib/stbaldricks/entities/concerns/venue_concern.rb +1 -1
- data/lib/stbaldricks/entities/config.rb +5 -5
- data/lib/stbaldricks/entities/donation.rb +7 -11
- data/lib/stbaldricks/entities/fund.rb +6 -3
- data/lib/stbaldricks/entities/fundraiser.rb +1 -0
- data/lib/stbaldricks/entities/lib/base.rb +33 -32
- data/lib/stbaldricks/entities/lib/cacheable.rb +2 -0
- data/lib/stbaldricks/entities/lib/collection.rb +4 -0
- data/lib/stbaldricks/entities/lib/not_implemented_object.rb +3 -0
- data/lib/stbaldricks/entities/lib/permissions.rb +2 -0
- data/lib/stbaldricks/entities/lib/phone.rb +2 -0
- data/lib/stbaldricks/entities/lib/top_level.rb +1 -0
- data/lib/stbaldricks/entities/person.rb +3 -1
- data/lib/stbaldricks/entities/photo.rb +47 -47
- data/lib/stbaldricks/entities/team.rb +1 -1
- data/lib/stbaldricks/enums/cancer_types.rb +0 -0
- data/lib/stbaldricks/enums/model_type.rb +0 -0
- data/lib/stbaldricks/enums/province.rb +0 -0
- data/lib/stbaldricks/log.rb +2 -0
- data/lib/stbaldricks/patches/string.rb +3 -2
- data/lib/stbaldricks/version.rb +1 -1
- metadata +10 -10
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: f160e1af1de76369152c9dbf97bcbdacfd37ccf464ba6f5d3cd9aa59bf5c5551
         | 
| 4 | 
            +
              data.tar.gz: 42e01f776af7d02f1399d55b5d24c351b1cc895b0ac027bb45a684160a16ad5a
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: f27bf1e1e37bcb2c8578797d30009c9a2209f9c2b564f3566d2c9bbd70036c538e681d018346276ccbc1ef30518de977b92d33fac47a3693b1b3dbcbd5619a36
         | 
| 7 | 
            +
              data.tar.gz: 0b2d540ae40eccf875d621e6a4b149cafdbe719ccec44f0318108e534d412ccbc515b23ff922c98d17abc046057aabff0fb999e28a91215880c85e03ad92c1ed
         | 
| @@ -28,8 +28,9 @@ module SBF | |
| 28 28 | 
             
                  end
         | 
| 29 29 |  | 
| 30 30 | 
             
                  def self.logger=(new_logger)
         | 
| 31 | 
            -
                    missing_methods = SBF::Client::LOG::REQUIRED_METHODS. | 
| 31 | 
            +
                    missing_methods = SBF::Client::LOG::REQUIRED_METHODS.reject { |method| new_logger.respond_to?(method) }
         | 
| 32 32 | 
             
                    raise SBF::Client::Configuration::Error.new('logger', "must respond to: #{missing_methods.join(', ')}") unless missing_methods.empty?
         | 
| 33 | 
            +
             | 
| 33 34 | 
             
                    @_logger = new_logger
         | 
| 34 35 | 
             
                  end
         | 
| 35 36 |  | 
| @@ -10,10 +10,12 @@ module SBF | |
| 10 10 | 
             
                  def save(entity_or_hash, with = {})
         | 
| 11 11 | 
             
                    if entity_or_hash.is_a?(SBF::Client::BaseEntity)
         | 
| 12 12 | 
             
                      return create(entity_or_hash, with) if entity_or_hash.id.nil?
         | 
| 13 | 
            -
             | 
| 13 | 
            +
             | 
| 14 | 
            +
                      update(entity_or_hash.id, entity_or_hash.year, entity_or_hash.dirty_data, with)
         | 
| 14 15 | 
             
                    else
         | 
| 15 16 | 
             
                      return create(entity_or_hash, with) if entity_or_hash[:id].nil?
         | 
| 16 | 
            -
             | 
| 17 | 
            +
             | 
| 18 | 
            +
                      update(entity_or_hash[:id], entity_or_hash[:year], entity_or_hash, with)
         | 
| 17 19 | 
             
                    end
         | 
| 18 20 | 
             
                  end
         | 
| 19 21 |  | 
| @@ -14,9 +14,9 @@ module SBF | |
| 14 14 | 
             
                    # @return [string]
         | 
| 15 15 | 
             
                    def login!(authorization_code, redirect_uri)
         | 
| 16 16 | 
             
                      response = SBF::Client::Api::Request.post_request(
         | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 17 | 
            +
                        "/#{SBF::Client::Api::VERSION}/security/facebook/login",
         | 
| 18 | 
            +
                        authorization_code: authorization_code,
         | 
| 19 | 
            +
                        redirect_uri: redirect_uri
         | 
| 20 20 | 
             
                      )
         | 
| 21 21 | 
             
                      parsed_response = JSON.parse(response.body).symbolize!
         | 
| 22 22 |  | 
| @@ -6,9 +6,7 @@ module SBF | |
| 6 6 | 
             
                  def delete(params)
         | 
| 7 7 | 
             
                    response = SBF::Client::Api::Request.post_request("#{base_uri}/delete", params)
         | 
| 8 8 |  | 
| 9 | 
            -
                    unless ok?(response)
         | 
| 10 | 
            -
                      error = SBF::Client::ErrorEntity.new(JSON.parse(response.body).symbolize!)
         | 
| 11 | 
            -
                    end
         | 
| 9 | 
            +
                    error = SBF::Client::ErrorEntity.new(JSON.parse(response.body).symbolize!) unless ok?(response)
         | 
| 12 10 |  | 
| 13 11 | 
             
                    SBF::Client::Api::Response.new(http_code: response.code, data: nil, error: error)
         | 
| 14 12 | 
             
                  end
         | 
| @@ -6,9 +6,7 @@ module SBF | |
| 6 6 | 
             
                  def delete(params)
         | 
| 7 7 | 
             
                    response = SBF::Client::Api::Request.post_request("#{base_uri}/delete", params)
         | 
| 8 8 |  | 
| 9 | 
            -
                    unless ok?(response)
         | 
| 10 | 
            -
                      error = SBF::Client::ErrorEntity.new(JSON.parse(response.body).symbolize!)
         | 
| 11 | 
            -
                    end
         | 
| 9 | 
            +
                    error = SBF::Client::ErrorEntity.new(JSON.parse(response.body).symbolize!) unless ok?(response)
         | 
| 12 10 |  | 
| 13 11 | 
             
                    SBF::Client::Api::Response.new(http_code: response.code, data: nil, error: error)
         | 
| 14 12 | 
             
                  end
         | 
| @@ -21,10 +21,12 @@ module SBF | |
| 21 21 | 
             
                  def save(entity_or_hash, with = {})
         | 
| 22 22 | 
             
                    if entity_or_hash.is_a?(SBF::Client::BaseEntity)
         | 
| 23 23 | 
             
                      return create(entity_or_hash, with) if entity_or_hash.id.nil?
         | 
| 24 | 
            -
             | 
| 24 | 
            +
             | 
| 25 | 
            +
                      update(entity_or_hash.id, entity_or_hash, with)
         | 
| 25 26 | 
             
                    else
         | 
| 26 27 | 
             
                      return create(entity_or_hash, with) if entity_or_hash[:id].nil?
         | 
| 27 | 
            -
             | 
| 28 | 
            +
             | 
| 29 | 
            +
                      update(entity_or_hash[:id], entity_or_hash, with)
         | 
| 28 30 | 
             
                    end
         | 
| 29 31 | 
             
                  end
         | 
| 30 32 |  | 
| @@ -77,7 +79,7 @@ module SBF | |
| 77 79 |  | 
| 78 80 | 
             
                    if ok?(response)
         | 
| 79 81 | 
             
                      hydrated_entity(response, {}, nil)
         | 
| 80 | 
            -
                    elsif  | 
| 82 | 
            +
                    elsif response.code == 404
         | 
| 81 83 | 
             
                      nil
         | 
| 82 84 | 
             
                    else
         | 
| 83 85 | 
             
                      parsed_response_body = JSON.parse(response.body).symbolize!
         | 
| @@ -139,9 +141,7 @@ module SBF | |
| 139 141 | 
             
                  def delete(id)
         | 
| 140 142 | 
             
                    response = SBF::Client::Api::Request.post_request("#{base_uri}/delete/#{id}")
         | 
| 141 143 |  | 
| 142 | 
            -
                    unless ok?(response)
         | 
| 143 | 
            -
                      error = SBF::Client::ErrorEntity.new(JSON.parse(response.body).symbolize!)
         | 
| 144 | 
            -
                    end
         | 
| 144 | 
            +
                    error = SBF::Client::ErrorEntity.new(JSON.parse(response.body).symbolize!) unless ok?(response)
         | 
| 145 145 |  | 
| 146 146 | 
             
                    SBF::Client::Api::Response.new(http_code: response.code, data: nil, error: error)
         | 
| 147 147 | 
             
                  end
         | 
| @@ -193,6 +193,7 @@ module SBF | |
| 193 193 | 
             
                    entity_class = klass.send(entity_class_selector_method, value)
         | 
| 194 194 |  | 
| 195 195 | 
             
                    return nil if entity_class == NilClass
         | 
| 196 | 
            +
             | 
| 196 197 | 
             
                    entity_class.nil? ? value : sanitize(value, entity_class)
         | 
| 197 198 | 
             
                  end
         | 
| 198 199 | 
             
                  private :sanitize_entity
         | 
| @@ -223,6 +224,7 @@ module SBF | |
| 223 224 | 
             
                  end
         | 
| 224 225 | 
             
                  private :normalize_with
         | 
| 225 226 |  | 
| 227 | 
            +
                  # rubocop:disable IdenticalConditionalBranches
         | 
| 226 228 | 
             
                  def hydrated_entity(response, data, entity_or_hash)
         | 
| 227 229 | 
             
                    parsed_response_body = JSON.parse(response.body).symbolize!
         | 
| 228 230 |  | 
| @@ -256,6 +258,7 @@ module SBF | |
| 256 258 | 
             
                    end
         | 
| 257 259 | 
             
                  end
         | 
| 258 260 | 
             
                  private :hydrated_entity
         | 
| 261 | 
            +
                  # rubocop:enable IdenticalConditionalBranches
         | 
| 259 262 | 
             
                end
         | 
| 260 263 | 
             
              end
         | 
| 261 264 | 
             
            end
         | 
| @@ -22,7 +22,8 @@ module SBF | |
| 22 22 | 
             
                      new_team_id: 0,
         | 
| 23 23 | 
             
                      team_name: team_name,
         | 
| 24 24 | 
             
                      goal: fundraising_goal,
         | 
| 25 | 
            -
                      how_created: SBF::Client::Team::HowCreated::WEBSITE | 
| 25 | 
            +
                      how_created: SBF::Client::Team::HowCreated::WEBSITE
         | 
| 26 | 
            +
                    )
         | 
| 26 27 |  | 
| 27 28 | 
             
                    if ok?(response)
         | 
| 28 29 | 
             
                      data =  SBF::Client::FullParticipant.new(JSON.parse(response.body).symbolize!)
         | 
| @@ -23,8 +23,8 @@ module SBF | |
| 23 23 | 
             
                    if entity_or_hash.is_a?(SBF::Client::BaseEntity)
         | 
| 24 24 | 
             
                      # If someone has passed in an entity, just convert it to a hash
         | 
| 25 25 | 
             
                      data = entity_or_hash.dirty_data
         | 
| 26 | 
            -
                      data | 
| 27 | 
            -
                      data | 
| 26 | 
            +
                      data[:id] = id unless id.nil?
         | 
| 27 | 
            +
                      data[:id] = entity_or_hash.id if id.nil? && !entity_or_hash.id.nil?
         | 
| 28 28 | 
             
                    elsif entity_or_hash.is_a?(Hash)
         | 
| 29 29 | 
             
                      # If someone has passed in a hash, make sure all of it's values match fields in the entity class
         | 
| 30 30 | 
             
                      data = sanitize(entity_or_hash)
         | 
| @@ -48,7 +48,7 @@ module SBF | |
| 48 48 |  | 
| 49 49 | 
             
                  def upload(image_data_url, data = {}, with = {})
         | 
| 50 50 | 
             
                    # support image formats: png, jpeg, gif
         | 
| 51 | 
            -
                    image_data_url.slice!( | 
| 51 | 
            +
                    image_data_url.slice!(%r{data:image/(png|jpeg|gif);base64,})
         | 
| 52 52 | 
             
                    image_data = Base64.decode64(image_data_url)
         | 
| 53 53 |  | 
| 54 54 | 
             
                    Tempfile.create('photo_upload') do |file|
         | 
| @@ -66,11 +66,11 @@ module SBF | |
| 66 66 | 
             
                  def photo_for_upload(file, data)
         | 
| 67 67 | 
             
                    if data.is_a?(SBF::Client::Photo)
         | 
| 68 68 | 
             
                      data.file = file
         | 
| 69 | 
            -
                       | 
| 69 | 
            +
                      data
         | 
| 70 70 | 
             
                    else
         | 
| 71 71 | 
             
                      photo = SBF::Client::Photo.new(data.is_a?(Hash) && data.any? ? data : {})
         | 
| 72 72 | 
             
                      photo.file = file
         | 
| 73 | 
            -
                       | 
| 73 | 
            +
                      photo
         | 
| 74 74 | 
             
                    end
         | 
| 75 75 | 
             
                  end
         | 
| 76 76 | 
             
                end
         | 
| @@ -28,7 +28,8 @@ module SBF | |
| 28 28 | 
             
                    geo_location = geo_location.to_json unless geo_location.empty?
         | 
| 29 29 |  | 
| 30 30 | 
             
                    # Build the parameter list for search
         | 
| 31 | 
            -
                    params | 
| 31 | 
            +
                    params = {}
         | 
| 32 | 
            +
                    response_data = {}
         | 
| 32 33 | 
             
                    {model_type: model_type, search_text: search_text, filters: filters, geo_location: geo_location}.each do |k, v|
         | 
| 33 34 | 
             
                      params[k.to_sym] = v unless v.empty?
         | 
| 34 35 | 
             
                    end
         | 
| @@ -59,7 +59,7 @@ module SBF | |
| 59 59 | 
             
                  #
         | 
| 60 60 | 
             
                  # @raise [SBFClientError]
         | 
| 61 61 | 
             
                  def change_password(profile_id, password)
         | 
| 62 | 
            -
                    raise SBF::Client::Error, 'User not logged in' if | 
| 62 | 
            +
                    raise SBF::Client::Error, 'User not logged in' if SBF::Client::Configuration.user_token.nil?
         | 
| 63 63 |  | 
| 64 64 | 
             
                    response = SBF::Client::Api::Request.post_request(
         | 
| 65 65 | 
             
                      "/#{SBF::Client::Api::VERSION}/security/change_password",
         | 
| @@ -81,17 +81,16 @@ module SBF | |
| 81 81 | 
             
                  #
         | 
| 82 82 | 
             
                  # @raise [SBFClientError]
         | 
| 83 83 | 
             
                  def disconnect_facebook(profile_id)
         | 
| 84 | 
            -
                    raise SBF::Client::Error, 'User not logged in' if | 
| 84 | 
            +
                    raise SBF::Client::Error, 'User not logged in' if SBF::Client::Configuration.user_token.nil?
         | 
| 85 85 |  | 
| 86 86 | 
             
                    response = SBF::Client::Api::Request.post_request(
         | 
| 87 87 | 
             
                      "/#{SBF::Client::Api::VERSION}/user/disconnect_facebook",
         | 
| 88 88 | 
             
                      profile_id: profile_id
         | 
| 89 89 | 
             
                    )
         | 
| 90 90 |  | 
| 91 | 
            -
                     | 
| 92 | 
            -
             | 
| 93 | 
            -
                     | 
| 94 | 
            -
                      SBF::Client::Configuration.user_token = nil
         | 
| 91 | 
            +
                    SBF::Client::Configuration.user_token = nil
         | 
| 92 | 
            +
             | 
| 93 | 
            +
                    unless ok?(response)
         | 
| 95 94 | 
             
                      parsed_response = JSON.parse(response.body).symbolize!
         | 
| 96 95 | 
             
                      error = SBF::Client::ErrorEntity.new(parsed_response)
         | 
| 97 96 | 
             
                    end
         | 
| @@ -16,7 +16,7 @@ module EntityResponseConcern | |
| 16 16 | 
             
                end
         | 
| 17 17 | 
             
                errors.instance_variable_set(:@code, error.code)
         | 
| 18 18 | 
             
                errors.instance_variable_set(:@type, error.type)
         | 
| 19 | 
            -
                errors.add(:base, "#{error.type}: #{error.details}") if count | 
| 19 | 
            +
                errors.add(:base, "#{error.type}: #{error.details}") if count&.zero?
         | 
| 20 20 | 
             
              end
         | 
| 21 21 |  | 
| 22 22 | 
             
              def errors_http_code=(http_code)
         | 
| @@ -32,7 +32,7 @@ module EntityResponseConcern | |
| 32 32 | 
             
              end
         | 
| 33 33 |  | 
| 34 34 | 
             
              def errors?
         | 
| 35 | 
            -
                errors.count | 
| 35 | 
            +
                errors.count.positive?
         | 
| 36 36 | 
             
              end
         | 
| 37 37 |  | 
| 38 38 | 
             
              ############ Deprecated Methods ############
         | 
| @@ -52,6 +52,7 @@ module EntityResponseConcern | |
| 52 52 | 
             
              def single_active_model_error
         | 
| 53 53 | 
             
                return if errors.empty?
         | 
| 54 54 | 
             
                return [:base, errors[:base].first] if errors[:base].any?
         | 
| 55 | 
            +
             | 
| 55 56 | 
             
                errors.first
         | 
| 56 57 | 
             
              end
         | 
| 57 58 |  | 
| @@ -21,6 +21,7 @@ module SBF | |
| 21 21 | 
             
                  #NOTE: If you add another attribute, be sure to mock it out in `configure :test` of app.rb
         | 
| 22 22 |  | 
| 23 23 | 
             
                  # Attempts to call the method on the cached configuration object
         | 
| 24 | 
            +
                  # rubocop:disable Style/MethodMissingSuper, Style/MissingRespondToMissing
         | 
| 24 25 | 
             
                  def self.method_missing(method_name, *arguments, &block)
         | 
| 25 26 | 
             
                    # The first time a missing method is called, call reload to make sure the instance has been populated
         | 
| 26 27 | 
             
                    unless @_loaded
         | 
| @@ -29,12 +30,11 @@ module SBF | |
| 29 30 | 
             
                    end
         | 
| 30 31 |  | 
| 31 32 | 
             
                    # If the method being called exists on the instance, call it. Otherwise forward the request on to 'super'.
         | 
| 32 | 
            -
                    if instance.respond_to?(method_name)
         | 
| 33 | 
            -
             | 
| 34 | 
            -
                     | 
| 35 | 
            -
                      super(method_name, *arguments, &block)
         | 
| 36 | 
            -
                    end
         | 
| 33 | 
            +
                    return instance.send(method_name) if instance.respond_to?(method_name)
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                    super(method_name, *arguments, &block)
         | 
| 37 36 | 
             
                  end
         | 
| 37 | 
            +
                  # rubocop:enable Style/MethodMissingSuper, Style/MissingRespondToMissing
         | 
| 38 38 | 
             
                end
         | 
| 39 39 | 
             
              end
         | 
| 40 40 | 
             
            end
         | 
| @@ -214,20 +214,16 @@ module SBF | |
| 214 214 | 
             
                        state_value = state.to_s.upcase.to_sym
         | 
| 215 215 | 
             
                        if !state_value.empty? && SBF::Client::Donation::SpecialDonationType.const_defined?(state_value)
         | 
| 216 216 | 
             
                          return SBF::Client::Donation::SpecialDonationType.const_get(state_value)
         | 
| 217 | 
            -
             | 
| 218 | 
            -
                        else
         | 
| 219 | 
            -
                          return SBF::Client::Donation::SpecialDonationType::NO_STATE
         | 
| 220 217 | 
             
                        end
         | 
| 221 218 |  | 
| 219 | 
            +
                        return SBF::Client::Donation::SpecialDonationType::NO_STATE
         | 
| 222 220 | 
             
                      else
         | 
| 223 221 | 
             
                        international_value = "INT_#{country}".upcase.to_sym
         | 
| 224 222 | 
             
                        if SBF::Client::Donation::SpecialDonationType.const_defined?(international_value)
         | 
| 225 223 | 
             
                          return SBF::Client::Donation::SpecialDonationType.const_get(international_value)
         | 
| 226 | 
            -
             | 
| 227 | 
            -
                        else
         | 
| 228 | 
            -
                          return SBF::Client::Donation::SpecialDonationType::INTERNATIONAL
         | 
| 229 | 
            -
             | 
| 230 224 | 
             
                        end
         | 
| 225 | 
            +
             | 
| 226 | 
            +
                        return SBF::Client::Donation::SpecialDonationType::INTERNATIONAL
         | 
| 231 227 | 
             
                      end
         | 
| 232 228 | 
             
                    end
         | 
| 233 229 |  | 
| @@ -256,16 +252,16 @@ module SBF | |
| 256 252 | 
             
                      return [country, state]
         | 
| 257 253 |  | 
| 258 254 | 
             
                    when SBF::Client::Participant
         | 
| 259 | 
            -
                       | 
| 255 | 
            +
                      get_event_country_and_state_for_special_donation_type(entity.event, entity.person)
         | 
| 260 256 |  | 
| 261 257 | 
             
                    when SBF::Client::Fundraiser
         | 
| 262 | 
            -
                       | 
| 258 | 
            +
                      [entity.venue.location.address.country, entity.venue.location.address.state]
         | 
| 263 259 |  | 
| 264 260 | 
             
                    when SBF::Client::Team
         | 
| 265 | 
            -
                       | 
| 261 | 
            +
                      get_event_country_and_state_for_special_donation_type(entity.event)
         | 
| 266 262 |  | 
| 267 263 | 
             
                    when SBF::Client::Event
         | 
| 268 | 
            -
                       | 
| 264 | 
            +
                      get_event_country_and_state_for_special_donation_type(entity)
         | 
| 269 265 |  | 
| 270 266 | 
             
                    end
         | 
| 271 267 | 
             
                  end
         | 
| @@ -75,12 +75,15 @@ module SBF | |
| 75 75 | 
             
                  attr_accessor :offline_donation_uuid, :offline_donation_form
         | 
| 76 76 |  | 
| 77 77 | 
             
                  def totals_by_year=(value)
         | 
| 78 | 
            -
                     | 
| 78 | 
            +
                    if value.nil? || value.empty?
         | 
| 79 | 
            +
                      @totals_by_year = []
         | 
| 80 | 
            +
                      return
         | 
| 81 | 
            +
                    end
         | 
| 79 82 |  | 
| 80 83 | 
             
                    totals_by_year_will_change!
         | 
| 81 | 
            -
                    @totals_by_year = value.map  | 
| 84 | 
            +
                    @totals_by_year = value.map do |k, v|
         | 
| 82 85 | 
             
                      SBF::Client::Fund::YearlyTotals.new(v.merge(year: k.to_s.to_i))
         | 
| 83 | 
            -
                     | 
| 86 | 
            +
                    end
         | 
| 84 87 | 
             
                  end
         | 
| 85 88 |  | 
| 86 89 | 
             
                  def to_hash
         | 
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            # Require all monkey patches
         | 
| 2 | 
            -
            patch_dir = File.expand_path(' | 
| 2 | 
            +
            patch_dir = File.expand_path('../../patches', __dir__)
         | 
| 3 3 | 
             
            Dir["#{patch_dir}/*.rb"].each { |file| require file }
         | 
| 4 4 |  | 
| 5 5 | 
             
            require 'set'
         | 
| @@ -79,17 +79,19 @@ module SBF | |
| 79 79 | 
             
                    changes.each { |k, arr| data[k.to_sym] = arr[1] }
         | 
| 80 80 |  | 
| 81 81 | 
             
                    instance_variables.each do |var|
         | 
| 82 | 
            -
                      attribute_symbol = var.to_s. | 
| 82 | 
            +
                      attribute_symbol = var.to_s.delete('@').to_sym
         | 
| 83 83 | 
             
                      attribute = instance_variable_get(var)
         | 
| 84 84 | 
             
                      if attribute.is_a?(BaseEntity)
         | 
| 85 85 | 
             
                        if attribute.dirty_data(true).empty?
         | 
| 86 86 | 
             
                          next unless changed.map(&:to_sym).include?(attribute_symbol)
         | 
| 87 | 
            +
             | 
| 87 88 | 
             
                          data.merge!(attribute_symbol => attribute.keys_hash)
         | 
| 88 89 | 
             
                        else
         | 
| 89 90 | 
             
                          data.merge!(attribute_symbol => attribute.dirty_data(true))
         | 
| 90 91 | 
             
                        end
         | 
| 91 92 | 
             
                      elsif attribute.is_a?(Array)
         | 
| 92 93 | 
             
                        next unless attribute.all? { |e| e.is_a?(BaseEntity) } && attribute.any? { |e| !e.dirty_data(true).empty? }
         | 
| 94 | 
            +
             | 
| 93 95 | 
             
                        data.merge!(attribute_symbol => attribute)
         | 
| 94 96 | 
             
                      end
         | 
| 95 97 | 
             
                    end
         | 
| @@ -114,11 +116,9 @@ module SBF | |
| 114 116 | 
             
                      if respond_to?(setter, true)
         | 
| 115 117 | 
             
                        send(setter, value)
         | 
| 116 118 |  | 
| 117 | 
            -
                       | 
| 118 | 
            -
                         | 
| 119 | 
            -
             | 
| 120 | 
            -
                          attribute_will_change!(key.to_sym)
         | 
| 121 | 
            -
                        end
         | 
| 119 | 
            +
                      elsif respond_to?(key.to_sym)
         | 
| 120 | 
            +
                        instance_variable_set("@#{key}".to_sym, value)
         | 
| 121 | 
            +
                        attribute_will_change!(key.to_sym)
         | 
| 122 122 | 
             
                      end
         | 
| 123 123 | 
             
                    end
         | 
| 124 124 |  | 
| @@ -364,6 +364,7 @@ module SBF | |
| 364 364 | 
             
                    vars.each do |attribute|
         | 
| 365 365 | 
             
                      split_attribute = attribute.to_s.split('is_')
         | 
| 366 366 | 
             
                      next if split_attribute.length <= 1
         | 
| 367 | 
            +
             | 
| 367 368 | 
             
                      define_method(:"#{split_attribute.last}?") { send(attribute) }
         | 
| 368 369 | 
             
                      define_changing_attr_methods(attribute, true) if setter
         | 
| 369 370 | 
             
                    end
         | 
| @@ -371,9 +372,11 @@ module SBF | |
| 371 372 | 
             
                  private_class_method :add_boolean_methods
         | 
| 372 373 |  | 
| 373 374 | 
             
                  def self.define_changing_attr_methods(attribute, is_boolean = false, define_reader = false)
         | 
| 374 | 
            -
                     | 
| 375 | 
            -
                       | 
| 376 | 
            -
             | 
| 375 | 
            +
                    if define_reader
         | 
| 376 | 
            +
                      define_method(:"#{attribute}") do
         | 
| 377 | 
            +
                        instance_variable_get("@#{attribute}".to_sym)
         | 
| 378 | 
            +
                      end
         | 
| 379 | 
            +
                    end
         | 
| 377 380 |  | 
| 378 381 | 
             
                    define_method(:"#{attribute}=") do |val|
         | 
| 379 382 | 
             
                      send(:"#{attribute}_will_change!") unless val == instance_variable_get("@#{attribute}".to_sym) && !val.nil?
         | 
| @@ -451,9 +454,7 @@ module SBF | |
| 451 454 | 
             
                  def self.get_mappings(attribute, class_mappings)
         | 
| 452 455 | 
             
                    # Parse the mappings information and save it off
         | 
| 453 456 | 
             
                    mapping_var = :"@#{attribute}_class_mappings"
         | 
| 454 | 
            -
                    unless instance_variable_defined?(mapping_var)
         | 
| 455 | 
            -
                      instance_variable_set(mapping_var, parse_class_mappings(class_mappings))
         | 
| 456 | 
            -
                    end
         | 
| 457 | 
            +
                    instance_variable_set(mapping_var, parse_class_mappings(class_mappings)) unless instance_variable_defined?(mapping_var)
         | 
| 457 458 |  | 
| 458 459 | 
             
                    instance_variable_get(mapping_var)
         | 
| 459 460 | 
             
                  end
         | 
| @@ -523,6 +524,7 @@ module SBF | |
| 523 524 | 
             
                    define_method(:"#{attribute}=") do |values|
         | 
| 524 525 | 
             
                      values ||= []
         | 
| 525 526 | 
             
                      raise SBF::Client::Error, "#{attribute} must be an array" unless values.is_a?(Array)
         | 
| 527 | 
            +
             | 
| 526 528 | 
             
                      converted_collection = values.map { |value| convert_value(attribute, value) }
         | 
| 527 529 | 
             
                      instance_variable_set(:"@#{attribute}", converted_collection)
         | 
| 528 530 | 
             
                      send(:"#{attribute}_will_change!") if respond_to?(:"#{attribute}_will_change!")
         | 
| @@ -544,28 +546,26 @@ module SBF | |
| 544 546 | 
             
                      value = send(key)
         | 
| 545 547 |  | 
| 546 548 | 
             
                      # If the value is an Entity, call to_hash on it (recursively)
         | 
| 547 | 
            -
                      if value.is_a?(BaseEntity)
         | 
| 548 | 
            -
             | 
| 549 | 
            -
             | 
| 550 | 
            -
                      # If the value is an Array, need to try to call to_hash on each item
         | 
| 551 | 
            -
                      elsif value.is_a?(Array)
         | 
| 552 | 
            -
                        entity_hash[key] = value.map { |element|
         | 
| 553 | 
            -
                          if element.is_a?(BaseEntity)
         | 
| 554 | 
            -
                            next element.to_hash
         | 
| 555 | 
            -
                          else
         | 
| 556 | 
            -
                            next element
         | 
| 557 | 
            -
                          end
         | 
| 558 | 
            -
                        }
         | 
| 549 | 
            +
                      entity_hash[key] = if value.is_a?(BaseEntity)
         | 
| 550 | 
            +
                                           value.to_hash
         | 
| 559 551 |  | 
| 560 | 
            -
             | 
| 561 | 
            -
             | 
| 562 | 
            -
             | 
| 552 | 
            +
                                         # If the value is an Array, need to try to call to_hash on each item
         | 
| 553 | 
            +
                                         elsif value.is_a?(Array)
         | 
| 554 | 
            +
                                           value.map { |element|
         | 
| 555 | 
            +
                                             next element.to_hash if element.is_a?(BaseEntity)
         | 
| 563 556 |  | 
| 564 | 
            -
             | 
| 565 | 
            -
             | 
| 566 | 
            -
                        entity_hash[key] = value
         | 
| 557 | 
            +
                                             next element
         | 
| 558 | 
            +
                                           }
         | 
| 567 559 |  | 
| 568 | 
            -
             | 
| 560 | 
            +
                                         # Collections should return empty array rather than nil
         | 
| 561 | 
            +
                                         elsif value.nil? && self.class.collection_attributes.include?(key)
         | 
| 562 | 
            +
                                           []
         | 
| 563 | 
            +
             | 
| 564 | 
            +
                                         # Just set the value
         | 
| 565 | 
            +
                                         else
         | 
| 566 | 
            +
                                           value
         | 
| 567 | 
            +
             | 
| 568 | 
            +
                                         end
         | 
| 569 569 | 
             
                    }
         | 
| 570 570 |  | 
| 571 571 | 
             
                    # Return the hash
         | 
| @@ -590,6 +590,7 @@ module SBF | |
| 590 590 | 
             
                  def error
         | 
| 591 591 | 
             
                    log_deprecated('error', caller)
         | 
| 592 592 | 
             
                    return nil if single_active_model_error.nil?
         | 
| 593 | 
            +
             | 
| 593 594 | 
             
                    details = single_active_model_error.find { |x| x.is_a?(String) } if single_active_model_error.is_a?(Array)
         | 
| 594 595 | 
             
                    details ||= single_active_model_error.is_a?(String) ? single_active_model_error : nil
         | 
| 595 596 | 
             
                    field = single_active_model_error.is_a?(Array) ? single_active_model_error.find { |x| x.is_a?(Symbol) && x != :base } : nil
         | 
| @@ -27,6 +27,7 @@ module SBF | |
| 27 27 | 
             
                        id = @cache_id_proc.call(proc_or_hash || {}) if @cache_id_proc
         | 
| 28 28 | 
             
                        id ||= superclass.cache_id_from_hash(proc_or_hash || {}) if superclass.respond_to?(:cache_id_from_hash)
         | 
| 29 29 | 
             
                        raise CacheableInvalidDataError, "Data missing id. Data: #{proc_or_hash.to_json}" unless id
         | 
| 30 | 
            +
             | 
| 30 31 | 
             
                        id
         | 
| 31 32 | 
             
                      end
         | 
| 32 33 |  | 
| @@ -34,6 +35,7 @@ module SBF | |
| 34 35 |  | 
| 35 36 | 
             
                      def cache_id_from_hash_func(proc)
         | 
| 36 37 | 
             
                        raise ArgumentError, "Unable to re-set cache_id_from_hash on #{name}" if @cache_id_proc
         | 
| 38 | 
            +
             | 
| 37 39 | 
             
                        @cache_id_proc = proc
         | 
| 38 40 | 
             
                      end
         | 
| 39 41 | 
             
                    end
         | 
| @@ -19,6 +19,7 @@ module SBF | |
| 19 19 | 
             
                  def error
         | 
| 20 20 | 
             
                    log_deprecated('error', caller)
         | 
| 21 21 | 
             
                    return nil if single_active_model_error.nil?
         | 
| 22 | 
            +
             | 
| 22 23 | 
             
                    details = single_active_model_error.find { |x| x.is_a?(String) } if single_active_model_error.is_a?(Array)
         | 
| 23 24 | 
             
                    details ||= single_active_model_error.is_a?(String) ? single_active_model_error : ''
         | 
| 24 25 | 
             
                    details = details["#{errors.type}: ".length..(details.length - 1)] if details.start_with?("#{errors.type}: ")
         | 
| @@ -26,13 +27,16 @@ module SBF | |
| 26 27 | 
             
                    SBF::Client::ErrorEntity.new(code: errors.code, type: errors.type, details: details)
         | 
| 27 28 | 
             
                  end
         | 
| 28 29 |  | 
| 30 | 
            +
                  # rubocop:disable MultipleComparison
         | 
| 29 31 | 
             
                  def [](*args)
         | 
| 30 32 | 
             
                    log_deprecated('[]', caller) if args == [:results] || args == [:total_count]
         | 
| 31 33 | 
             
                    return self if args == [:results]
         | 
| 32 34 | 
             
                    return @total_count if args == [:total_count]
         | 
| 35 | 
            +
             | 
| 33 36 | 
             
                    result = super
         | 
| 34 37 | 
             
                    result.is_a?(Array) ? self.class.new(result, total_count) : result
         | 
| 35 38 | 
             
                  end
         | 
| 39 | 
            +
                  # rubocop:enable MultipleComparison
         | 
| 36 40 | 
             
                end
         | 
| 37 41 | 
             
              end
         | 
| 38 42 | 
             
            end
         | 
| @@ -16,10 +16,13 @@ module SBF | |
| 16 16 | 
             
                    super
         | 
| 17 17 | 
             
                  end
         | 
| 18 18 |  | 
| 19 | 
            +
                  # rubocop:disable Style/MissingRespondToMissing
         | 
| 19 20 | 
             
                  def method_missing(name)
         | 
| 20 21 | 
             
                    return @props[name.to_sym] if @props.key?(name.to_sym)
         | 
| 22 | 
            +
             | 
| 21 23 | 
             
                    super.method_missing(name)
         | 
| 22 24 | 
             
                  end
         | 
| 25 | 
            +
                  # rubocop:enable Style/MissingRespondToMissing
         | 
| 23 26 |  | 
| 24 27 | 
             
                  def to_hash
         | 
| 25 28 | 
             
                    {}.tap do |hsh|
         | 
| @@ -8,6 +8,7 @@ module SBF | |
| 8 8 | 
             
                  attr_accessor :is_owner
         | 
| 9 9 | 
             
                  attr_accessor :permission_ids
         | 
| 10 10 |  | 
| 11 | 
            +
                  # rubocop:disable Style/MissingRespondToMissing
         | 
| 11 12 | 
             
                  def method_missing(method, *arguments, &block)
         | 
| 12 13 | 
             
                    # If the method starts with 'can', assume they are trying to determine if the user has the permission
         | 
| 13 14 | 
             
                    # in their list of permission ids and return the result
         | 
| @@ -23,6 +24,7 @@ module SBF | |
| 23 24 |  | 
| 24 25 | 
             
                    super
         | 
| 25 26 | 
             
                  end
         | 
| 27 | 
            +
                  # rubocop:enable Style/MissingRespondToMissing
         | 
| 26 28 | 
             
                end
         | 
| 27 29 |  | 
| 28 30 | 
             
                class PermissionsAtEvent < SBF::Client::BaseEntity
         | 
| @@ -15,6 +15,7 @@ module SBF | |
| 15 15 | 
             
                  # (402)555-5555 --> tel:4025555555
         | 
| 16 16 | 
             
                  def format_href
         | 
| 17 17 | 
             
                    return 'tel:' + number.gsub(/\D/, '') unless number.nil?
         | 
| 18 | 
            +
             | 
| 18 19 | 
             
                    number
         | 
| 19 20 | 
             
                  end
         | 
| 20 21 |  | 
| @@ -22,6 +23,7 @@ module SBF | |
| 22 23 | 
             
                  # (402)555-5555 ext. 5555 --> 402.555.555 x5555
         | 
| 23 24 | 
             
                  def format_number
         | 
| 24 25 | 
             
                    return number.gsub(/\D/, '').gsub(/(\d{3})(\d{3})(\d{4})(\d*)/, '\1.\2.\3 x\4').gsub(/x$/, '').rstrip unless number.nil?
         | 
| 26 | 
            +
             | 
| 25 27 | 
             
                    number
         | 
| 26 28 | 
             
                  end
         | 
| 27 29 | 
             
                end
         | 
| @@ -100,7 +100,8 @@ module SBF | |
| 100 100 | 
             
                      check_date = DateTime.parse(check_date) if check_date.is_a?(String)
         | 
| 101 101 | 
             
                      check_date = DateTime.parse(check_date.to_s) if check_date.is_a?(Date)
         | 
| 102 102 | 
             
                      check_date = DateTime.parse(check_date.strftime('%d/%m/%Y %H:%M:%S')) if check_date.is_a?(Time)
         | 
| 103 | 
            -
                      background_check_date && check_date.is_a?(DateTime)  | 
| 103 | 
            +
                      background_check_date && check_date.is_a?(DateTime) \
         | 
| 104 | 
            +
                                            && background_check_date > check_date.prev_year(SBF::Client::Person::Policies::BACKGROUND_CHECK_YEARS_VALID)
         | 
| 104 105 | 
             
                    end
         | 
| 105 106 | 
             
                  end
         | 
| 106 107 |  | 
| @@ -373,6 +374,7 @@ module SBF | |
| 373 374 | 
             
                    when SBF::Client::LeagueStatus::BARON
         | 
| 374 375 | 
             
                      'Baron of the Brave'
         | 
| 375 376 | 
             
                    when SBF::Client::LeagueStatus::NOT_APPLICABLE
         | 
| 377 | 
            +
                      ''
         | 
| 376 378 | 
             
                    end
         | 
| 377 379 | 
             
                  end
         | 
| 378 380 | 
             
                end
         | 
| @@ -34,55 +34,55 @@ module SBF | |
| 34 34 | 
             
                  attr_accessor :file
         | 
| 35 35 | 
             
                  attr_accessor :filename
         | 
| 36 36 | 
             
                  multitype_attr_accessor(
         | 
| 37 | 
            -
             | 
| 37 | 
            +
                    :model,
         | 
| 38 | 
            +
                    [
         | 
| 38 39 | 
             
                      [
         | 
| 39 | 
            -
                        [
         | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 42 | 
            -
                          'SBF::Client::Photo::PartialParticipant'
         | 
| 43 | 
            -
                        ],
         | 
| 44 | 
            -
                        [
         | 
| 45 | 
            -
                          ->(v) { v[:model_type] == SBF::Client::Photo::ModelType::FUNDRAISER },
         | 
| 46 | 
            -
                          'SBF::Client::Photo::FullFundraiser',
         | 
| 47 | 
            -
                          'SBF::Client::Photo::PartialFundraiser'
         | 
| 48 | 
            -
                        ],
         | 
| 49 | 
            -
                        [
         | 
| 50 | 
            -
                          ->(v) { v[:model_type] == SBF::Client::Photo::ModelType::FUND },
         | 
| 51 | 
            -
                          'SBF::Client::Photo::FullFund',
         | 
| 52 | 
            -
                          'SBF::Client::Photo::PartialFund'
         | 
| 53 | 
            -
                        ],
         | 
| 54 | 
            -
                        [
         | 
| 55 | 
            -
                          ->(v) { v[:model_type] == SBF::Client::Photo::ModelType::CAMPAIGN },
         | 
| 56 | 
            -
                          'SBF::Client::Photo::FullCampaign',
         | 
| 57 | 
            -
                          'SBF::Client::Photo::PartialCampaign'
         | 
| 58 | 
            -
                        ],
         | 
| 59 | 
            -
                        [
         | 
| 60 | 
            -
                          ->(v) { v[:model_type] == SBF::Client::Photo::ModelType::TEAM },
         | 
| 61 | 
            -
                          'SBF::Client::Photo::FullTeam',
         | 
| 62 | 
            -
                          'SBF::Client::Photo::PartialTeam'
         | 
| 63 | 
            -
                        ],
         | 
| 64 | 
            -
                        [
         | 
| 65 | 
            -
                          ->(v) { v[:model_type] == SBF::Client::Photo::ModelType::EVENT },
         | 
| 66 | 
            -
                          'SBF::Client::Photo::FullEvent',
         | 
| 67 | 
            -
                          'SBF::Client::Photo::PartialEvent'
         | 
| 68 | 
            -
                        ],
         | 
| 69 | 
            -
                        [
         | 
| 70 | 
            -
                          ->(v) { v[:model_type] == SBF::Client::Photo::ModelType::KID },
         | 
| 71 | 
            -
                          'SBF::Client::Photo::FullKid',
         | 
| 72 | 
            -
                          'SBF::Client::Photo::PartialKid'
         | 
| 73 | 
            -
                        ],
         | 
| 74 | 
            -
                        [
         | 
| 75 | 
            -
                          ->(v) { v[:model_type] == SBF::Client::Photo::ModelType::EVENT_SUPPORTER },
         | 
| 76 | 
            -
                          'SBF::Client::Photo::FullEventSupporter',
         | 
| 77 | 
            -
                          'SBF::Client::Photo::PartialEventSupporter'
         | 
| 78 | 
            -
                        ],
         | 
| 79 | 
            -
                        [
         | 
| 80 | 
            -
                          ->(v) { v[:model_type] == SBF::Client::Photo::ModelType::MEMORIAL },
         | 
| 81 | 
            -
                          'SBF::Client::Photo::FullMemorial',
         | 
| 82 | 
            -
                          'SBF::Client::Photo::PartialMemorial'
         | 
| 83 | 
            -
                        ]
         | 
| 40 | 
            +
                        ->(v) { v[:model_type] == SBF::Client::Photo::ModelType::PARTICIPANT },
         | 
| 41 | 
            +
                        'SBF::Client::Photo::FullParticipant',
         | 
| 42 | 
            +
                        'SBF::Client::Photo::PartialParticipant'
         | 
| 84 43 | 
             
                      ],
         | 
| 85 | 
            -
                       | 
| 44 | 
            +
                      [
         | 
| 45 | 
            +
                        ->(v) { v[:model_type] == SBF::Client::Photo::ModelType::FUNDRAISER },
         | 
| 46 | 
            +
                        'SBF::Client::Photo::FullFundraiser',
         | 
| 47 | 
            +
                        'SBF::Client::Photo::PartialFundraiser'
         | 
| 48 | 
            +
                      ],
         | 
| 49 | 
            +
                      [
         | 
| 50 | 
            +
                        ->(v) { v[:model_type] == SBF::Client::Photo::ModelType::FUND },
         | 
| 51 | 
            +
                        'SBF::Client::Photo::FullFund',
         | 
| 52 | 
            +
                        'SBF::Client::Photo::PartialFund'
         | 
| 53 | 
            +
                      ],
         | 
| 54 | 
            +
                      [
         | 
| 55 | 
            +
                        ->(v) { v[:model_type] == SBF::Client::Photo::ModelType::CAMPAIGN },
         | 
| 56 | 
            +
                        'SBF::Client::Photo::FullCampaign',
         | 
| 57 | 
            +
                        'SBF::Client::Photo::PartialCampaign'
         | 
| 58 | 
            +
                      ],
         | 
| 59 | 
            +
                      [
         | 
| 60 | 
            +
                        ->(v) { v[:model_type] == SBF::Client::Photo::ModelType::TEAM },
         | 
| 61 | 
            +
                        'SBF::Client::Photo::FullTeam',
         | 
| 62 | 
            +
                        'SBF::Client::Photo::PartialTeam'
         | 
| 63 | 
            +
                      ],
         | 
| 64 | 
            +
                      [
         | 
| 65 | 
            +
                        ->(v) { v[:model_type] == SBF::Client::Photo::ModelType::EVENT },
         | 
| 66 | 
            +
                        'SBF::Client::Photo::FullEvent',
         | 
| 67 | 
            +
                        'SBF::Client::Photo::PartialEvent'
         | 
| 68 | 
            +
                      ],
         | 
| 69 | 
            +
                      [
         | 
| 70 | 
            +
                        ->(v) { v[:model_type] == SBF::Client::Photo::ModelType::KID },
         | 
| 71 | 
            +
                        'SBF::Client::Photo::FullKid',
         | 
| 72 | 
            +
                        'SBF::Client::Photo::PartialKid'
         | 
| 73 | 
            +
                      ],
         | 
| 74 | 
            +
                      [
         | 
| 75 | 
            +
                        ->(v) { v[:model_type] == SBF::Client::Photo::ModelType::EVENT_SUPPORTER },
         | 
| 76 | 
            +
                        'SBF::Client::Photo::FullEventSupporter',
         | 
| 77 | 
            +
                        'SBF::Client::Photo::PartialEventSupporter'
         | 
| 78 | 
            +
                      ],
         | 
| 79 | 
            +
                      [
         | 
| 80 | 
            +
                        ->(v) { v[:model_type] == SBF::Client::Photo::ModelType::MEMORIAL },
         | 
| 81 | 
            +
                        'SBF::Client::Photo::FullMemorial',
         | 
| 82 | 
            +
                        'SBF::Client::Photo::PartialMemorial'
         | 
| 83 | 
            +
                      ]
         | 
| 84 | 
            +
                    ],
         | 
| 85 | 
            +
                    optional: false
         | 
| 86 86 | 
             
                  )
         | 
| 87 87 | 
             
                  attr_accessor :base_photo_url
         | 
| 88 88 | 
             
                  attr_reader :original_file_id
         | 
| @@ -11,7 +11,7 @@ require 'stbaldricks/entities/concerns/fundraising_page_concern' | |
| 11 11 |  | 
| 12 12 | 
             
            module SBF
         | 
| 13 13 | 
             
              module Client
         | 
| 14 | 
            -
                class Team | 
| 14 | 
            +
                class Team < SBF::Client::TopLevelEntity
         | 
| 15 15 | 
             
                  include Entities::DefaultCacheable
         | 
| 16 16 | 
             
                  include DonationRecipientConcern
         | 
| 17 17 | 
             
                  include EventYearConcern
         | 
| 
            File without changes
         | 
| 
            File without changes
         | 
| 
            File without changes
         | 
    
        data/lib/stbaldricks/log.rb
    CHANGED
    
    | @@ -8,9 +8,11 @@ module SBF | |
| 8 8 |  | 
| 9 9 | 
             
                  REQUIRED_METHODS = [:debug, :info, :warn, :error, :fatal, :unknown, :add, :level]
         | 
| 10 10 |  | 
| 11 | 
            +
                  # rubocop:disable Style/MethodMissingSuper, Style/MissingRespondToMissing
         | 
| 11 12 | 
             
                  def self.method_missing(sym, *args, &block)
         | 
| 12 13 | 
             
                    SBF::Client::Configuration.logger.send(sym, *args, &block)
         | 
| 13 14 | 
             
                  end
         | 
| 15 | 
            +
                  # rubocop:enable Style/MethodMissingSuper, Style/MissingRespondToMissing
         | 
| 14 16 | 
             
                end
         | 
| 15 17 | 
             
              end
         | 
| 16 18 | 
             
            end
         | 
| @@ -23,9 +23,9 @@ class String | |
| 23 23 | 
             
              end
         | 
| 24 24 |  | 
| 25 25 | 
             
              def snake_case
         | 
| 26 | 
            -
                gsub(SNAKE_CASE_REGEX)  | 
| 26 | 
            +
                gsub(SNAKE_CASE_REGEX) do
         | 
| 27 27 | 
             
                  (Regexp.last_match[1] ? "_#{Regexp.last_match[1]}" : Regexp.last_match[2]).downcase
         | 
| 28 | 
            -
                 | 
| 28 | 
            +
                end.sub(ID_REGEX, '_id').sub(UUID_REGEX, '_uuid').sub(URL_REGEX, '_url')
         | 
| 29 29 | 
             
              end
         | 
| 30 30 |  | 
| 31 31 | 
             
              def blank?
         | 
| @@ -49,6 +49,7 @@ class String | |
| 49 49 | 
             
              def to_b
         | 
| 50 50 | 
             
                return false if self == 'false' || self == '0'
         | 
| 51 51 | 
             
                return true if self == 'true' || self == '1'
         | 
| 52 | 
            +
             | 
| 52 53 | 
             
                nil
         | 
| 53 54 | 
             
              end
         | 
| 54 55 | 
             
            end
         | 
    
        data/lib/stbaldricks/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: stbaldricks
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 6.13. | 
| 4 | 
            +
              version: 6.13.1.alpha.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Firespring
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2019-01- | 
| 11 | 
            +
            date: 2019-01-23 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: activemodel
         | 
| @@ -31,19 +31,19 @@ dependencies: | |
| 31 31 | 
             
                  - !ruby/object:Gem::Version
         | 
| 32 32 | 
             
                    version: '5.2'
         | 
| 33 33 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 34 | 
            -
              name:  | 
| 34 | 
            +
              name: htmlentities
         | 
| 35 35 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 36 36 | 
             
                requirements:
         | 
| 37 37 | 
             
                - - '='
         | 
| 38 38 | 
             
                  - !ruby/object:Gem::Version
         | 
| 39 | 
            -
                    version:  | 
| 39 | 
            +
                    version: 4.3.4
         | 
| 40 40 | 
             
              type: :runtime
         | 
| 41 41 | 
             
              prerelease: false
         | 
| 42 42 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 43 43 | 
             
                requirements:
         | 
| 44 44 | 
             
                - - '='
         | 
| 45 45 | 
             
                  - !ruby/object:Gem::Version
         | 
| 46 | 
            -
                    version:  | 
| 46 | 
            +
                    version: 4.3.4
         | 
| 47 47 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 48 48 | 
             
              name: httmultiparty
         | 
| 49 49 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -59,19 +59,19 @@ dependencies: | |
| 59 59 | 
             
                  - !ruby/object:Gem::Version
         | 
| 60 60 | 
             
                    version: 0.3.16
         | 
| 61 61 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 62 | 
            -
              name:  | 
| 62 | 
            +
              name: httparty
         | 
| 63 63 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 64 64 | 
             
                requirements:
         | 
| 65 65 | 
             
                - - '='
         | 
| 66 66 | 
             
                  - !ruby/object:Gem::Version
         | 
| 67 | 
            -
                    version:  | 
| 67 | 
            +
                    version: 0.14.0
         | 
| 68 68 | 
             
              type: :runtime
         | 
| 69 69 | 
             
              prerelease: false
         | 
| 70 70 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 71 71 | 
             
                requirements:
         | 
| 72 72 | 
             
                - - '='
         | 
| 73 73 | 
             
                  - !ruby/object:Gem::Version
         | 
| 74 | 
            -
                    version:  | 
| 74 | 
            +
                    version: 0.14.0
         | 
| 75 75 | 
             
            description: Ruby library for accessing and integrating with the St. Baldrick's Foundation
         | 
| 76 76 | 
             
              API
         | 
| 77 77 | 
             
            email: opensource@stbaldricks.org
         | 
| @@ -237,9 +237,9 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 237 237 | 
             
                  version: '0'
         | 
| 238 238 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 239 239 | 
             
              requirements:
         | 
| 240 | 
            -
              - - " | 
| 240 | 
            +
              - - ">"
         | 
| 241 241 | 
             
                - !ruby/object:Gem::Version
         | 
| 242 | 
            -
                  version:  | 
| 242 | 
            +
                  version: 1.3.1
         | 
| 243 243 | 
             
            requirements: []
         | 
| 244 244 | 
             
            rubygems_version: 3.0.1
         | 
| 245 245 | 
             
            signing_key: 
         |