Module: Netfira::WebConnect

Defined in:
lib/netfira/web_connect/rack_app/action.rb,
lib/netfira/web_connect.rb,
lib/netfira/web_connect/amqp.rb,
lib/netfira/web_connect/model.rb,
lib/netfira/web_connect/events.rb,
lib/netfira/web_connect/models.rb,
lib/netfira/web_connect/schema.rb,
lib/netfira/web_connect/version.rb,
lib/netfira/web_connect/rack_app.rb,
lib/netfira/web_connect/migration.rb,
lib/netfira/web_connect/model/record.rb,
lib/netfira/web_connect/models/image.rb,
lib/netfira/web_connect/models/order.rb,
lib/netfira/web_connect/schema/table.rb,
lib/netfira/web_connect/configuration.rb,
lib/netfira/web_connect/model/support.rb,
lib/netfira/web_connect/model/relation.rb,
lib/netfira/web_connect/request_filter.rb,
lib/netfira/web_connect/components/guid.rb,
lib/netfira/web_connect/model/record/tree.rb,
lib/netfira/web_connect/models/order_line.rb,
lib/netfira/web_connect/components/checksum.rb,
lib/netfira/web_connect/model/record/events.rb,
lib/netfira/web_connect/models/support/shop.rb,
lib/netfira/web_connect/model/record/digests.rb,
lib/netfira/web_connect/models/support/table.rb,
lib/netfira/web_connect/model/record/sendable.rb,
lib/netfira/web_connect/model/record/writable.rb,
lib/netfira/web_connect/model/relation/events.rb,
lib/netfira/web_connect/migration/base_methods.rb,
lib/netfira/web_connect/model/record/relations.rb,
lib/netfira/web_connect/models/support/session.rb,
lib/netfira/web_connect/models/support/setting.rb,
lib/netfira/web_connect/model/record/serializer.rb,
lib/netfira/web_connect/model/record/file_record.rb,
lib/netfira/web_connect/model/record/translation.rb,
lib/netfira/web_connect/components/hash_of_models.rb,
lib/netfira/web_connect/model/record/translations.rb,
lib/netfira/web_connect/model/record/materialization.rb,
lib/netfira/web_connect/models/support/shop/settings.rb,
lib/netfira/web_connect/model/record/translated_string.rb,
lib/netfira/web_connect/rack_app/actions/version_8/fetch.rb,
lib/netfira/web_connect/rack_app/action_helpers/send_file.rb,
lib/netfira/web_connect/rack_app/action_helpers/data_types.rb,
lib/netfira/web_connect/rack_app/actions/version_8/confirm.rb,
lib/netfira/web_connect/rack_app/actions/version_8/records.rb,
lib/netfira/web_connect/rack_app/action_helpers/env_methods.rb,
lib/netfira/web_connect/rack_app/action_helpers/env_importer.rb,
lib/netfira/web_connect/rack_app/actions/version_8/commit/records.rb

Overview

todo needs comment

Defined Under Namespace

Modules: AMQP, Models Classes: Checksum, Configuration, Guid, HashOfModels, Migration, Model, OctaWord, RackApp, RequestFilter, Schema

Constant Summary collapse

ROOT =
Pathname(__FILE__).parent
VERSION =
'0.4.17'
PLATFORM_AND_VERSION =
'Rack/' << VERSION

Class Method Summary collapse

Class Method Details

.amqp_uriObject



77
78
79
# File 'lib/netfira/web_connect.rb', line 77

def self.amqp_uri
  @config.amqp
end

.anonymous_shopObject



57
58
59
# File 'lib/netfira/web_connect.rb', line 57

def self.anonymous_shop
  @anonymous_shop ||= Models::Shop.find(0)
end

.authenticatorObject



53
54
55
# File 'lib/netfira/web_connect.rb', line 53

def self.authenticator
  @config.authenticator
end

.configure(input = nil, **options) {|@config| ... } ⇒ Object

Yields:

  • (@config)


12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/netfira/web_connect.rb', line 12

def self.configure(input = nil, **options)
  if Hash === input
    @config = Configuration.new(input)
  elsif String === input
    @config = Configuration.new(YAML.parse input)
  elsif input.respond_to? :read
    @config = Configuration.new(YAML.parse_stream input)
  elsif input.nil?
    @config ||= Configuration.new
  else
    raise "You cannot configure WebConnect with an instance of #{input.class}"
  end
  @config.materialize_when_db_changed = !options[:skip_materialization]
  yield @config if block_given?
  Paperclip::Attachment.default_options[:preserve_files] = paranoia?
