Skip to content

Commit

Permalink
2.6.0
Browse files Browse the repository at this point in the history
  • Loading branch information
braintreeps committed Sep 20, 2010
1 parent fcadea1 commit 2c31b9c
Show file tree
Hide file tree
Showing 14 changed files with 387 additions and 65 deletions.
12 changes: 12 additions & 0 deletions CHANGELOG.rdoc
@@ -1,3 +1,15 @@
== 2.6.0

* Added ability to perform multiple partial refunds on Transactions
* Deprecated Transaction refund_id in favor of refund_ids
* Added Braintree::Address::CountryNames, a list of the country names/codes that the gateway accepts (thanks r38y[http://github.com/r38y])
* Added revert_subscription_on_proration_failure flag to Subscription update that specifies how a Subscription should react to a failed proration charge
* Deprecated Subscription next_bill_amount in favor of next_billing_period_amount
* Added new fields to Subscription:
* balance
* paid_through_date
* next_billing_period_amount

== 2.5.2

* removed ssl expiration check
Expand Down
1 change: 1 addition & 0 deletions lib/braintree.rb
Expand Up @@ -22,6 +22,7 @@ module Braintree
require "braintree/modification"

require "braintree/add_on"
require "braintree/address/country_names"
require "braintree/address"
require "braintree/address_gateway"
require "braintree/advanced_search"
Expand Down
6 changes: 3 additions & 3 deletions lib/braintree/address.rb
Expand Up @@ -43,13 +43,13 @@ def ==(other) # :nodoc:

# Deprecated. Use Braintree::Address.delete
def delete
warn "[DEPRECATED] delete as an instance method is deprecated. Please use CreditCard.delete"
warn "[DEPRECATED] delete as an instance method is deprecated. Please use Address.delete"
@gateway.address.delete(customer_id, self.id)
end

# Deprecated. Use Braintree::Address.update
def update(attributes)
warn "[DEPRECATED] update as an instance method is deprecated. Please use CreditCard.update"
warn "[DEPRECATED] update as an instance method is deprecated. Please use Address.update"
result = @gateway.address.update(customer_id, id, attributes)
if result.success?
copy_instance_variables_from_object result.address
Expand All @@ -59,7 +59,7 @@ def update(attributes)

# Deprecated. Use Braintree::Address.update!
def update!(attributes)
warn "[DEPRECATED] update! as an instance method is deprecated. Please use CreditCard.update!"
warn "[DEPRECATED] update! as an instance method is deprecated. Please use Address.update!"
return_object_or_raise(:address) { update(attributes) }
end

Expand Down
251 changes: 251 additions & 0 deletions lib/braintree/address/country_names.rb
@@ -0,0 +1,251 @@
module Braintree
class Address
CountryNames = [
["Afghanistan", "AF", "AFG", "004"],
["Åland", "AX", "ALA", "248"],
["Albania", "AL", "ALB", "008"],
["Algeria", "DZ", "DZA", "012"],
["American Samoa", "AS", "ASM", "016"],
["Andorra", "AD", "AND", "020"],
["Angola", "AO", "AGO", "024"],
["Anguilla", "AI", "AIA", "660"],
["Antarctica", "AQ", "ATA", "010"],
["Antigua and Barbuda", "AG", "ATG", "028"],
["Argentina", "AR", "ARG", "032"],
["Armenia", "AM", "ARM", "051"],
["Aruba", "AW", "ABW", "533"],
["Australia", "AU", "AUS", "036"],
["Austria", "AT", "AUT", "040"],
["Azerbaijan", "AZ", "AZE", "031"],
["Bahamas", "BS", "BHS", "044"],
["Bahrain", "BH", "BHR", "048"],
["Bangladesh", "BD", "BGD", "050"],
["Barbados", "BB", "BRB", "052"],
["Belarus", "BY", "BLR", "112"],
["Belgium", "BE", "BEL", "056"],
["Belize", "BZ", "BLZ", "084"],
["Benin", "BJ", "BEN", "204"],
["Bermuda", "BM", "BMU", "060"],
["Bhutan", "BT", "BTN", "064"],
["Bolivia", "BO", "BOL", "068"],
["Bosnia and Herzegovina", "BA", "BIH", "070"],
["Botswana", "BW", "BWA", "072"],
["Bouvet Island", "BV", "BVT", "074"],
["Brazil", "BR", "BRA", "076"],
["British Indian Ocean Territory", "IO", "IOT", "086"],
["Brunei Darussalam", "BN", "BRN", "096"],
["Bulgaria", "BG", "BGR", "100"],
["Burkina Faso", "BF", "BFA", "854"],
["Burundi", "BI", "BDI", "108"],
["Cambodia", "KH", "KHM", "116"],
["Cameroon", "CM", "CMR", "120"],
["Canada", "CA", "CAN", "124"],
["Cape Verde", "CV", "CPV", "132"],
["Cayman Islands", "KY", "CYM", "136"],
["Central African Republic", "CF", "CAF", "140"],
["Chad", "TD", "TCD", "148"],
["Chile", "CL", "CHL", "152"],
["China", "CN", "CHN", "156"],
["Christmas Island", "CX", "CXR", "162"],
["Cocos (Keeling) Islands", "CC", "CCK", "166"],
["Colombia", "CO", "COL", "170"],
["Comoros", "KM", "COM", "174"],
["Congo (Brazzaville)", "CG", "COG", "178"],
["Congo (Kinshasa)", "CD", "COD", "180"],
["Cook Islands", "CK", "COK", "184"],
["Costa Rica", "CR", "CRI", "188"],
["Côte d'Ivoire", "CI", "CIV", "384"],
["Croatia", "HR", "HRV", "191"],
["Cuba", "CU", "CUB", "192"],
["Cyprus", "CY", "CYP", "196"],
["Czech Republic", "CZ", "CZE", "203"],
["Denmark", "DK", "DNK", "208"],
["Djibouti", "DJ", "DJI", "262"],
["Dominica", "DM", "DMA", "212"],
["Dominican Republic", "DO", "DOM", "214"],
["Ecuador", "EC", "ECU", "218"],
["Egypt", "EG", "EGY", "818"],
["El Salvador", "SV", "SLV", "222"],
["Equatorial Guinea", "GQ", "GNQ", "226"],
["Eritrea", "ER", "ERI", "232"],
["Estonia", "EE", "EST", "233"],
["Ethiopia", "ET", "ETH", "231"],
["Falkland Islands", "FK", "FLK", "238"],
["Faroe Islands", "FO", "FRO", "234"],
["Fiji", "FJ", "FJI", "242"],
["Finland", "FI", "FIN", "246"],
["France", "FR", "FRA", "250"],
["French Guiana", "GF", "GUF", "254"],
["French Polynesia", "PF", "PYF", "258"],
["French Southern Lands", "TF", "ATF", "260"],
["Gabon", "GA", "GAB", "266"],
["Gambia", "GM", "GMB", "270"],
["Georgia", "GE", "GEO", "268"],
["Germany", "DE", "DEU", "276"],
["Ghana", "GH", "GHA", "288"],
["Gibraltar", "GI", "GIB", "292"],
["Greece", "GR", "GRC", "300"],
["Greenland", "GL", "GRL", "304"],
["Grenada", "GD", "GRD", "308"],
["Guadeloupe", "GP", "GLP", "312"],
["Guam", "GU", "GUM", "316"],
["Guatemala", "GT", "GTM", "320"],
["Guernsey", "GG", "GGY", "831"],
["Guinea", "GN", "GIN", "324"],
["Guinea-Bissau", "GW", "GNB", "624"],
["Guyana", "GY", "GUY", "328"],
["Haiti", "HT", "HTI", "332"],
["Heard and McDonald Islands", "HM", "HMD", "334"],
["Honduras", "HN", "HND", "340"],
["Hong Kong", "HK", "HKG", "344"],
["Hungary", "HU", "HUN", "348"],
["Iceland", "IS", "ISL", "352"],
["India", "IN", "IND", "356"],
["Indonesia", "ID", "IDN", "360"],
["Iran", "IR", "IRN", "364"],
["Iraq", "IQ", "IRQ", "368"],
["Ireland", "IE", "IRL", "372"],
["Isle of Man", "IM", "IMN", "833"],
["Israel", "IL", "ISR", "376"],
["Italy", "IT", "ITA", "380"],
["Jamaica", "JM", "JAM", "388"],
["Japan", "JP", "JPN", "392"],
["Jersey", "JE", "JEY", "832"],
["Jordan", "JO", "JOR", "400"],
["Kazakhstan", "KZ", "KAZ", "398"],
["Kenya", "KE", "KEN", "404"],
["Kiribati", "KI", "KIR", "296"],
["Korea, North", "KP", "PRK", "408"],
["Korea, South", "KR", "KOR", "410"],
["Kuwait", "KW", "KWT", "414"],
["Kyrgyzstan", "KG", "KGZ", "417"],
["Laos", "LA", "LAO", "418"],
["Latvia", "LV", "LVA", "428"],
["Lebanon", "LB", "LBN", "422"],
["Lesotho", "LS", "LSO", "426"],
["Liberia", "LR", "LBR", "430"],
["Libya", "LY", "LBY", "434"],
["Liechtenstein", "LI", "LIE", "438"],
["Lithuania", "LT", "LTU", "440"],
["Luxembourg", "LU", "LUX", "442"],
["Macau", "MO", "MAC", "446"],
["Macedonia", "MK", "MKD", "807"],
["Madagascar", "MG", "MDG", "450"],
["Malawi", "MW", "MWI", "454"],
["Malaysia", "MY", "MYS", "458"],
["Maldives", "MV", "MDV", "462"],
["Mali", "ML", "MLI", "466"],
["Malta", "MT", "MLT", "470"],
["Marshall Islands", "MH", "MHL", "584"],
["Martinique", "MQ", "MTQ", "474"],
["Mauritania", "MR", "MRT", "478"],
["Mauritius", "MU", "MUS", "480"],
["Mayotte", "YT", "MYT", "175"],
["Mexico", "MX", "MEX", "484"],
["Micronesia", "FM", "FSM", "583"],
["Moldova", "MD", "MDA", "498"],
["Monaco", "MC", "MCO", "492"],
["Mongolia", "MN", "MNG", "496"],
["Montenegro", "ME", "MNE", "499"],
["Montserrat", "MS", "MSR", "500"],
["Morocco", "MA", "MAR", "504"],
["Mozambique", "MZ", "MOZ", "508"],
["Myanmar", "MM", "MMR", "104"],
["Namibia", "NA", "NAM", "516"],
["Nauru", "NR", "NRU", "520"],
["Nepal", "NP", "NPL", "524"],
["Netherlands", "NL", "NLD", "528"],
["Netherlands Antilles", "AN", "ANT", "530"],
["New Caledonia", "NC", "NCL", "540"],
["New Zealand", "NZ", "NZL", "554"],
["Nicaragua", "NI", "NIC", "558"],
["Niger", "NE", "NER", "562"],
["Nigeria", "NG", "NGA", "566"],
["Niue", "NU", "NIU", "570"],
["Norfolk Island", "NF", "NFK", "574"],
["Northern Mariana Islands", "MP", "MNP", "580"],
["Norway", "NO", "NOR", "578"],
["Oman", "OM", "OMN", "512"],
["Pakistan", "PK", "PAK", "586"],
["Palau", "PW", "PLW", "585"],
["Palestine", "PS", "PSE", "275"],
["Panama", "PA", "PAN", "591"],
["Papua New Guinea", "PG", "PNG", "598"],
["Paraguay", "PY", "PRY", "600"],
["Peru", "PE", "PER", "604"],
["Philippines", "PH", "PHL", "608"],
["Pitcairn", "PN", "PCN", "612"],
["Poland", "PL", "POL", "616"],
["Portugal", "PT", "PRT", "620"],
["Puerto Rico", "PR", "PRI", "630"],
["Qatar", "QA", "QAT", "634"],
["Reunion", "RE", "REU", "638"],
["Romania", "RO", "ROU", "642"],
["Russian Federation", "RU", "RUS", "643"],
["Rwanda", "RW", "RWA", "646"],
["Saint Barthélemy", "BL", "BLM", "652"],
["Saint Helena", "SH", "SHN", "654"],
["Saint Kitts and Nevis", "KN", "KNA", "659"],
["Saint Lucia", "LC", "LCA", "662"],
["Saint Martin (French part)", "MF", "MAF", "663"],
["Saint Pierre and Miquelon", "PM", "SPM", "666"],
["Saint Vincent and the Grenadines", "VC", "VCT", "670"],
["Samoa", "WS", "WSM", "882"],
["San Marino", "SM", "SMR", "674"],
["Sao Tome and Principe", "ST", "STP", "678"],
["Saudi Arabia", "SA", "SAU", "682"],
["Senegal", "SN", "SEN", "686"],
["Serbia", "RS", "SRB", "688"],
["Seychelles", "SC", "SYC", "690"],
["Sierra Leone", "SL", "SLE", "694"],
["Singapore", "SG", "SGP", "702"],
["Slovakia", "SK", "SVK", "703"],
["Slovenia", "SI", "SVN", "705"],
["Solomon Islands", "SB", "SLB", "090"],
["Somalia", "SO", "SOM", "706"],
["South Africa", "ZA", "ZAF", "710"],
["South Georgia and South Sandwich Islands", "GS", "SGS", "239"],
["Spain", "ES", "ESP", "724"],
["Sri Lanka", "LK", "LKA", "144"],
["Sudan", "SD", "SDN", "736"],
["Suriname", "SR", "SUR", "740"],
["Svalbard and Jan Mayen Islands", "SJ", "SJM", "744"],
["Swaziland", "SZ", "SWZ", "748"],
["Sweden", "SE", "SWE", "752"],
["Switzerland", "CH", "CHE", "756"],
["Syria", "SY", "SYR", "760"],
["Taiwan", "TW", "TWN", "158"],
["Tajikistan", "TJ", "TJK", "762"],
["Tanzania", "TZ", "TZA", "834"],
["Thailand", "TH", "THA", "764"],
["Timor-Leste", "TL", "TLS", "626"],
["Togo", "TG", "TGO", "768"],
["Tokelau", "TK", "TKL", "772"],
["Tonga", "TO", "TON", "776"],
["Trinidad and Tobago", "TT", "TTO", "780"],
["Tunisia", "TN", "TUN", "788"],
["Turkey", "TR", "TUR", "792"],
["Turkmenistan", "TM", "TKM", "795"],
["Turks and Caicos Islands", "TC", "TCA", "796"],
["Tuvalu", "TV", "TUV", "798"],
["Uganda", "UG", "UGA", "800"],
["Ukraine", "UA", "UKR", "804"],
["United Arab Emirates", "AE", "ARE", "784"],
["United Kingdom", "GB", "GBR", "826"],
["United States Minor Outlying Islands", "UM", "UMI", "581"],
["United States of America", "US", "USA", "840"],
["Uruguay", "UY", "URY", "858"],
["Uzbekistan", "UZ", "UZB", "860"],
["Vanuatu", "VU", "VUT", "548"],
["Vatican City", "VA", "VAT", "336"],
["Venezuela", "VE", "VEN", "862"],
["Vietnam", "VN", "VNM", "704"],
["Virgin Islands, British", "VG", "VGB", "092"],
["Virgin Islands, U.S.", "VI", "VIR", "850"],
["Wallis and Futuna Islands", "WF", "WLF", "876"],
["Western Sahara", "EH", "ESH", "732"],
["Yemen", "YE", "YEM", "887"],
["Zambia", "ZM", "ZMB", "894"],
["Zimbabwe", "ZW", "ZWE", "716"]]
end
end
8 changes: 4 additions & 4 deletions lib/braintree/customer.rb
Expand Up @@ -134,15 +134,15 @@ def inspect # :nodoc:
#
# See http://www.braintreepaymentsolutions.com/docs/ruby/transactions/create_from_vault
def sale(transaction_attributes)
warn "[DEPRECATED] sale as an instance method is deprecated. Please use CreditCard.sale"
warn "[DEPRECATED] sale as an instance method is deprecated. Please use Customer.sale"
@gateway.transaction.sale(transaction_attributes.merge(:customer_id => id))
end

# Deprecated. Use Braintree::Customer.sale!
#
# See http://www.braintreepaymentsolutions.com/docs/ruby/transactions/create_from_vault
def sale!(transaction_attributes)
warn "[DEPRECATED] sale! as an instance method is deprecated. Please use CreditCard.sale!"
warn "[DEPRECATED] sale! as an instance method is deprecated. Please use Customer.sale!"
return_object_or_raise(:transaction) { sale(transaction_attributes) }
end

Expand All @@ -155,7 +155,7 @@ def transactions(options = {})
#
# See http://www.braintreepaymentsolutions.com/docs/ruby/customers/update
def update(attributes)
warn "[DEPRECATED] update as an instance method is deprecated. Please use CreditCard.update"
warn "[DEPRECATED] update as an instance method is deprecated. Please use Customer.update"
result = @gateway.customer.update(id, attributes)
if result.success?
copy_instance_variables_from_object result.customer
Expand All @@ -167,7 +167,7 @@ def update(attributes)
#
# See http://www.braintreepaymentsolutions.com/docs/ruby/customers/update
def update!(attributes)
warn "[DEPRECATED] update! as an instance method is deprecated. Please use CreditCard.update!"
warn "[DEPRECATED] update! as an instance method is deprecated. Please use Customer.update!"
return_object_or_raise(:customer) { update(attributes) }
end

Expand Down
1 change: 1 addition & 0 deletions lib/braintree/error_codes.rb
Expand Up @@ -93,6 +93,7 @@ module Subscription
IdIsInUse = "81902"
InconsistentNumberOfBillingCycles = "91908"
InconsistentStartDate = "91917"
InvalidRequestFormat = "91921"
MerchantAccountIdIsInvalid = "91901"
NumberOfBillingCyclesCannotBeBlank = "91912"
NumberOfBillingCyclesIsTooSmall = "91909"
Expand Down
3 changes: 2 additions & 1 deletion lib/braintree/error_result.rb
Expand Up @@ -2,14 +2,15 @@ module Braintree
# See http://www.braintreepaymentsolutions.com/docs/ruby/general/result_objects
class ErrorResult

attr_reader :credit_card_verification, :transaction, :errors, :params, :message
attr_reader :credit_card_verification, :transaction, :subscription, :errors, :params, :message

def initialize(gateway, data) # :nodoc:
@gateway = gateway
@params = data[:params]
@credit_card_verification = CreditCardVerification._new(data[:verification]) if data[:verification]
@message = data[:message]
@transaction = Transaction._new(gateway, data[:transaction]) if data[:transaction]
@subscription = Subscription._new(gateway, data[:subscription]) if data[:subscription]
@errors = Errors.new(data[:errors])
end

Expand Down
9 changes: 8 additions & 1 deletion lib/braintree/subscription.rb
Expand Up @@ -20,10 +20,11 @@ module TrialDurationUnit

attr_reader :days_past_due, :price, :plan_id, :id, :status, :payment_method_token, :merchant_account_id
attr_reader :first_billing_date, :next_billing_date, :billing_period_start_date, :billing_period_end_date
attr_reader :paid_through_date, :balance
attr_reader :trial_period, :trial_duration, :trial_duration_unit
attr_reader :failure_count
attr_reader :transactions
attr_reader :next_bill_amount
attr_reader :next_billing_period_amount
attr_reader :number_of_billing_cycles, :billing_day_of_month
attr_reader :add_ons, :discounts

Expand Down Expand Up @@ -59,12 +60,18 @@ def self.update(subscription_id, attributes)
def initialize(gateway, attributes) # :nodoc:
@gateway = gateway
set_instance_variables_from_hash(attributes)
@balance = Util.to_big_decimal(balance)
@price = Util.to_big_decimal(price)
transactions.map! { |attrs| Transaction._new(gateway, attrs) }
add_ons.map! { |attrs| AddOn._new(attrs) }
discounts.map! { |attrs| Discount._new(attrs) }
end

def next_bill_amount
warn "[DEPRECATED] Subscription.next_bill_amount is deprecated. Please use Subscription.next_billing_period_amount"
@next_bill_amount
end

def never_expires?
@never_expires
end
Expand Down

0 comments on commit 2c31b9c

Please sign in to comment.