mercadolibre 0.14.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/mercadolibre.rb +4 -80
- data/lib/mercadolibre/api.rb +56 -20
- data/lib/mercadolibre/core/auth.rb +8 -12
- data/lib/mercadolibre/core/categories_and_listings.rb +8 -24
- data/lib/mercadolibre/core/collections.rb +10 -0
- data/lib/mercadolibre/core/items_and_searches.rb +25 -60
- data/lib/mercadolibre/core/locations_and_currencies.rb +8 -29
- data/lib/mercadolibre/core/order_management.rb +77 -47
- data/lib/mercadolibre/core/questions.rb +10 -27
- data/lib/mercadolibre/core/shippings.rb +2 -4
- data/lib/mercadolibre/core/users.rb +5 -13
- data/lib/mercadolibre/version.rb +1 -1
- data/lib/mercadopago/api.rb +55 -20
- data/lib/mercadopago/core/auth.rb +12 -18
- data/lib/mercadopago/core/payments.rb +3 -12
- metadata +3 -77
- data/lib/mercadolibre/entity/address.rb +0 -40
- data/lib/mercadolibre/entity/address_agency.rb +0 -21
- data/lib/mercadolibre/entity/answer.rb +0 -25
- data/lib/mercadolibre/entity/atm_transfer_reference.rb +0 -21
- data/lib/mercadolibre/entity/auth.rb +0 -21
- data/lib/mercadolibre/entity/billing_info.rb +0 -21
- data/lib/mercadolibre/entity/card_configuration.rb +0 -23
- data/lib/mercadolibre/entity/card_issuer.rb +0 -21
- data/lib/mercadolibre/entity/category.rb +0 -28
- data/lib/mercadolibre/entity/category_settings.rb +0 -26
- data/lib/mercadolibre/entity/city.rb +0 -27
- data/lib/mercadolibre/entity/collector.rb +0 -21
- data/lib/mercadolibre/entity/cost_components.rb +0 -21
- data/lib/mercadolibre/entity/country.rb +0 -26
- data/lib/mercadolibre/entity/currency.rb +0 -21
- data/lib/mercadolibre/entity/currency_conversion_ratio.rb +0 -21
- data/lib/mercadolibre/entity/featured_item.rb +0 -28
- data/lib/mercadolibre/entity/feedback.rb +0 -35
- data/lib/mercadolibre/entity/feedback_reply.rb +0 -25
- data/lib/mercadolibre/entity/geolocation.rb +0 -21
- data/lib/mercadolibre/entity/gtin.rb +0 -21
- data/lib/mercadolibre/entity/item.rb +0 -55
- data/lib/mercadolibre/entity/item_attribute.rb +0 -21
- data/lib/mercadolibre/entity/item_description.rb +0 -27
- data/lib/mercadolibre/entity/item_payment_method.rb +0 -21
- data/lib/mercadolibre/entity/item_picture.rb +0 -21
- data/lib/mercadolibre/entity/item_shipping.rb +0 -22
- data/lib/mercadolibre/entity/listing_exposure.rb +0 -21
- data/lib/mercadolibre/entity/listing_price.rb +0 -26
- data/lib/mercadolibre/entity/listing_type.rb +0 -21
- data/lib/mercadolibre/entity/mediation.rb +0 -25
- data/lib/mercadolibre/entity/mediation_interaction.rb +0 -21
- data/lib/mercadolibre/entity/municipality.rb +0 -21
- data/lib/mercadolibre/entity/neighborhood.rb +0 -21
- data/lib/mercadolibre/entity/order.rb +0 -44
- data/lib/mercadolibre/entity/order_coupon.rb +0 -21
- data/lib/mercadolibre/entity/order_feedback.rb +0 -25
- data/lib/mercadolibre/entity/order_item.rb +0 -25
- data/lib/mercadolibre/entity/order_note.rb +0 -25
- data/lib/mercadolibre/entity/order_shipping.rb +0 -33
- data/lib/mercadolibre/entity/payment.rb +0 -35
- data/lib/mercadolibre/entity/payment_method.rb +0 -33
- data/lib/mercadolibre/entity/payment_plan.rb +0 -21
- data/lib/mercadolibre/entity/payment_promotion.rb +0 -28
- data/lib/mercadolibre/entity/phone.rb +0 -21
- data/lib/mercadolibre/entity/product_identifier.rb +0 -25
- data/lib/mercadolibre/entity/question.rb +0 -30
- data/lib/mercadolibre/entity/search_location.rb +0 -27
- data/lib/mercadolibre/entity/shipment.rb +0 -41
- data/lib/mercadolibre/entity/shipment_status_history.rb +0 -24
- data/lib/mercadolibre/entity/shipping_delivery.rb +0 -25
- data/lib/mercadolibre/entity/shipping_item.rb +0 -21
- data/lib/mercadolibre/entity/shipping_option.rb +0 -28
- data/lib/mercadolibre/entity/shipping_speed.rb +0 -21
- data/lib/mercadolibre/entity/site.rb +0 -28
- data/lib/mercadolibre/entity/site_domain.rb +0 -21
- data/lib/mercadolibre/entity/site_trend.rb +0 -21
- data/lib/mercadolibre/entity/state.rb +0 -27
- data/lib/mercadolibre/entity/user.rb +0 -34
- data/lib/mercadolibre/entity/zip_code.rb +0 -29
- data/lib/mercadopago/entity/additional_info.rb +0 -27
- data/lib/mercadopago/entity/address.rb +0 -21
- data/lib/mercadopago/entity/auth.rb +0 -21
- data/lib/mercadopago/entity/collector.rb +0 -29
- data/lib/mercadopago/entity/fee_detail.rb +0 -21
- data/lib/mercadopago/entity/identification.rb +0 -21
- data/lib/mercadopago/entity/money_request.rb +0 -32
- data/lib/mercadopago/entity/order.rb +0 -21
- data/lib/mercadopago/entity/payer.rb +0 -27
- data/lib/mercadopago/entity/payment.rb +0 -83
- data/lib/mercadopago/entity/phone.rb +0 -21
- data/lib/mercadopago/entity/refund.rb +0 -25
- data/lib/mercadopago/entity/shipments.rb +0 -21
- data/lib/mercadopago/entity/source.rb +0 -21
- data/lib/mercadopago/entity/transaction_details.rb +0 -28
@@ -1,35 +0,0 @@
|
|
1
|
-
module Mercadolibre
|
2
|
-
module Entity
|
3
|
-
class Payment
|
4
|
-
def self.attr_list
|
5
|
-
[:id, :order_id, :payer_id, :collector, :card_id, :site_id, :reason, :payment_method_id,
|
6
|
-
:currency_id, :installments, :issuer_id, :atm_transfer_reference, :coupon_id, :activation_uri,
|
7
|
-
:operation_type, :payment_type, :available_actions, :status, :status_code, :status_detail,
|
8
|
-
:transaction_amount, :shipping_cost, :coupon_amount, :overpaid_amount, :total_paid_amount,
|
9
|
-
:date_created, :date_last_modified]
|
10
|
-
end
|
11
|
-
|
12
|
-
attr_reader *attr_list
|
13
|
-
|
14
|
-
def initialize(attributes={})
|
15
|
-
attributes.each do |k, v|
|
16
|
-
if ['date_last_modified', 'date_created'].include?(k.to_s)
|
17
|
-
self.send("#{k}=", Time.parse(v)) unless v.nil?
|
18
|
-
elsif k.to_s == 'collector'
|
19
|
-
self.collector = Collector.new(v) unless v.nil?
|
20
|
-
elsif k.to_s == 'atm_transfer_reference'
|
21
|
-
self.atm_transfer_reference = AtmTransferReference.new(v) unless v.nil?
|
22
|
-
else
|
23
|
-
self.send("#{k}=", v) if self.respond_to?(k)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
self.date_last_modified = date_created if date_last_modified.nil?
|
28
|
-
end
|
29
|
-
|
30
|
-
private
|
31
|
-
|
32
|
-
attr_writer *attr_list
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
module Mercadolibre
|
2
|
-
module Entity
|
3
|
-
class PaymentMethod
|
4
|
-
def self.attr_list
|
5
|
-
[:id, :name, :payment_type_id, :card_issuer, :site_id, :thumbnail, :secure_thumbnail,
|
6
|
-
:labels, :min_accreditation_days, :max_accreditation_days, :payer_costs,
|
7
|
-
:exceptions_by_card_issuer, :card_configuration]
|
8
|
-
end
|
9
|
-
|
10
|
-
attr_reader *attr_list
|
11
|
-
|
12
|
-
def initialize(attributes={})
|
13
|
-
attributes.each do |k, v|
|
14
|
-
if k.to_s == 'card_issuer'
|
15
|
-
self.card_issuer = CardIssuer.new(v) unless v.nil?
|
16
|
-
elsif k.to_s == 'payer_costs'
|
17
|
-
self.payer_costs = v.map { |x| PaymentPlan.new(x) } unless v.nil?
|
18
|
-
elsif k.to_s == 'exceptions_by_card_issuer'
|
19
|
-
self.exceptions_by_card_issuer = v.map { |x| PaymentPromotion.new(x) } unless v.nil?
|
20
|
-
elsif k.to_s == 'card_configuration'
|
21
|
-
self.card_configuration = v.map { |x| CardConfiguration.new(x) } unless v.nil?
|
22
|
-
else
|
23
|
-
self.send("#{k}=", v) if self.respond_to?(k)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
private
|
29
|
-
|
30
|
-
attr_writer *attr_list
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
module Mercadolibre
|
2
|
-
module Entity
|
3
|
-
class PaymentPlan
|
4
|
-
def self.attr_list
|
5
|
-
[:installments, :installment_rate, :labels, :min_allowed_amount, :max_allowed_amount]
|
6
|
-
end
|
7
|
-
|
8
|
-
attr_reader *attr_list
|
9
|
-
|
10
|
-
def initialize(attributes={})
|
11
|
-
attributes.each do |k, v|
|
12
|
-
self.send("#{k}=", v) if self.respond_to?(k)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
|
18
|
-
attr_writer *attr_list
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
module Mercadolibre
|
2
|
-
module Entity
|
3
|
-
class PaymentPromotion
|
4
|
-
def self.attr_list
|
5
|
-
[:card_issuer, :labels, :thumbnail, :secure_thumbnail,
|
6
|
-
:payer_costs, :accepted_bins, :total_financial_cost]
|
7
|
-
end
|
8
|
-
|
9
|
-
attr_reader *attr_list
|
10
|
-
|
11
|
-
def initialize(attributes={})
|
12
|
-
attributes.each do |k, v|
|
13
|
-
if k.to_s == 'card_issuer'
|
14
|
-
self.card_issuer = CardIssuer.new(v) unless v.nil?
|
15
|
-
elsif k.to_s == 'payer_costs'
|
16
|
-
self.payer_costs = v.map { |x| PaymentPlan.new(x) } unless v.nil?
|
17
|
-
else
|
18
|
-
self.send("#{k}=", v) if self.respond_to?(k)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
private
|
24
|
-
|
25
|
-
attr_writer *attr_list
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
module Mercadolibre
|
2
|
-
module Entity
|
3
|
-
class Phone
|
4
|
-
def self.attr_list
|
5
|
-
[:area_code, :number, :extension]
|
6
|
-
end
|
7
|
-
|
8
|
-
attr_reader *attr_list
|
9
|
-
|
10
|
-
def initialize(attributes={})
|
11
|
-
attributes.each do |k, v|
|
12
|
-
self.send("#{k}=", v) if self.respond_to?(k)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
|
18
|
-
attr_writer *attr_list
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
module Mercadolibre
|
2
|
-
module Entity
|
3
|
-
class ProductIdentifier
|
4
|
-
def self.attr_list
|
5
|
-
[:brand, :mpn, :gtins]
|
6
|
-
end
|
7
|
-
|
8
|
-
attr_reader *attr_list
|
9
|
-
|
10
|
-
def initialize(attributes={})
|
11
|
-
attributes.each do |k, v|
|
12
|
-
if k.to_s == 'gtins'
|
13
|
-
self.gtins = v.map { |x| Gtin.new(x) } unless v.nil?
|
14
|
-
else
|
15
|
-
self.send("#{k}=", v) if self.respond_to?(k)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
private
|
21
|
-
|
22
|
-
attr_writer *attr_list
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
module Mercadolibre
|
2
|
-
module Entity
|
3
|
-
class Question
|
4
|
-
def self.attr_list
|
5
|
-
[:date_created, :item_id, :seller_id, :status, :text,
|
6
|
-
:id, :deleted_from_listing, :hold, :answer, :user_id]
|
7
|
-
end
|
8
|
-
|
9
|
-
attr_reader *attr_list
|
10
|
-
|
11
|
-
def initialize(attributes={})
|
12
|
-
attributes.each do |k, v|
|
13
|
-
if k.to_s == 'answer'
|
14
|
-
self.answer = Answer.new(v) unless v.nil?
|
15
|
-
elsif k.to_s == 'from'
|
16
|
-
self.user_id = v['id'] unless v.nil?
|
17
|
-
elsif k.to_s == 'date_created'
|
18
|
-
self.date_created = Time.parse(v) unless v.nil?
|
19
|
-
else
|
20
|
-
self.send("#{k}=", v) if self.respond_to?(k)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
private
|
26
|
-
|
27
|
-
attr_writer *attr_list
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
module Mercadolibre
|
2
|
-
module Entity
|
3
|
-
class SearchLocation
|
4
|
-
def self.attr_list
|
5
|
-
[:neighborhood, :city, :state]
|
6
|
-
end
|
7
|
-
|
8
|
-
attr_reader *attr_list
|
9
|
-
|
10
|
-
def initialize(attributes={})
|
11
|
-
attributes.each do |k, v|
|
12
|
-
if k.to_s == 'state'
|
13
|
-
self.state = State.new(v) unless v.nil?
|
14
|
-
elsif k.to_s == 'city'
|
15
|
-
self.city = City.new(v) unless v.nil?
|
16
|
-
elsif k.to_s == 'neighborhood'
|
17
|
-
self.neighborhood = Neighborhood.new(v) unless v.nil?
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
private
|
23
|
-
|
24
|
-
attr_writer *attr_list
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
module Mercadolibre
|
2
|
-
module Entity
|
3
|
-
class Shipment
|
4
|
-
def self.attr_list
|
5
|
-
[:id, :mode, :created_by, :order_id, :order_cost, :site_id, :status, :substatus,
|
6
|
-
:status_history, :date_created, :last_updated, :tracking_number, :tracking_method,
|
7
|
-
:service_id, :sender_id, :sender_address, :receiver_id, :receiver_address, :shipping_items,
|
8
|
-
:shipping_option, :comments, :date_first_printed, :market_place, :return_details,
|
9
|
-
:application_id, :return_tracking_number, :cost_components, :picking_type]
|
10
|
-
end
|
11
|
-
|
12
|
-
attr_reader *attr_list
|
13
|
-
|
14
|
-
def initialize(attributes={})
|
15
|
-
attributes.each do |k, v|
|
16
|
-
if ['date_created', 'last_updated', 'date_first_printed'].include?(k.to_s)
|
17
|
-
self.send("#{k}=", Time.parse(v)) unless v.nil?
|
18
|
-
elsif k.to_s == 'status_history'
|
19
|
-
self.status_history = ShipmentStatusHistory.new(v) unless v.nil?
|
20
|
-
elsif k.to_s == 'sender_address'
|
21
|
-
self.sender_address = Address.new(v) unless v.nil?
|
22
|
-
elsif k.to_s == 'receiver_address'
|
23
|
-
self.receiver_address = Address.new(v) unless v.nil?
|
24
|
-
elsif k.to_s == 'shipping_items'
|
25
|
-
self.shipping_items = v.map { |x| ShippingItem.new(x) }
|
26
|
-
elsif k.to_s == 'shipping_option'
|
27
|
-
self.shipping_option = ShippingOption.new(v) unless v.nil?
|
28
|
-
elsif k.to_s == 'cost_components'
|
29
|
-
self.cost_components = CostComponents.new(v) unless v.nil?
|
30
|
-
else
|
31
|
-
self.send("#{k}=", v) if self.respond_to?(k)
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
private
|
37
|
-
|
38
|
-
attr_writer *attr_list
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
module Mercadolibre
|
2
|
-
module Entity
|
3
|
-
class ShipmentStatusHistory
|
4
|
-
def self.attr_list
|
5
|
-
[:date_handling, :date_shipped, :date_delivered, :date_not_delivered,
|
6
|
-
:date_returned, :date_cancelled, :date_ready_to_ship, :date_first_visit]
|
7
|
-
end
|
8
|
-
|
9
|
-
attr_reader *attr_list
|
10
|
-
|
11
|
-
def initialize(attributes={})
|
12
|
-
attributes.each do |k, v|
|
13
|
-
if self.respond_to?(k)
|
14
|
-
self.send("#{k}=", Time.parse(v)) unless v.nil?
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
private
|
20
|
-
|
21
|
-
attr_writer *attr_list
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
module Mercadolibre
|
2
|
-
module Entity
|
3
|
-
class ShippingDelivery
|
4
|
-
def self.attr_list
|
5
|
-
[:date, :time_from, :time_to]
|
6
|
-
end
|
7
|
-
|
8
|
-
attr_reader *attr_list
|
9
|
-
|
10
|
-
def initialize(attributes={})
|
11
|
-
attributes.each do |k, v|
|
12
|
-
if ['date', 'time_from', 'time_to'].include?(k.to_s)
|
13
|
-
self.send("#{k}=", Time.parse(v)) unless v.nil?
|
14
|
-
else
|
15
|
-
self.send("#{k}=", v) if self.respond_to?(k)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
private
|
21
|
-
|
22
|
-
attr_writer *attr_list
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
module Mercadolibre
|
2
|
-
module Entity
|
3
|
-
class ShippingItem
|
4
|
-
def self.attr_list
|
5
|
-
[:id, :description, :quantity, :dimensions]
|
6
|
-
end
|
7
|
-
|
8
|
-
attr_reader *attr_list
|
9
|
-
|
10
|
-
def initialize(attributes={})
|
11
|
-
attributes.each do |k, v|
|
12
|
-
self.send("#{k}=", v) if self.respond_to?(k)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
|
18
|
-
attr_writer *attr_list
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
module Mercadolibre
|
2
|
-
module Entity
|
3
|
-
class ShippingOption
|
4
|
-
def self.attr_list
|
5
|
-
[:id, :shipping_method_id, :name, :currency_id, :list_cost,
|
6
|
-
:cost, :speed, :estimated_delivery]
|
7
|
-
end
|
8
|
-
|
9
|
-
attr_reader *attr_list
|
10
|
-
|
11
|
-
def initialize(attributes={})
|
12
|
-
attributes.each do |k, v|
|
13
|
-
if k.to_s == 'speed'
|
14
|
-
self.speed = ShippingSpeed.new(v) unless v.nil?
|
15
|
-
elsif k.to_s == 'estimated_delivery'
|
16
|
-
self.estimated_delivery = ShippingDelivery.new(v) unless v.nil?
|
17
|
-
else
|
18
|
-
self.send("#{k}=", v) if self.respond_to?(k)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
private
|
24
|
-
|
25
|
-
attr_writer *attr_list
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
module Mercadolibre
|
2
|
-
module Entity
|
3
|
-
class ShippingSpeed
|
4
|
-
def self.attr_list
|
5
|
-
[:shipping, :handling]
|
6
|
-
end
|
7
|
-
|
8
|
-
attr_reader *attr_list
|
9
|
-
|
10
|
-
def initialize(attributes={})
|
11
|
-
attributes.each do |k, v|
|
12
|
-
self.send("#{k}=", v) if self.respond_to?(k)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
|
18
|
-
attr_writer *attr_list
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
module Mercadolibre
|
2
|
-
module Entity
|
3
|
-
class Site
|
4
|
-
def self.attr_list
|
5
|
-
[:id, :name, :country_id, :sale_fees_mode, :mercadopago_version, :default_currency_id,
|
6
|
-
:currencies, :immediate_payment, :payment_method_ids, :categories]
|
7
|
-
end
|
8
|
-
|
9
|
-
attr_reader *attr_list
|
10
|
-
|
11
|
-
def initialize(attributes={})
|
12
|
-
attributes.each do |k, v|
|
13
|
-
if k.to_s == 'currencies'
|
14
|
-
self.states = v.map { |x| Currency.new(x) } unless v.nil?
|
15
|
-
elsif k.to_s == 'categories'
|
16
|
-
self.categories = v.map { |x| Category.new(x) } unless v.nil?
|
17
|
-
else
|
18
|
-
self.send("#{k}=", v) if self.respond_to?(k)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
private
|
24
|
-
|
25
|
-
attr_writer *attr_list
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
module Mercadolibre
|
2
|
-
module Entity
|
3
|
-
class SiteDomain
|
4
|
-
def self.attr_list
|
5
|
-
[:id, :site_id, :country_id, :locale, :tag]
|
6
|
-
end
|
7
|
-
|
8
|
-
attr_reader *attr_list
|
9
|
-
|
10
|
-
def initialize(attributes={})
|
11
|
-
attributes.each do |k, v|
|
12
|
-
self.send("#{k}=", v) if self.respond_to?(k)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
|
18
|
-
attr_writer *attr_list
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|