infopark_cloud_connector 6.8.0.beta.200.681.7c84f4a → 6.8.0.beta.200.713.e5c3150
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,51 @@
|
|
1
|
+
module RailsConnector
|
2
|
+
|
3
|
+
class DictStorage #:nodoc: all
|
4
|
+
|
5
|
+
class << self
|
6
|
+
|
7
|
+
def configure(config)
|
8
|
+
@config = config.present? ? config.symbolize_keys : {}
|
9
|
+
end
|
10
|
+
|
11
|
+
def get(spec)
|
12
|
+
storage.get(spec)
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
attr_reader :config
|
18
|
+
|
19
|
+
def storage
|
20
|
+
@storage ||=
|
21
|
+
case config[:type]
|
22
|
+
when "s3"
|
23
|
+
s3_storage(config)
|
24
|
+
when "file"
|
25
|
+
file_storage(config)
|
26
|
+
else
|
27
|
+
raise "Unsupported dict storage type #{config[:type]}"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def s3_storage(config)
|
32
|
+
bucket = AWS::S3.new(config).buckets[config[:bucket_name]]
|
33
|
+
Kvom::Storage::S3Storage.new({
|
34
|
+
:bucket => bucket,
|
35
|
+
:bucket_prefix => "dict",
|
36
|
+
:cache => s3_storage_cache,
|
37
|
+
:cache_prefix => "dict.",
|
38
|
+
})
|
39
|
+
end
|
40
|
+
|
41
|
+
def s3_storage_cache
|
42
|
+
Rails.cache
|
43
|
+
end
|
44
|
+
|
45
|
+
def file_storage(config)
|
46
|
+
Kvom::Storage::FileSystemStorage.new(config)
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
data/lib/rails_connector/obj.rb
CHANGED
@@ -520,29 +520,35 @@ module RailsConnector
|
|
520
520
|
private
|
521
521
|
|
522
522
|
def update_data(values = {}, meta = {})
|
523
|
-
@values = values
|
523
|
+
@values = values || {}
|
524
|
+
meta ||= {}
|
524
525
|
@attributes = meta["attributes"] || {}
|
526
|
+
@ext_ref = meta["ext_ref"]
|
525
527
|
@attr_cache = {}
|
526
528
|
end
|
527
529
|
|
528
530
|
def read_attribute(name)
|
529
531
|
name = name.to_s
|
532
|
+
@attr_cache[name] ||= attribute_value_from_raw_attribute_value(name)
|
533
|
+
end
|
534
|
+
|
535
|
+
def attribute_value_from_raw_attribute_value(name)
|
530
536
|
raw = read_raw_attribute_value(name)
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
else
|
542
|
-
LinkList.new(raw)
|
543
|
-
end
|
537
|
+
case type_of(name)
|
538
|
+
when :markdown
|
539
|
+
StringTagging.tag_as_markdown(raw, self)
|
540
|
+
when :html
|
541
|
+
StringTagging.tag_as_html(raw, self)
|
542
|
+
when :date
|
543
|
+
DateAttribute.parse raw if raw
|
544
|
+
when :linklist
|
545
|
+
if name == "_text_links"
|
546
|
+
LinkList.new(raw && raw.values)
|
544
547
|
else
|
545
|
-
raw
|
548
|
+
LinkList.new(raw)
|
549
|
+
end
|
550
|
+
else
|
551
|
+
raw
|
546
552
|
end
|
547
553
|
end
|
548
554
|
|
@@ -618,9 +624,21 @@ module RailsConnector
|
|
618
624
|
end
|
619
625
|
|
620
626
|
def read_raw_attribute_value(attribute_name)
|
627
|
+
return @values[attribute_name] if @values.key?(attribute_name)
|
628
|
+
if @ext_ref && (attribute_name == "_text_links" || ?_ != attribute_name[0])
|
629
|
+
extend_values_with_dict_storage_values
|
630
|
+
end
|
621
631
|
@values[attribute_name]
|
622
632
|
end
|
623
633
|
|
634
|
+
def extend_values_with_dict_storage_values
|
635
|
+
# may raise Kvom::Storage::NotFound
|
636
|
+
values = DictStorage.get(@ext_ref)
|
637
|
+
@values.reverse_merge!(values)
|
638
|
+
@ext_ref = nil
|
639
|
+
@values
|
640
|
+
end
|
641
|
+
|
624
642
|
class << self
|
625
643
|
private
|
626
644
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: infopark_cloud_connector
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 2363298151
|
5
5
|
prerelease: 6
|
6
6
|
segments:
|
7
7
|
- 6
|
@@ -9,14 +9,12 @@ version: !ruby/object:Gem::Version
|
|
9
9
|
- 0
|
10
10
|
- beta
|
11
11
|
- 200
|
12
|
-
-
|
13
|
-
-
|
12
|
+
- 713
|
13
|
+
- e
|
14
|
+
- 5
|
14
15
|
- c
|
15
|
-
-
|
16
|
-
|
17
|
-
- 4
|
18
|
-
- a
|
19
|
-
version: 6.8.0.beta.200.681.7c84f4a
|
16
|
+
- 3150
|
17
|
+
version: 6.8.0.beta.200.713.e5c3150
|
20
18
|
platform: ruby
|
21
19
|
authors:
|
22
20
|
- Infopark AG
|
@@ -24,7 +22,7 @@ autorequire:
|
|
24
22
|
bindir: bin
|
25
23
|
cert_chain: []
|
26
24
|
|
27
|
-
date: 2012-06-
|
25
|
+
date: 2012-06-29 00:00:00 +02:00
|
28
26
|
default_executable:
|
29
27
|
dependencies:
|
30
28
|
- !ruby/object:Gem::Dependency
|
@@ -65,21 +63,19 @@ dependencies:
|
|
65
63
|
requirements:
|
66
64
|
- - "="
|
67
65
|
- !ruby/object:Gem::Version
|
68
|
-
hash:
|
66
|
+
hash: 2363298151
|
69
67
|
segments:
|
70
68
|
- 6
|
71
69
|
- 8
|
72
70
|
- 0
|
73
71
|
- beta
|
74
72
|
- 200
|
75
|
-
-
|
76
|
-
-
|
73
|
+
- 713
|
74
|
+
- e
|
75
|
+
- 5
|
77
76
|
- c
|
78
|
-
-
|
79
|
-
|
80
|
-
- 4
|
81
|
-
- a
|
82
|
-
version: 6.8.0.beta.200.681.7c84f4a
|
77
|
+
- 3150
|
78
|
+
version: 6.8.0.beta.200.713.e5c3150
|
83
79
|
version_requirements: *id003
|
84
80
|
name: kvom
|
85
81
|
prerelease: false
|
@@ -106,6 +102,7 @@ files:
|
|
106
102
|
- lib/rails_connector/couchdb_views_source_path.rb
|
107
103
|
- lib/rails_connector/date_attribute.rb
|
108
104
|
- lib/rails_connector/default_search_request.rb
|
105
|
+
- lib/rails_connector/dict_storage.rb
|
109
106
|
- lib/rails_connector/elasticsearch_request.rb
|
110
107
|
- lib/rails_connector/errors.rb
|
111
108
|
- lib/rails_connector/link.rb
|