web-connect 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +1 -0
- data/Rakefile +3 -0
- data/lib/netfira/web_connect/components/checksum.rb +19 -0
- data/lib/netfira/web_connect/components/guid.rb +11 -0
- data/lib/netfira/web_connect/components/octa_word.rb +73 -0
- data/lib/netfira/web_connect/components.rb +1 -0
- data/lib/netfira/web_connect/configuration.rb +33 -0
- data/lib/netfira/web_connect/db_schema/20140514_support.rb +38 -0
- data/lib/netfira/web_connect/db_schema/20140515_alpha.rb +106 -0
- data/lib/netfira/web_connect/events.rb +14 -0
- data/lib/netfira/web_connect/migration/base_methods.rb +59 -0
- data/lib/netfira/web_connect/migration/refinements.rb +16 -0
- data/lib/netfira/web_connect/migration.rb +101 -0
- data/lib/netfira/web_connect/model/record/digests.rb +24 -0
- data/lib/netfira/web_connect/model/record/events.rb +35 -0
- data/lib/netfira/web_connect/model/record/file_record.rb +79 -0
- data/lib/netfira/web_connect/model/record/materialization.rb +59 -0
- data/lib/netfira/web_connect/model/record/relations.rb +51 -0
- data/lib/netfira/web_connect/model/record/sendable.rb +29 -0
- data/lib/netfira/web_connect/model/record/serializer.rb +56 -0
- data/lib/netfira/web_connect/model/record/translated_string.rb +42 -0
- data/lib/netfira/web_connect/model/record/translation.rb +58 -0
- data/lib/netfira/web_connect/model/record/translations.rb +63 -0
- data/lib/netfira/web_connect/model/record/tree.rb +13 -0
- data/lib/netfira/web_connect/model/record.rb +132 -0
- data/lib/netfira/web_connect/model/relation/events.rb +34 -0
- data/lib/netfira/web_connect/model/relation.rb +67 -0
- data/lib/netfira/web_connect/model/support.rb +13 -0
- data/lib/netfira/web_connect/model.rb +33 -0
- data/lib/netfira/web_connect/models/image.rb +48 -0
- data/lib/netfira/web_connect/models/order.rb +5 -0
- data/lib/netfira/web_connect/models/order_line.rb +13 -0
- data/lib/netfira/web_connect/models/support/setting.rb +31 -0
- data/lib/netfira/web_connect/models/support/shop/settings.rb +42 -0
- data/lib/netfira/web_connect/models/support/shop.rb +22 -0
- data/lib/netfira/web_connect/models/support/table.rb +5 -0
- data/lib/netfira/web_connect/models.rb +73 -0
- data/lib/netfira/web_connect/rack_app/action.rb +66 -0
- data/lib/netfira/web_connect/rack_app/action_helpers/data_types.rb +22 -0
- data/lib/netfira/web_connect/rack_app/action_helpers/env_importer.rb +59 -0
- data/lib/netfira/web_connect/rack_app/action_helpers/env_methods.rb +23 -0
- data/lib/netfira/web_connect/rack_app/actions/version_1/not_supported.rb +11 -0
- data/lib/netfira/web_connect/rack_app/actions/version_8/checksums.rb +14 -0
- data/lib/netfira/web_connect/rack_app/actions/version_8/commit/records.rb +45 -0
- data/lib/netfira/web_connect/rack_app/actions/version_8/commit/relations.rb +48 -0
- data/lib/netfira/web_connect/rack_app/actions/version_8/commit.rb +33 -0
- data/lib/netfira/web_connect/rack_app/actions/version_8/files.rb +21 -0
- data/lib/netfira/web_connect/rack_app/actions/version_8/info.rb +18 -0
- data/lib/netfira/web_connect/rack_app/actions/version_8/settings.rb +79 -0
- data/lib/netfira/web_connect/rack_app/exceptions/http_exception.rb +44 -0
- data/lib/netfira/web_connect/rack_app/exceptions.rb +6 -0
- data/lib/netfira/web_connect/rack_app.rb +56 -0
- data/lib/netfira/web_connect/request_filter.rb +66 -0
- data/lib/netfira/web_connect/schema/table.rb +58 -0
- data/lib/netfira/web_connect/schema.rb +22 -0
- data/lib/netfira/web_connect/version.rb +5 -0
- data/lib/netfira/web_connect.rb +82 -0
- data/lib/netfira.rb +10 -0
- data/lib/web_connect.rb +1 -0
- metadata +246 -0
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'ostruct'
|
2
|
+
|
3
|
+
module Netfira::WebConnect
|
4
|
+
class RackApp
|
5
|
+
def call(env)
|
6
|
+
begin
|
7
|
+
body, headers = handle_request(env)
|
8
|
+
if headers['Content-Type']
|
9
|
+
[200, headers, body]
|
10
|
+
else
|
11
|
+
make_response 200, body, headers
|
12
|
+
end
|
13
|
+
rescue Exceptions::HttpException => e
|
14
|
+
make_response e.code, {errorMessage: e.message}, e.headers, e.code
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def latest_api_version
|
19
|
+
Action.latest_version
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def handle_request(env)
|
25
|
+
# Match [/]<api-version-number>/<anything other than a forward slash>
|
26
|
+
raise NotFound unless env['PATH_INFO'] =~ /\A\/?(\d+)\/([^\/]+)/
|
27
|
+
version = $1.to_i
|
28
|
+
action_name = $2.to_sym
|
29
|
+
action = Action.create(action_name, version)
|
30
|
+
raise NotFound unless action
|
31
|
+
action.import_env env
|
32
|
+
body = action.call
|
33
|
+
[body, action.headers]
|
34
|
+
end
|
35
|
+
|
36
|
+
def make_response(status, body = {}, headers = {}, error_code = 0)
|
37
|
+
body_string = {errorCode: error_code}.merge(body).to_json
|
38
|
+
[
|
39
|
+
status,
|
40
|
+
{
|
41
|
+
:'Content-Type' => 'application/json',
|
42
|
+
:'Content-Length' => body_string.length
|
43
|
+
}.merge(headers),
|
44
|
+
body_string
|
45
|
+
]
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
require_relative 'rack_app/exceptions'
|
52
|
+
require_relative 'rack_app/action'
|
53
|
+
|
54
|
+
class Netfira::WebConnect::RackApp
|
55
|
+
include Exceptions::HttpExceptions
|
56
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
require 'zlib'
|
2
|
+
require 'stringio'
|
3
|
+
|
4
|
+
module Netfira::WebConnect
|
5
|
+
class RequestFilter
|
6
|
+
|
7
|
+
def initialize(app)
|
8
|
+
@app = app
|
9
|
+
end
|
10
|
+
|
11
|
+
def call(env)
|
12
|
+
if (env['CONTENT_TYPE'] || env['HTTP_CONTENT_TYPE']) == 'application/x-netfira-webconnect-packed'
|
13
|
+
begin
|
14
|
+
unpack env
|
15
|
+
rescue Zlib::GzipFile::Error => e
|
16
|
+
return [400, {}, {errorCode: 19, errorMessage: "Gzip decompression error: #{e.message}"}]
|
17
|
+
end
|
18
|
+
end
|
19
|
+
env['WC_ACCEPTABLE_REQUEST_TYPES'] = %w[packed unpacked]
|
20
|
+
@app.call env
|
21
|
+
end
|
22
|
+
|
23
|
+
def unpack(env)
|
24
|
+
env['original.rack.input'] = input = env['rack.input']
|
25
|
+
|
26
|
+
input = Zlib::GzipReader.new(input) if (env['CONTENT_ENCODING'] || env['HTTP_CONTENT_ENCODING']) == 'gzip'
|
27
|
+
|
28
|
+
method, path, query_string, headers, body = parse_request(input)
|
29
|
+
|
30
|
+
%w[REQUEST_METHOD PATH_INFO QUERY_STRING].each{ |field| env["OUTER_#{field}"] = env[field] }
|
31
|
+
|
32
|
+
env['REQUEST_METHOD'] = method
|
33
|
+
env['PATH_INFO'] = path
|
34
|
+
env['QUERY_STRING'] = query_string || ''
|
35
|
+
|
36
|
+
headers.each do |key, value|
|
37
|
+
field = key =~ /^CONTENT_/ ? '' : 'HTTP_'
|
38
|
+
field << key.upcase.gsub('-', '_')
|
39
|
+
env["OUTER_#{field}"] = env[field] if env[field]
|
40
|
+
env[field] = value
|
41
|
+
end
|
42
|
+
|
43
|
+
env['rack.input'] = StringIO.new(body || '')
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
def parse_request(input)
|
49
|
+
input.rewind
|
50
|
+
|
51
|
+
body = ''
|
52
|
+
headers = {}
|
53
|
+
|
54
|
+
method, path, query_string = /^([A-Z]+) ([^?\s]+)(?:\?(\S*))?/.match(input.readline)[1..3]
|
55
|
+
|
56
|
+
while !input.eof and (line = input.readline.chomp) != ''
|
57
|
+
headers.merge! [line.split(/:\s*/, 2)].to_h
|
58
|
+
end
|
59
|
+
|
60
|
+
body = input.read unless input.eof
|
61
|
+
|
62
|
+
[method, path, query_string, headers, body]
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
module Netfira::WebConnect
|
2
|
+
|
3
|
+
class Schema::Table
|
4
|
+
|
5
|
+
attr_reader :klass
|
6
|
+
|
7
|
+
def initialize(klass)
|
8
|
+
@klass = klass
|
9
|
+
end
|
10
|
+
|
11
|
+
def singular
|
12
|
+
@singular ||= klass.name.demodulize
|
13
|
+
end
|
14
|
+
|
15
|
+
def plural
|
16
|
+
@plural ||= singular.pluralize
|
17
|
+
end
|
18
|
+
|
19
|
+
def primary_key
|
20
|
+
@primary_key ||= klass.origin_key
|
21
|
+
end
|
22
|
+
|
23
|
+
def localize
|
24
|
+
@localize ||= l10n_columns.keys.map(&:to_sym)
|
25
|
+
end
|
26
|
+
|
27
|
+
IGNORE_COLUMNS = %w[id shop_id created_at updated_at digest]
|
28
|
+
|
29
|
+
def columns
|
30
|
+
@columns ||= klass.columns_hash.reject{ |k| IGNORE_COLUMNS.include? k }.merge(l10n_columns).map{ |k, v| [k.to_sym, v.type.to_s] }.to_h
|
31
|
+
end
|
32
|
+
|
33
|
+
def as_json(options)
|
34
|
+
@json ||= {
|
35
|
+
columns: columns.map { |name, type| [name.to_s.camelize(:lower), type] }.to_h,
|
36
|
+
singular: singular,
|
37
|
+
primaryKey: [primary_key.to_s.camelize(:lower)],
|
38
|
+
localize: l10n_columns.keys.map{ |k| k.camelize :lower }
|
39
|
+
}
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def l10n_columns
|
45
|
+
@l10n_columns ||= klass.has_languages? ? l10n_filtered_columns_hash : {}
|
46
|
+
end
|
47
|
+
|
48
|
+
IGNORE_L10N_COLUMNS = %w[id language]
|
49
|
+
|
50
|
+
def l10n_filtered_columns_hash
|
51
|
+
klass::Translation.columns_hash.reject do |k|
|
52
|
+
k == "#{klass.single_name}_id" or IGNORE_L10N_COLUMNS.include? k
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Netfira::WebConnect
|
2
|
+
|
3
|
+
# This class reflects the database's schema
|
4
|
+
class Schema < Hash
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
classes = Models.constants.map{ |c| Models.const_get c }
|
8
|
+
classes.select!{ |klass| klass < Model::Record }
|
9
|
+
merge! classes.map{ |klass| [klass, Table.new(klass)] }.to_h
|
10
|
+
end
|
11
|
+
|
12
|
+
def as_json(options)
|
13
|
+
map do |klass, table|
|
14
|
+
[klass.name.demodulize.pluralize, table.as_json(options)]
|
15
|
+
end.to_h
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
require_relative 'schema/table'
|
@@ -0,0 +1,82 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'pathname'
|
3
|
+
require 'active_record'
|
4
|
+
require 'locale'
|
5
|
+
|
6
|
+
require_relative 'web_connect/model'
|
7
|
+
|
8
|
+
module Netfira
|
9
|
+
module WebConnect
|
10
|
+
ROOT = Pathname(__FILE__).parent
|
11
|
+
|
12
|
+
def self.configure(input = nil, **options)
|
13
|
+
if Hash === input
|
14
|
+
@config = Configuration.new(input)
|
15
|
+
elsif String === input
|
16
|
+
@config = Configuration.new(YAML.parse input)
|
17
|
+
elsif input.respond_to? :read
|
18
|
+
@config = Configuration.new(YAML.parse_stream input)
|
19
|
+
elsif input.nil?
|
20
|
+
@config ||= Configuration.new
|
21
|
+
else
|
22
|
+
raise "You cannot configure WebConnect with an instance of #{input.class}"
|
23
|
+
end
|
24
|
+
@config.materialize_when_db_changed = !options[:skip_materialization]
|
25
|
+
yield @config if block_given?
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.db_table_prefix(string = '')
|
29
|
+
[@config.db_table_prefix, string].join.to_sym
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.db_table_l10n_suffix(table_name = '')
|
33
|
+
:"#{table_name}_l10n"
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.schema_migrations_table_name
|
37
|
+
db_table_prefix('schema_migrations').to_s
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.logger
|
41
|
+
@config.logger || null_logger
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.system_locale
|
45
|
+
@system_locale ||= Locale.current.to_simple.to_s
|
46
|
+
end
|
47
|
+
|
48
|
+
def self.file_store
|
49
|
+
@config.file_store || {}
|
50
|
+
end
|
51
|
+
|
52
|
+
def self.authenticator
|
53
|
+
@config.authenticator
|
54
|
+
end
|
55
|
+
|
56
|
+
def self.anonymous_shop
|
57
|
+
@anonymous_shop ||= Models::Shop.find(0)
|
58
|
+
end
|
59
|
+
|
60
|
+
def self.schema
|
61
|
+
@schema ||= Schema.new if @config
|
62
|
+
end
|
63
|
+
|
64
|
+
private
|
65
|
+
|
66
|
+
def self.null_logger
|
67
|
+
@null_logger ||= Logger.new nil
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
require_relative 'web_connect/events'
|
74
|
+
|
75
|
+
require_relative 'web_connect/rack_app'
|
76
|
+
require_relative 'web_connect/request_filter'
|
77
|
+
require_relative 'web_connect/migration'
|
78
|
+
require_relative 'web_connect/version'
|
79
|
+
require_relative 'web_connect/models'
|
80
|
+
require_relative 'web_connect/components'
|
81
|
+
require_relative 'web_connect/configuration'
|
82
|
+
require_relative 'web_connect/schema'
|
data/lib/netfira.rb
ADDED
data/lib/web_connect.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require_relative 'netfira'
|
metadata
ADDED
@@ -0,0 +1,246 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: web-connect
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Neil E. Pearson
|
8
|
+
- Gerard (Gerry) Caulfield
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2014-06-04 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: activerecord
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '4.1'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '4.1'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: rack
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '1.5'
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '1.5'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: locale
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '2.1'
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '2.1'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: paperclip
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '4.1'
|
63
|
+
type: :runtime
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '4.1'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: fastimage
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - "~>"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '1.6'
|
77
|
+
type: :runtime
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '1.6'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: rspec
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - "~>"
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: 3.0.0.beta
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - "~>"
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: 3.0.0.beta
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: sqlite3
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - "~>"
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '1.3'
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - "~>"
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '1.3'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: rspec-its
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - "~>"
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '1.0'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - "~>"
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '1.0'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: mime-types
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - "~>"
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '1.16'
|
133
|
+
type: :development
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - "~>"
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '1.16'
|
140
|
+
- !ruby/object:Gem::Dependency
|
141
|
+
name: database_cleaner
|
142
|
+
requirement: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - "~>"
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '1.3'
|
147
|
+
type: :development
|
148
|
+
prerelease: false
|
149
|
+
version_requirements: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - "~>"
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '1.3'
|
154
|
+
description: |
|
155
|
+
This is a Ruby version of Netfira's WebConnect server-side library
|
156
|
+
email:
|
157
|
+
- neil@helium.net.au
|
158
|
+
- gerard@caulfield.me
|
159
|
+
executables: []
|
160
|
+
extensions: []
|
161
|
+
extra_rdoc_files: []
|
162
|
+
files:
|
163
|
+
- README.md
|
164
|
+
- Rakefile
|
165
|
+
- lib/netfira.rb
|
166
|
+
- lib/netfira/web_connect.rb
|
167
|
+
- lib/netfira/web_connect/components.rb
|
168
|
+
- lib/netfira/web_connect/components/checksum.rb
|
169
|
+
- lib/netfira/web_connect/components/guid.rb
|
170
|
+
- lib/netfira/web_connect/components/octa_word.rb
|
171
|
+
- lib/netfira/web_connect/configuration.rb
|
172
|
+
- lib/netfira/web_connect/db_schema/20140514_support.rb
|
173
|
+
- lib/netfira/web_connect/db_schema/20140515_alpha.rb
|
174
|
+
- lib/netfira/web_connect/events.rb
|
175
|
+
- lib/netfira/web_connect/migration.rb
|
176
|
+
- lib/netfira/web_connect/migration/base_methods.rb
|
177
|
+
- lib/netfira/web_connect/migration/refinements.rb
|
178
|
+
- lib/netfira/web_connect/model.rb
|
179
|
+
- lib/netfira/web_connect/model/record.rb
|
180
|
+
- lib/netfira/web_connect/model/record/digests.rb
|
181
|
+
- lib/netfira/web_connect/model/record/events.rb
|
182
|
+
- lib/netfira/web_connect/model/record/file_record.rb
|
183
|
+
- lib/netfira/web_connect/model/record/materialization.rb
|
184
|
+
- lib/netfira/web_connect/model/record/relations.rb
|
185
|
+
- lib/netfira/web_connect/model/record/sendable.rb
|
186
|
+
- lib/netfira/web_connect/model/record/serializer.rb
|
187
|
+
- lib/netfira/web_connect/model/record/translated_string.rb
|
188
|
+
- lib/netfira/web_connect/model/record/translation.rb
|
189
|
+
- lib/netfira/web_connect/model/record/translations.rb
|
190
|
+
- lib/netfira/web_connect/model/record/tree.rb
|
191
|
+
- lib/netfira/web_connect/model/relation.rb
|
192
|
+
- lib/netfira/web_connect/model/relation/events.rb
|
193
|
+
- lib/netfira/web_connect/model/support.rb
|
194
|
+
- lib/netfira/web_connect/models.rb
|
195
|
+
- lib/netfira/web_connect/models/image.rb
|
196
|
+
- lib/netfira/web_connect/models/order.rb
|
197
|
+
- lib/netfira/web_connect/models/order_line.rb
|
198
|
+
- lib/netfira/web_connect/models/support/setting.rb
|
199
|
+
- lib/netfira/web_connect/models/support/shop.rb
|
200
|
+
- lib/netfira/web_connect/models/support/shop/settings.rb
|
201
|
+
- lib/netfira/web_connect/models/support/table.rb
|
202
|
+
- lib/netfira/web_connect/rack_app.rb
|
203
|
+
- lib/netfira/web_connect/rack_app/action.rb
|
204
|
+
- lib/netfira/web_connect/rack_app/action_helpers/data_types.rb
|
205
|
+
- lib/netfira/web_connect/rack_app/action_helpers/env_importer.rb
|
206
|
+
- lib/netfira/web_connect/rack_app/action_helpers/env_methods.rb
|
207
|
+
- lib/netfira/web_connect/rack_app/actions/version_1/not_supported.rb
|
208
|
+
- lib/netfira/web_connect/rack_app/actions/version_8/checksums.rb
|
209
|
+
- lib/netfira/web_connect/rack_app/actions/version_8/commit.rb
|
210
|
+
- lib/netfira/web_connect/rack_app/actions/version_8/commit/records.rb
|
211
|
+
- lib/netfira/web_connect/rack_app/actions/version_8/commit/relations.rb
|
212
|
+
- lib/netfira/web_connect/rack_app/actions/version_8/files.rb
|
213
|
+
- lib/netfira/web_connect/rack_app/actions/version_8/info.rb
|
214
|
+
- lib/netfira/web_connect/rack_app/actions/version_8/settings.rb
|
215
|
+
- lib/netfira/web_connect/rack_app/exceptions.rb
|
216
|
+
- lib/netfira/web_connect/rack_app/exceptions/http_exception.rb
|
217
|
+
- lib/netfira/web_connect/request_filter.rb
|
218
|
+
- lib/netfira/web_connect/schema.rb
|
219
|
+
- lib/netfira/web_connect/schema/table.rb
|
220
|
+
- lib/netfira/web_connect/version.rb
|
221
|
+
- lib/web_connect.rb
|
222
|
+
homepage: http://www.netfira.com/
|
223
|
+
licenses:
|
224
|
+
- proprietary
|
225
|
+
metadata: {}
|
226
|
+
post_install_message:
|
227
|
+
rdoc_options: []
|
228
|
+
require_paths:
|
229
|
+
- lib
|
230
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
231
|
+
requirements:
|
232
|
+
- - ">="
|
233
|
+
- !ruby/object:Gem::Version
|
234
|
+
version: '2.1'
|
235
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
236
|
+
requirements:
|
237
|
+
- - ">="
|
238
|
+
- !ruby/object:Gem::Version
|
239
|
+
version: '0'
|
240
|
+
requirements: []
|
241
|
+
rubyforge_project:
|
242
|
+
rubygems_version: 2.2.2
|
243
|
+
signing_key:
|
244
|
+
specification_version: 4
|
245
|
+
summary: Netfira's WebConnect Library
|
246
|
+
test_files: []
|