naranya_ecm-sdk 0.0.4
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.
- checksums.yaml +7 -0
- data/.gitignore +13 -0
- data/Gemfile +8 -0
- data/LICENSE.txt +22 -0
- data/README.md +33 -0
- data/Rakefile +1 -0
- data/dev/create_cvm.rb +31 -0
- data/dev/init.rb +2 -0
- data/dev/load_cvm.rb +12 -0
- data/dev/search.rb +3 -0
- data/lib/naranya_ecm/behaviors/localizable.rb +41 -0
- data/lib/naranya_ecm/behaviors/timestampable.rb +22 -0
- data/lib/naranya_ecm/behaviors.rb +9 -0
- data/lib/naranya_ecm/cache/key.rb +73 -0
- data/lib/naranya_ecm/cache/methods.rb +78 -0
- data/lib/naranya_ecm/cache.rb +9 -0
- data/lib/naranya_ecm/has_many_patch.rb +105 -0
- data/lib/naranya_ecm/lifecycles/content_lifecycle.rb +36 -0
- data/lib/naranya_ecm/lifecycles/lifecycleable.rb +43 -0
- data/lib/naranya_ecm/lifecycles/version_lifecycle.rb +75 -0
- data/lib/naranya_ecm/lifecycles.rb +10 -0
- data/lib/naranya_ecm/models/category.rb +42 -0
- data/lib/naranya_ecm/models/content.rb +102 -0
- data/lib/naranya_ecm/models/content_version.rb +38 -0
- data/lib/naranya_ecm/models/download_authorization.rb +55 -0
- data/lib/naranya_ecm/models/lifecycle.rb +36 -0
- data/lib/naranya_ecm/models/media_resource.rb +33 -0
- data/lib/naranya_ecm/models.rb +13 -0
- data/lib/naranya_ecm/search/hit.rb +17 -0
- data/lib/naranya_ecm/search/methods.rb +26 -0
- data/lib/naranya_ecm/search/query.rb +296 -0
- data/lib/naranya_ecm/search/results.rb +161 -0
- data/lib/naranya_ecm/search.rb +14 -0
- data/lib/naranya_ecm/site_from_configuration.rb +15 -0
- data/lib/naranya_ecm-sdk/version.rb +3 -0
- data/lib/naranya_ecm-sdk.rb +84 -0
- data/naranya_ecm-sdk.gemspec +33 -0
- data/spec/models/category_spec.rb +11 -0
- data/spec/models/content_spec.rb +11 -0
- data/spec/models/content_version_spec.rb +7 -0
- data/spec/models/download_authorization.rb +7 -0
- data/spec/models/media_spec.rb +7 -0
- data/spec/models/module_spec.rb +18 -0
- data/spec/spec_helper.rb +47 -0
- data/spec/support/naranya_ecms_shared_specs.rb +33 -0
- metadata +236 -0
@@ -0,0 +1,161 @@
|
|
1
|
+
module NaranyaEcm
|
2
|
+
module Search
|
3
|
+
class Results
|
4
|
+
|
5
|
+
DEFAULT_MATERIALIZER = Proc.new do |resource_class, hits|
|
6
|
+
|
7
|
+
# Extract the object ids for ActiveResource loading:
|
8
|
+
unloaded_resource_ids = hits.map(&:id)
|
9
|
+
|
10
|
+
materialized_elements = []
|
11
|
+
|
12
|
+
# Load from cache any matching element caching_key:
|
13
|
+
hits.each do |hit|
|
14
|
+
cached_element = resource_class.find_cached(resource_class.cache_key_for id: hit.id, timestamp: hit.updated_at)
|
15
|
+
if cached_element.present?
|
16
|
+
cached_element.merge_search_hit_data(hit)
|
17
|
+
materialized_elements << cached_element
|
18
|
+
unloaded_resource_ids.delete cached_element.id
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# Load from server all elements not in cache:
|
23
|
+
resource_class.find(:all, params: { id: unloaded_resource_ids }).each do |element|
|
24
|
+
hit = hits.detect { |hit| hit.id == element.id }
|
25
|
+
|
26
|
+
# Add the hit score and order to each element:
|
27
|
+
element.merge_search_hit_data(hit)
|
28
|
+
|
29
|
+
# Add it to the loaded_elements:
|
30
|
+
materialized_elements << element
|
31
|
+
end unless unloaded_resource_ids.empty?
|
32
|
+
|
33
|
+
materialized_elements
|
34
|
+
end
|
35
|
+
|
36
|
+
include Enumerable
|
37
|
+
delegate :to_yaml, :all?, :each, to: :to_a
|
38
|
+
|
39
|
+
# The array of actual elements returned by index actions
|
40
|
+
attr_reader :elements, :resource_class
|
41
|
+
|
42
|
+
attr_accessor :materializer
|
43
|
+
|
44
|
+
def initialize(given_dsl, given_resource_class = nil)
|
45
|
+
@dsl, @resource_class = given_dsl, given_resource_class
|
46
|
+
end
|
47
|
+
|
48
|
+
def total_hits
|
49
|
+
do_search! unless @total_hits
|
50
|
+
@total_hits
|
51
|
+
end
|
52
|
+
alias_method :total_count, :total_hits
|
53
|
+
|
54
|
+
def hits
|
55
|
+
do_search! unless @hits
|
56
|
+
@hits
|
57
|
+
end
|
58
|
+
|
59
|
+
def count
|
60
|
+
hits.count
|
61
|
+
end
|
62
|
+
|
63
|
+
def any?
|
64
|
+
count > 0
|
65
|
+
end
|
66
|
+
|
67
|
+
def empty?
|
68
|
+
count < 1
|
69
|
+
end
|
70
|
+
|
71
|
+
def facts
|
72
|
+
do_search! unless @facts
|
73
|
+
@facts
|
74
|
+
end
|
75
|
+
|
76
|
+
def max_score
|
77
|
+
do_search! unless @max_score
|
78
|
+
@max_score
|
79
|
+
end
|
80
|
+
|
81
|
+
def query_process_time
|
82
|
+
do_search! unless @query_process_time
|
83
|
+
@query_process_time
|
84
|
+
end
|
85
|
+
|
86
|
+
def query_total_time
|
87
|
+
do_search! unless @query_total_time
|
88
|
+
@query_total_time
|
89
|
+
end
|
90
|
+
|
91
|
+
def materializer
|
92
|
+
@materializer || DEFAULT_MATERIALIZER
|
93
|
+
end
|
94
|
+
|
95
|
+
def to_a
|
96
|
+
materialize! unless @elements
|
97
|
+
elements
|
98
|
+
end
|
99
|
+
|
100
|
+
private
|
101
|
+
|
102
|
+
def do_search!
|
103
|
+
|
104
|
+
start_time = Time.now
|
105
|
+
|
106
|
+
# Strip '.json' from collection path:
|
107
|
+
search_path = resource_class.present? ? resource_class.collection_path.split('.').first : ''
|
108
|
+
search_path += '/_search'
|
109
|
+
|
110
|
+
search_site = URI(NaranyaEcm.options.site)
|
111
|
+
|
112
|
+
search_connection = Net::HTTP.new search_site.host, search_site.port
|
113
|
+
|
114
|
+
search_get_url = URI("#{search_site}#{search_path}")
|
115
|
+
|
116
|
+
search_request = Net::HTTP::Get.new search_get_url
|
117
|
+
search_request.body = ActiveSupport::JSON.encode @dsl
|
118
|
+
|
119
|
+
puts "curl --XGET '#{search_get_url}?pretty=true' -d '#{search_request.body}'"
|
120
|
+
|
121
|
+
# Use the class connection to get the search results,
|
122
|
+
# using any authentication / headers configured:
|
123
|
+
#search_response = connection.get(search_path, headers)
|
124
|
+
search_response = search_connection.request search_request
|
125
|
+
|
126
|
+
# Parse the search results:
|
127
|
+
@facts = ActiveSupport::JSON.decode(search_response.body)
|
128
|
+
.with_indifferent_access
|
129
|
+
|
130
|
+
# Obtain the query processing time, which is given in miliseconds as 'took' key:
|
131
|
+
@query_process_time = (Float(@facts.delete(:took)) / 1000)
|
132
|
+
|
133
|
+
result_hits = @facts.delete :hits
|
134
|
+
|
135
|
+
@total_hits = result_hits.delete :total
|
136
|
+
@max_score = result_hits.delete :max_score
|
137
|
+
|
138
|
+
@hits = result_hits[:hits].each_with_index.map { |ht, o| Hit.new(ht.merge(order: o)) }
|
139
|
+
|
140
|
+
@hits.freeze
|
141
|
+
@facts.freeze
|
142
|
+
|
143
|
+
@query_total_time = (Time.now - start_time)
|
144
|
+
|
145
|
+
end
|
146
|
+
|
147
|
+
def materialize!
|
148
|
+
# Call the materializer and:
|
149
|
+
# - Filter out elements that materialized as nulls
|
150
|
+
# - Order the elements by relevance
|
151
|
+
@elements = materializer.call(resource_class, hits)
|
152
|
+
.select { |materialized_element| materialized_element.present? }
|
153
|
+
.sort_by do |element|
|
154
|
+
element.search_order
|
155
|
+
end
|
156
|
+
|
157
|
+
end
|
158
|
+
|
159
|
+
end
|
160
|
+
end
|
161
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
require "naranya_ecm-sdk/version"
|
2
|
+
|
3
|
+
require 'active_support/time'
|
4
|
+
require 'active_support/configurable'
|
5
|
+
require 'active_support/dependencies/autoload'
|
6
|
+
require 'yaml'
|
7
|
+
|
8
|
+
require 'fog'
|
9
|
+
|
10
|
+
|
11
|
+
module NaranyaEcm
|
12
|
+
|
13
|
+
extend ActiveSupport::Autoload
|
14
|
+
|
15
|
+
autoload :Cache
|
16
|
+
autoload :Search
|
17
|
+
|
18
|
+
autoload :Lifecycles
|
19
|
+
|
20
|
+
autoload :Models
|
21
|
+
autoload :Behaviors
|
22
|
+
|
23
|
+
autoload :SiteFromConfiguration
|
24
|
+
|
25
|
+
include ActiveSupport::Configurable
|
26
|
+
|
27
|
+
include Models
|
28
|
+
|
29
|
+
DEFAULT_CONFIG = {
|
30
|
+
site: "http://ecm.naranya.net:5000",
|
31
|
+
}.freeze
|
32
|
+
|
33
|
+
class << self
|
34
|
+
|
35
|
+
def storage
|
36
|
+
@storage ||= Fog::Storage.new options['storage'].except('root_directory').symbolize_keys!
|
37
|
+
end
|
38
|
+
|
39
|
+
def root_directory
|
40
|
+
@root_directory ||= storage.directories.get(options['storage']['root_directory'])
|
41
|
+
end
|
42
|
+
|
43
|
+
def setup
|
44
|
+
yield config
|
45
|
+
end
|
46
|
+
|
47
|
+
def options
|
48
|
+
auto_conf unless config.present?
|
49
|
+
config.clone
|
50
|
+
end
|
51
|
+
|
52
|
+
def cache_key_for(attributes = {})
|
53
|
+
Cache::Key.new attributes
|
54
|
+
end
|
55
|
+
|
56
|
+
def load_config_from_yml(yml_path, env="production")
|
57
|
+
raise "YAML file doesn't extst" unless File.exist?(yml_path)
|
58
|
+
yml_config = DEFAULT_CONFIG.merge(YAML::load(ERB.new(File.read(yml_path)).result)[env])
|
59
|
+
setup { |config| yml_config.each { |key, val| config.send "#{key}=".to_sym, val } }
|
60
|
+
end
|
61
|
+
|
62
|
+
def cache
|
63
|
+
auto_conf unless config.present?
|
64
|
+
@cache ||= ActiveSupport::Cache.lookup_store *options[:cache]
|
65
|
+
end
|
66
|
+
|
67
|
+
protected
|
68
|
+
|
69
|
+
def auto_conf
|
70
|
+
# Cargar configuracion dentro del folder de config en Rails:
|
71
|
+
if defined?(Rails)
|
72
|
+
yml_path = File.join(Rails.root, 'config', 'naranya_ecm.yml')
|
73
|
+
load_config_from_yml(yml_path, Rails.env)
|
74
|
+
|
75
|
+
# Use the Rails cache:
|
76
|
+
@cache = Rails.cache
|
77
|
+
elsif File.exists?('./naranya_ecm.yml')
|
78
|
+
load_config_from_yml('./naranya_ecm.yml')
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
|
5
|
+
require 'naranya_ecm-sdk/version'
|
6
|
+
|
7
|
+
Gem::Specification.new do |spec|
|
8
|
+
spec.name = "naranya_ecm-sdk"
|
9
|
+
spec.version = NaranyaEcm::VERSION
|
10
|
+
spec.authors = ["Roberto Quintanilla"]
|
11
|
+
spec.email = ["roberto.quintanilla@naranya.com"]
|
12
|
+
spec.summary = %q{Cliente Ruby de NaranyaEcm}
|
13
|
+
spec.description = %q{Cliente Ruby de NaranyaEcm}
|
14
|
+
spec.homepage = ""
|
15
|
+
spec.license = "MIT"
|
16
|
+
|
17
|
+
spec.files = `git ls-files -z`.split("\x0")
|
18
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
19
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
20
|
+
spec.require_paths = ["lib"]
|
21
|
+
|
22
|
+
spec.add_dependency 'activesupport', '~> 4.0.2'
|
23
|
+
spec.add_dependency 'activemodel', '~> 4.0.2'
|
24
|
+
spec.add_dependency 'activeresource', '~> 4.0.0'
|
25
|
+
spec.add_dependency 'state_machine'
|
26
|
+
spec.add_dependency 'fog'
|
27
|
+
|
28
|
+
spec.add_development_dependency "bundler", "~> 1.5"
|
29
|
+
spec.add_development_dependency "rake"
|
30
|
+
spec.add_development_dependency "rspec", "~> 3.0.0.beta2"
|
31
|
+
spec.add_development_dependency "vcr"
|
32
|
+
spec.add_development_dependency "webmock", "~> 1.16"
|
33
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe NaranyaEcm, vcr: true do
|
4
|
+
|
5
|
+
it "responds to #options" do
|
6
|
+
expect(subject).to respond_to :options
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "options" do
|
10
|
+
|
11
|
+
subject { NaranyaEcm.options }
|
12
|
+
|
13
|
+
it "responds to #site" do
|
14
|
+
expect(subject).to respond_to :site
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
# This file is copied to spec/ when you run 'rails generate rspec:install'
|
2
|
+
ENV["RAILS_ENV"] ||= 'test'
|
3
|
+
# require File.expand_path("../dummy/config/environment", __FILE__)
|
4
|
+
# require 'rspec/rails'
|
5
|
+
# require 'rspec/autorun'
|
6
|
+
|
7
|
+
# Requires supporting ruby files with custom matchers and macros, etc, in
|
8
|
+
# spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are
|
9
|
+
# run as spec files by default. This means that files in spec/support that end
|
10
|
+
# in _spec.rb will both be required and run as specs, causing the specs to be
|
11
|
+
# run twice. It is recommended that you do not name files matching this glob to
|
12
|
+
# end with _spec.rb. You can configure this pattern with with the --pattern
|
13
|
+
# option on the command line or in ~/.rspec, .rspec or `.rspec-local`.
|
14
|
+
Dir[File.expand_path("../support/**/*.rb", __FILE__)].each { |f| require f }
|
15
|
+
|
16
|
+
# Checks for pending migrations before tests are run.
|
17
|
+
# If you are not using ActiveRecord, you can remove this line.
|
18
|
+
# ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
|
19
|
+
|
20
|
+
|
21
|
+
require 'vcr'
|
22
|
+
VCR.configure do |config|
|
23
|
+
config.cassette_library_dir = 'spec/recorded_responses'
|
24
|
+
config.hook_into :webmock #
|
25
|
+
config.configure_rspec_metadata!
|
26
|
+
config.default_cassette_options = { record: :new_episodes, erb: true }
|
27
|
+
end
|
28
|
+
|
29
|
+
require 'naranya_ecm'
|
30
|
+
|
31
|
+
RSpec.configure do |config|
|
32
|
+
# ## Mock Framework
|
33
|
+
#
|
34
|
+
# If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
|
35
|
+
#
|
36
|
+
# config.mock_with :mocha
|
37
|
+
# config.mock_with :flexmock
|
38
|
+
# config.mock_with :rr
|
39
|
+
|
40
|
+
# Run specs in random order to surface order dependencies. If you find an
|
41
|
+
# order dependency and want to debug it, you can fix the order by providing
|
42
|
+
# the seed, which is printed after each run.
|
43
|
+
# --seed 1234
|
44
|
+
config.order = "random"
|
45
|
+
|
46
|
+
end
|
47
|
+
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
shared_examples "a NaranyaEcm resource" do
|
4
|
+
|
5
|
+
describe "class" do
|
6
|
+
|
7
|
+
subject { described_class }
|
8
|
+
|
9
|
+
it "responds to #site" do
|
10
|
+
expect(subject).to respond_to :site
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "#site" do
|
14
|
+
subject { described_class.site }
|
15
|
+
|
16
|
+
it "has the same URL as in the configuration options" do
|
17
|
+
expect(subject.to_s).to eq NaranyaEcm.options.site
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
it "responds to #find" do
|
22
|
+
expect(subject).to respond_to :find
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "instance" do
|
28
|
+
it "responds to #id" do
|
29
|
+
expect(subject).to respond_to :id
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
metadata
ADDED
@@ -0,0 +1,236 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: naranya_ecm-sdk
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.4
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Roberto Quintanilla
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-03-13 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 4.0.2
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 4.0.2
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activemodel
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 4.0.2
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 4.0.2
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: activeresource
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 4.0.0
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 4.0.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: state_machine
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: fog
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: bundler
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ~>
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.5'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ~>
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.5'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rake
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - '>='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rspec
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ~>
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 3.0.0.beta2
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ~>
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 3.0.0.beta2
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: vcr
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - '>='
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: webmock
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ~>
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '1.16'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ~>
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '1.16'
|
153
|
+
description: Cliente Ruby de NaranyaEcm
|
154
|
+
email:
|
155
|
+
- roberto.quintanilla@naranya.com
|
156
|
+
executables: []
|
157
|
+
extensions: []
|
158
|
+
extra_rdoc_files: []
|
159
|
+
files:
|
160
|
+
- .gitignore
|
161
|
+
- Gemfile
|
162
|
+
- LICENSE.txt
|
163
|
+
- README.md
|
164
|
+
- Rakefile
|
165
|
+
- dev/create_cvm.rb
|
166
|
+
- dev/init.rb
|
167
|
+
- dev/load_cvm.rb
|
168
|
+
- dev/search.rb
|
169
|
+
- lib/naranya_ecm-sdk.rb
|
170
|
+
- lib/naranya_ecm-sdk/version.rb
|
171
|
+
- lib/naranya_ecm/behaviors.rb
|
172
|
+
- lib/naranya_ecm/behaviors/localizable.rb
|
173
|
+
- lib/naranya_ecm/behaviors/timestampable.rb
|
174
|
+
- lib/naranya_ecm/cache.rb
|
175
|
+
- lib/naranya_ecm/cache/key.rb
|
176
|
+
- lib/naranya_ecm/cache/methods.rb
|
177
|
+
- lib/naranya_ecm/has_many_patch.rb
|
178
|
+
- lib/naranya_ecm/lifecycles.rb
|
179
|
+
- lib/naranya_ecm/lifecycles/content_lifecycle.rb
|
180
|
+
- lib/naranya_ecm/lifecycles/lifecycleable.rb
|
181
|
+
- lib/naranya_ecm/lifecycles/version_lifecycle.rb
|
182
|
+
- lib/naranya_ecm/models.rb
|
183
|
+
- lib/naranya_ecm/models/category.rb
|
184
|
+
- lib/naranya_ecm/models/content.rb
|
185
|
+
- lib/naranya_ecm/models/content_version.rb
|
186
|
+
- lib/naranya_ecm/models/download_authorization.rb
|
187
|
+
- lib/naranya_ecm/models/lifecycle.rb
|
188
|
+
- lib/naranya_ecm/models/media_resource.rb
|
189
|
+
- lib/naranya_ecm/search.rb
|
190
|
+
- lib/naranya_ecm/search/hit.rb
|
191
|
+
- lib/naranya_ecm/search/methods.rb
|
192
|
+
- lib/naranya_ecm/search/query.rb
|
193
|
+
- lib/naranya_ecm/search/results.rb
|
194
|
+
- lib/naranya_ecm/site_from_configuration.rb
|
195
|
+
- naranya_ecm-sdk.gemspec
|
196
|
+
- spec/models/category_spec.rb
|
197
|
+
- spec/models/content_spec.rb
|
198
|
+
- spec/models/content_version_spec.rb
|
199
|
+
- spec/models/download_authorization.rb
|
200
|
+
- spec/models/media_spec.rb
|
201
|
+
- spec/models/module_spec.rb
|
202
|
+
- spec/spec_helper.rb
|
203
|
+
- spec/support/naranya_ecms_shared_specs.rb
|
204
|
+
homepage: ''
|
205
|
+
licenses:
|
206
|
+
- MIT
|
207
|
+
metadata: {}
|
208
|
+
post_install_message:
|
209
|
+
rdoc_options: []
|
210
|
+
require_paths:
|
211
|
+
- lib
|
212
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
213
|
+
requirements:
|
214
|
+
- - '>='
|
215
|
+
- !ruby/object:Gem::Version
|
216
|
+
version: '0'
|
217
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
218
|
+
requirements:
|
219
|
+
- - '>='
|
220
|
+
- !ruby/object:Gem::Version
|
221
|
+
version: '0'
|
222
|
+
requirements: []
|
223
|
+
rubyforge_project:
|
224
|
+
rubygems_version: 2.0.14
|
225
|
+
signing_key:
|
226
|
+
specification_version: 4
|
227
|
+
summary: Cliente Ruby de NaranyaEcm
|
228
|
+
test_files:
|
229
|
+
- spec/models/category_spec.rb
|
230
|
+
- spec/models/content_spec.rb
|
231
|
+
- spec/models/content_version_spec.rb
|
232
|
+
- spec/models/download_authorization.rb
|
233
|
+
- spec/models/media_spec.rb
|
234
|
+
- spec/models/module_spec.rb
|
235
|
+
- spec/spec_helper.rb
|
236
|
+
- spec/support/naranya_ecms_shared_specs.rb
|