Module: Dugway

Defined in:
lib/dugway/cli.rb,
lib/dugway/cart.rb,
lib/dugway/store.rb,
lib/dugway/theme.rb,
lib/dugway/logger.rb,
lib/dugway/request.rb,
lib/dugway/version.rb,
lib/dugway/template.rb,
lib/dugway/cli/build.rb,
lib/dugway/liquifier.rb,
lib/dugway/cli/create.rb,
lib/dugway/cli/server.rb,
lib/dugway/controller.rb,
lib/dugway/application.rb,
lib/dugway/cli/validate.rb,
lib/dugway/liquid/tags/get.rb,
lib/dugway/path_interpreter.rb,
lib/dugway/liquid/tags/paginate.rb,
lib/dugway/contact_form_validator.rb,
lib/dugway/liquid/drops/base_drop.rb,
lib/dugway/liquid/drops/cart_drop.rb,
lib/dugway/liquid/drops/page_drop.rb,
lib/dugway/liquid/drops/image_drop.rb,
lib/dugway/liquid/drops/pages_drop.rb,
lib/dugway/liquid/drops/theme_drop.rb,
lib/dugway/liquid/drops/artist_drop.rb,
lib/dugway/liquid/drops/account_drop.rb,
lib/dugway/liquid/drops/artists_drop.rb,
lib/dugway/liquid/drops/contact_drop.rb,
lib/dugway/liquid/drops/country_drop.rb,
lib/dugway/liquid/drops/product_drop.rb,
lib/dugway/liquid/drops/category_drop.rb,
lib/dugway/liquid/drops/currency_drop.rb,
lib/dugway/liquid/drops/features_drop.rb,
lib/dugway/liquid/drops/products_drop.rb,
lib/dugway/liquid/filters/url_filters.rb,
lib/dugway/liquid/drops/cart_item_drop.rb,
lib/dugway/liquid/filters/core_filters.rb,
lib/dugway/liquid/filters/font_filters.rb,
lib/dugway/liquid/filters/util_filters.rb,
lib/dugway/liquid/drops/categories_drop.rb,
lib/dugway/liquid/drops/option_group_drop.rb,
lib/dugway/liquid/drops/theme_images_drop.rb,
lib/dugway/liquid/drops/translations_drop.rb,
lib/dugway/liquid/drops/product_option_drop.rb,
lib/dugway/liquid/drops/shipping_option_drop.rb,
lib/dugway/liquid/filters/comparison_filters.rb,
lib/dugway/liquid/filters/default_pagination.rb,
lib/dugway/liquid/drops/related_products_drop.rb,
lib/dugway/liquid/drops/theme_image_sets_drop.rb,
lib/dugway/liquid/drops/option_group_value_drop.rb,
lib/dugway/liquid/filters/instant_checkout_filter.rb,
lib/dugway.rb

Defined Under Namespace

Modules: Cli, Drops, Filters, Tags Classes: Application, Cart, ContactFormValidator, Controller, Item, Liquifier, Logger, PathInterpreter, Request, Store, Template, Theme

Constant Summary collapse

VERSION =
"1.3.3"

Class Method Summary collapse

Class Method Details

.application(options = {}) ⇒ Object



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# File 'lib/dugway.rb', line 70

def application(options={})
  @options = options

  BigCartel::CurrencyLocales.insert
  I18n.default_locale = 'en-US'
  
  # Set locale with fallback handling for invalid or missing locales
  begin
    requested_locale = Dugway.store.locale
    if requested_locale
      # Try to set the locale - if it's completely invalid (like 'eu'), 
      # this will fall back to default_locale due to enforce_available_locales = false
      I18n.locale = requested_locale
    else
      I18n.locale = I18n.default_locale
    end
  rescue I18n::InvalidLocale
    # If somehow we still get an invalid locale error, fall back to default
    I18n.locale = I18n.default_locale
  end

  Rack::Builder.app do
    use Rack::Session::Cookie, :secret => 'stopwarningmeaboutnothavingasecret'
    use BetterErrors::Middleware

    if options[:log]
      BetterErrors.logger = Dugway.logger
      use Rack::CommonLogger, Dugway.logger
    end

    run Application.new
  end
end

.cartObject



114
115
116
# File 'lib/dugway.rb', line 114

def cart
  @cart ||= Cart.new
end

.loggerObject



122
123
124
# File 'lib/dugway.rb', line 122

def logger
  @logger ||= Logger.new
end

.optionsObject



126
127
128
# File 'lib/dugway.rb', line 126

def options
  @options
end

.source_dirObject



118
119
120
# File 'lib/dugway.rb', line 118

def source_dir
  @source_dir ||= File.join(Dir.pwd, 'source')
end

.storeObject



104
105
106
107
108
# File 'lib/dugway.rb', line 104

def store
  store_options = options && options[:store] ? options[:store] : {}
  subdomain = store_options[:subdomain] || 'dugway'
  @store ||= Store.new(subdomain, store_options)
end

.themeObject



110
111
112
# File 'lib/dugway.rb', line 110

def theme
  @theme ||= Theme.new(options && options[:customization] || {})
end