end

.db_table_l10n_suffix(table_name = '') ⇒ Object



33
34
35
# File 'lib/netfira/web_connect.rb', line 33

def self.db_table_l10n_suffix(table_name = '')
  :"#{table_name}_l10n"
end

.db_table_prefix(string = '') ⇒ Object



29
30
31
# File 'lib/netfira/web_connect.rb', line 29

def self.db_table_prefix(string = '')
  [@config.db_table_prefix, string].join.to_sym
end

.dispatch_event(timing, event, *args) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/netfira/web_connect/events.rb', line 7

def self.dispatch_event(timing, event, *args)

  # Allow multiple timings to be dispatched simultaneously, e.g. [:on, :after]
  return timing.each{ |t| dispatch_event(t, event, *args) { yield } } if timing.respond_to? :each

  # The method to invoke, e.g. :on_update_product
  target = :"#{timing}_#{event}"

  # Delegates that respond to this method
  delegates = event_delegates.select { |d| d.respond_to? target }

  # 'Around' events get special treatment
  if timing == :around
    chain_runner = -> do
      delegate = delegates.shift
      if delegate
        delegate.__send__ target, *args, &chain_runner
      else
        yield
      end
    end
    chain_runner.call
  else
    delegates.map { |d| d.__send__ target, *args }
  end
end

.event_delegatesObject



3
4
5
# File 'lib/netfira/web_connect/events.rb', line 3

def self.event_delegates
  @event_delegates ||= []
end

.file_storeObject



49
50
51
# File 'lib/netfira/web_connect.rb', line 49

def self.file_store
  @config.file_store || {}
end

.handles_event?(event) ⇒ Boolean

Returns:

  • (Boolean)


34
35
36
37
# File 'lib/netfira/web_connect/events.rb', line 34

def self.handles_event?(event)
  target = :"on_#{event}"
  !!event_delegates.find { |x| x.respond_to? target }
end

.http_notificationsObject



73
74
75
# File 'lib/netfira/web_connect.rb', line 73

def self.http_notifications
  @config.http_notifications || :none
end

.loggerObject



41
42
43
# File 'lib/netfira/web_connect.rb', line 41

def self.logger
  @config.logger || null_logger
end

.migrateObject



3
4
5
# File 'lib/netfira/web_connect/migration/base_methods.rb', line 3

def self.migrate
  force_db_connection { ActiveRecord::Migrator.migrate migrations_dir }
end

.needs_migration?Boolean

Returns:

  • (Boolean)


11
12
13
14
15
16
17
# File 'lib/netfira/web_connect/migration/base_methods.rb', line 11

def self.needs_migration?
  original = ActiveRecord::Migrator.migrations_paths
  ActiveRecord::Migrator.migrations_paths = [migrations_dir]
  result = force_db_connection { ActiveRecord::Migrator.needs_migration? }
  ActiveRecord::Migrator.migrations_paths = original
  result
end

.paranoia?Boolean

Returns:

  • (Boolean)


69
70
71
# File 'lib/netfira/web_connect.rb', line 69

def self.paranoia?
  !!@config.paranoia
end

.rollbackObject



7
8
9
# File 'lib/netfira/web_connect/migration/base_methods.rb', line 7

def self.rollback
  force_db_connection { ActiveRecord::Migrator.rollback migrations_dir }
end

.schemaObject



61
62
63
# File 'lib/netfira/web_connect.rb', line 61

def self.schema
  @schema ||= Schema.new if @config
end

.schema_migrations_table_nameObject



37
38
39
# File 'lib/netfira/web_connect.rb', line 37

def self.schema_migrations_table_name
  db_table_prefix('schema_migrations').to_s
end

.session_lifetimeObject



65
66
67
# File 'lib/netfira/web_connect.rb', line 65

def self.session_lifetime
  @config.session_lifetime
end

.system_localeObject



45
46
47
# File 'lib/netfira/web_connect.rb', line 45

def self.system_locale
  @system_locale ||= Locale.current.to_simple.to_s
end