Module: MercadoPublicoCl

Defined in:
lib/mercado_publico_cl.rb,
lib/mercado_publico_cl/query.rb,
lib/mercado_publico_cl/client.rb,
lib/mercado_publico_cl/errors.rb,
lib/mercado_publico_cl/railtie.rb,
lib/mercado_publico_cl/retryer.rb,
lib/mercado_publico_cl/version.rb,
lib/mercado_publico_cl/enums/base.rb,
lib/mercado_publico_cl/configuration.rb,
lib/mercado_publico_cl/date_formatter.rb,
lib/mercado_publico_cl/enums/currency.rb,
lib/mercado_publico_cl/resources/base.rb,
lib/mercado_publico_cl/enums/time_unit.rb,
lib/mercado_publico_cl/resources/tender.rb,
lib/mercado_publico_cl/enums/tender_type.rb,
lib/mercado_publico_cl/jobs/sync_tenders.rb,
lib/mercado_publico_cl/resources/supplier.rb,
lib/mercado_publico_cl/enums/dispatch_type.rb,
lib/mercado_publico_cl/enums/tender_status.rb,
lib/mercado_publico_cl/value_objects/contact.rb,
lib/mercado_publico_cl/resources/public_agency.rb,
lib/mercado_publico_cl/enums/administrative_act.rb,
lib/mercado_publico_cl/resources/purchase_order.rb,
lib/mercado_publico_cl/enums/purchase_order_type.rb,
lib/mercado_publico_cl/jobs/sync_purchase_orders.rb,
lib/mercado_publico_cl/value_objects/tender_item.rb,
lib/mercado_publico_cl/value_objects/tender_award.rb,
lib/mercado_publico_cl/value_objects/tender_buyer.rb,
lib/mercado_publico_cl/value_objects/tender_dates.rb,
lib/mercado_publico_cl/enums/estimated_amount_type.rb,
lib/mercado_publico_cl/enums/purchase_order_status.rb,
lib/mercado_publico_cl/enums/supplier_order_status.rb,
lib/mercado_publico_cl/enums/tender_payment_method.rb,
lib/mercado_publico_cl/value_objects/tender_contact.rb,
lib/mercado_publico_cl/value_objects/purchase_order_item.rb,
lib/mercado_publico_cl/value_objects/purchase_order_buyer.rb,
lib/mercado_publico_cl/value_objects/purchase_order_dates.rb,
lib/mercado_publico_cl/enums/purchase_order_payment_method.rb,
lib/mercado_publico_cl/value_objects/purchase_order_vendor.rb,
lib/generators/mercado_publico_cl/install/install_generator.rb

Defined Under Namespace

Modules: DateFormatter, Enums, Generators, Jobs, Resources Classes: ApiError, Client, Configuration, ConfigurationError, Contact, Error, InvalidQueryError, InvalidTicketError, MissingTicketError, NotFoundError, POBuyer, PODates, POItem, POVendor, Query, Railtie, RateLimitError, Retryer, TenderAward, TenderBuyer, TenderContact, TenderDates, TenderItem, TenderItemAward, TimeoutError

Constant Summary collapse

CONFIG_MUTEX =

Protege la primera inicialización en entornos multi-thread (Puma/Sidekiq).

Mutex.new
Tender =
Resources::Tender
PurchaseOrder =
Resources::PurchaseOrder
Supplier =
Resources::Supplier
PublicAgency =
Resources::PublicAgency
VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.clientObject



71
72
73
# File 'lib/mercado_publico_cl.rb', line 71

def client
  @client || CONFIG_MUTEX.synchronize { @client ||= Client.new(configuration) }
end

.configurationObject



56
57
58
# File 'lib/mercado_publico_cl.rb', line 56

def configuration
  @configuration || CONFIG_MUTEX.synchronize { @configuration ||= Configuration.new }
end

.configure {|configuration| ... } ⇒ Object

Yields:



60
61
62
# File 'lib/mercado_publico_cl.rb', line 60

def configure
  yield(configuration)
end

.reset!Object



64
65
66
67
68
69
# File 'lib/mercado_publico_cl.rb', line 64

def reset!
  CONFIG_MUTEX.synchronize do
    @configuration = Configuration.new
    @client = nil
  end
end

.reset_client!Object



84
85
86
# File 'lib/mercado_publico_cl.rb', line 84

def reset_client!
  CONFIG_MUTEX.synchronize { @client = nil }
end

.todayObject

Fecha “de hoy” según la hora de Chile (la API indexa por fecha chilena). Usa TZInfo si está disponible (Rails lo trae); si no, offset fijo -04:00.



77
78
79
80
81
82
# File 'lib/mercado_publico_cl.rb', line 77

def today
  zone = configuration.time_zone
  return TZInfo::Timezone.get(zone).to_local(Time.now.utc).to_date if zone && defined?(TZInfo::Timezone)

  Time.now.getutc.getlocal(Configuration::FALLBACK_UTC_OFFSET).to_date
end