Class: YmlBuilder::CommonOffer
- Inherits:
-
Object
- Object
- YmlBuilder::CommonOffer
- Defined in:
- lib/yml_builder/common_offer.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#available ⇒ Object
Наличие товара на складе.
-
#bid ⇒ Object
Returns the value of attribute bid.
-
#id ⇒ Object
Уникальный идентификатор товара.
-
#mandatories ⇒ Object
Список обязательных полей для данного типа оффера.
-
#type ⇒ Object
Уникальный идентификатор типа товара, в соответствии с классификацией Yandex.MArket.
Instance Method Summary collapse
-
#add_cover_picture(url) ⇒ Object
Метод добавляет ссылку на фотографию товара в начало списка, и ограничивает список 10-ю фотографиями.
-
#add_param(name:, unit: nil, value:) ⇒ Object
Метод добавляет характеристики товара (для секции ‘param’).
-
#add_picture(url) ⇒ Object
Метод добавляет ссылку на фотографию товара в конец списка, и ограничивает список 10-ю фотографиями.
-
#initialize ⇒ CommonOffer
constructor
A new instance of CommonOffer.
-
#to_yml(ident = 4) ⇒ String
Метод формирует фрагмент YML файла каталога Яндекс.Маркет для одного товара.
Constructor Details
#initialize ⇒ CommonOffer
Returns a new instance of CommonOffer.
24 25 26 |
# File 'lib/yml_builder/common_offer.rb', line 24 def initialize init_class end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_sym, *arguments, &block) ⇒ Object (private)
97 98 99 100 101 102 103 |
# File 'lib/yml_builder/common_offer.rb', line 97 def method_missing(method_sym, *arguments, &block) if @params.include?(method_sym.to_s.gsub(/=$/, '').to_sym) processing_method(method_sym, arguments.first) else super end end |
Instance Attribute Details
#available ⇒ Object
Наличие товара на складе
17 18 19 |
# File 'lib/yml_builder/common_offer.rb', line 17 def available @available end |
#bid ⇒ Object
Returns the value of attribute bid.
18 19 20 |
# File 'lib/yml_builder/common_offer.rb', line 18 def bid @bid end |
#id ⇒ Object
Уникальный идентификатор товара
7 8 9 |
# File 'lib/yml_builder/common_offer.rb', line 7 def id @id end |
#mandatories ⇒ Object
Список обязательных полей для данного типа оффера
21 22 23 |
# File 'lib/yml_builder/common_offer.rb', line 21 def mandatories @mandatories end |
#type ⇒ Object
Уникальный идентификатор типа товара, в соответствии с классификацией Yandex.MArket. Устанавливается в конструкторе
12 13 14 |
# File 'lib/yml_builder/common_offer.rb', line 12 def type @type end |
Instance Method Details
#add_cover_picture(url) ⇒ Object
Метод добавляет ссылку на фотографию товара в начало списка, и ограничивает список 10-ю фотографиями
47 48 49 50 51 52 |
# File 'lib/yml_builder/common_offer.rb', line 47 def add_cover_picture(url) @picture.unshift(url) @picture.uniq! warn "Предупреждение: число картинок превышает 10 (offer_id=#{@id}). Сокращаем до 10" if @picture.count > 10 @picture = @picture[0, 9] end |
#add_param(name:, unit: nil, value:) ⇒ Object
Метод добавляет характеристики товара (для секции ‘param’)
64 65 66 |
# File 'lib/yml_builder/common_offer.rb', line 64 def add_param(name:, unit: nil, value:) @meta[name] = { unit: unit, value: value } end |
#add_picture(url) ⇒ Object
Метод добавляет ссылку на фотографию товара в конец списка, и ограничивает список 10-ю фотографиями
34 35 36 37 38 39 |
# File 'lib/yml_builder/common_offer.rb', line 34 def add_picture(url) @picture << url @picture.uniq! warn "Предупреждение: число картинок превышает 10 (offer_id=#{@id}). Сокращаем до 10" if @picture.count > 10 @picture = @picture[0, 9] end |
#to_yml(ident = 4) ⇒ String
Метод формирует фрагмент YML файла каталога Яндекс.Маркет для одного товара
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/yml_builder/common_offer.rb', line 73 def to_yml(ident = 4) out = Array.new out << header_line @params.each do |key, value| if [:picture, :param].include?(key) out += to_yml_subsections(key) elsif @mandatories.include?(key) out << to_yml_mandatories(key, value) else out << to_yml_optional(key, value) end end out.compact! out << out.map! { |line| ' '.rjust(ident, ' ') + line } out.join("\n") end |