mark_mapper 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/mark_mapper/connection.rb +30 -0
- data/lib/mark_mapper/railtie.rb +7 -15
- data/lib/mark_mapper/railtie/application.rake +12 -0
- data/lib/mark_mapper/railtie/database.rake +6 -9
- data/lib/mark_mapper/version.rb +1 -1
- data/lib/rails/generators/mark_mapper/config/config_generator.rb +1 -0
- data/lib/rails/generators/mark_mapper/config/templates/marklogic.yml +8 -5
- data/lib/rails/generators/mark_mapper/config/templates/markmapper.rb +14 -0
- metadata +4 -3
- data/lib/mark_mapper/config.rb +0 -90
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8c87d8bd021a66b634a321779d977b24fa209d18
|
4
|
+
data.tar.gz: 50c1eef885256e24025205c026d6e4372e7748c4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: df7c6c45d3016151096980251b5c8e49e3484745e55d1a23f0b9b276bdb5c4705262ff900b015b7ee71bbf9b725aa5515daef8c344b8a6a35050516185f7ed20
|
7
|
+
data.tar.gz: c7252b6b400fd3b7d345cc55d759564c88ad8b88b21d780a35ded5859583e00db31c7eefdee6dfb6bf570f0524e190cc87f46a6117c9fe0bc3e12bca78dd443c
|
@@ -56,5 +56,35 @@ module MarkMapper
|
|
56
56
|
raise 'Set config before connecting. MarkMapper.config = {...}' unless defined?(@@config)
|
57
57
|
@@config
|
58
58
|
end
|
59
|
+
|
60
|
+
def setup(config, environment, options={})
|
61
|
+
self.config = config
|
62
|
+
connect(environment, options)
|
63
|
+
end
|
64
|
+
|
65
|
+
def connect(environment, options={})
|
66
|
+
raise 'Set config before connecting. MongoMapper.config = {...}' if config.blank?
|
67
|
+
env = config_for_environment(environment)
|
68
|
+
|
69
|
+
MarkLogic::Connection.configure({
|
70
|
+
host: env['host'],
|
71
|
+
default_user: env['username'],
|
72
|
+
default_password: env['password']
|
73
|
+
})
|
74
|
+
|
75
|
+
MarkLogic::Connection.configure(manage_port: env['manage_port']) if env['manage_port']
|
76
|
+
MarkLogic::Connection.configure(admin_port: env['admin_port']) if env['admin_port']
|
77
|
+
MarkLogic::Connection.configure(app_services_port: env['app_services_port']) if env['app_services_port']
|
78
|
+
|
79
|
+
MarkMapper.application = MarkLogic::Application.new(
|
80
|
+
"markmapper-application-test",
|
81
|
+
connection: MarkLogic::Connection.new(env['host'], env['port'])
|
82
|
+
)
|
83
|
+
MarkMapper.application.stale?
|
84
|
+
end
|
85
|
+
|
86
|
+
def config_for_environment(environment)
|
87
|
+
config[environment.to_s] || {}
|
88
|
+
end
|
59
89
|
end
|
60
90
|
end
|
data/lib/mark_mapper/railtie.rb
CHANGED
@@ -12,23 +12,15 @@ module MarkMapper
|
|
12
12
|
config.mark_mapper = ActiveSupport::OrderedOptions.new
|
13
13
|
|
14
14
|
# Rescue responses similar to ActiveRecord.
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
else
|
22
|
-
# For rails 3.2 and 4.0
|
23
|
-
config.action_dispatch.rescue_responses.merge!(
|
24
|
-
'MarkMapper::DocumentNotFound' => :not_found,
|
25
|
-
'MarkMapper::InvalidKey' => :unprocessable_entity,
|
26
|
-
'MarkMapper::InvalidScheme' => :unprocessable_entity,
|
27
|
-
'MarkMapper::NotSupported' => :unprocessable_entity
|
28
|
-
)
|
29
|
-
end
|
15
|
+
config.action_dispatch.rescue_responses.merge!(
|
16
|
+
'MarkMapper::DocumentNotFound' => :not_found,
|
17
|
+
'MarkMapper::InvalidKey' => :unprocessable_entity,
|
18
|
+
'MarkMapper::InvalidScheme' => :unprocessable_entity,
|
19
|
+
'MarkMapper::NotSupported' => :unprocessable_entity
|
20
|
+
)
|
30
21
|
|
31
22
|
rake_tasks do
|
23
|
+
load "mark_mapper/railtie/application.rake"
|
32
24
|
load "mark_mapper/railtie/database.rake"
|
33
25
|
end
|
34
26
|
|
@@ -0,0 +1,12 @@
|
|
1
|
+
namespace :app do
|
2
|
+
desc 'Drops all the entire application configuration for the current Rails.env'
|
3
|
+
task :drop => :environment do
|
4
|
+
MarkMapper.application.drop
|
5
|
+
end
|
6
|
+
|
7
|
+
desc 'Creates the application configuration for the current Rails.env'
|
8
|
+
task :create => :environment do
|
9
|
+
puts "creating application"
|
10
|
+
MarkMapper.application.create
|
11
|
+
end
|
12
|
+
end
|
@@ -1,8 +1,10 @@
|
|
1
1
|
namespace :db do
|
2
2
|
unless Rake::Task.task_defined?("db:drop")
|
3
|
-
desc 'Drops all the
|
3
|
+
desc 'Drops all the documents for the database for the current Rails.env'
|
4
4
|
task :drop => :environment do
|
5
|
-
MarkMapper.
|
5
|
+
MarkMapper.application.content_databases.each do |db|
|
6
|
+
db.clear
|
7
|
+
end
|
6
8
|
end
|
7
9
|
end
|
8
10
|
|
@@ -27,7 +29,8 @@ namespace :db do
|
|
27
29
|
|
28
30
|
unless Rake::Task.task_defined?("db:create")
|
29
31
|
task :create => :environment do
|
30
|
-
|
32
|
+
puts "creating database"
|
33
|
+
MarkMapper.application.create
|
31
34
|
end
|
32
35
|
end
|
33
36
|
|
@@ -54,12 +57,6 @@ namespace :db do
|
|
54
57
|
end
|
55
58
|
end
|
56
59
|
end
|
57
|
-
|
58
|
-
desc 'Load indexes from db/indexes.rb'
|
59
|
-
task :index => :environment do
|
60
|
-
indexes = File.join(Rails.root, 'db', 'indexes.rb')
|
61
|
-
load(indexes) if File.exist?(indexes)
|
62
|
-
end
|
63
60
|
end
|
64
61
|
|
65
62
|
task 'test:prepare' => 'db:test:prepare'
|
data/lib/mark_mapper/version.rb
CHANGED
@@ -1,19 +1,22 @@
|
|
1
1
|
defaults: &defaults
|
2
2
|
host: 127.0.0.1
|
3
|
-
port:
|
3
|
+
port: SET YOUR PORT HERE
|
4
|
+
# these are the defaults but you can set them here.
|
5
|
+
# manage_port: 8002
|
6
|
+
# admin_port: 8001
|
7
|
+
# app_services_port: 8000
|
4
8
|
|
5
9
|
development:
|
6
10
|
<<: *defaults
|
7
|
-
|
11
|
+
app_name: <%= database_name || app_name %>_development
|
8
12
|
|
9
13
|
test:
|
10
14
|
<<: *defaults
|
11
|
-
|
12
|
-
w: 0
|
15
|
+
app_name: <%= database_name || app_name %>_test
|
13
16
|
|
14
17
|
# set these environment variables on your prod server
|
15
18
|
production:
|
16
19
|
<<: *defaults
|
17
|
-
|
20
|
+
app_name: <%= database_name || app_name %>
|
18
21
|
username: <%%= ENV['MARKLOGIC_USERNAME'] %>
|
19
22
|
password: <%%= ENV['MARKLOGIC_PASSWORD'] %>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
MarkLogic.application.tap do |app|
|
2
|
+
|
3
|
+
# one way to create a range index. Use this if you want to use MarkMapper's defaults
|
4
|
+
# for your database
|
5
|
+
# app.add_index(MarkLogic::DatabaseSettings::RangeElementIndex.new(:age, :type => 'int'))
|
6
|
+
|
7
|
+
# If you prefer to have finer control over what settings go into a database
|
8
|
+
# you can configure your database(s) like so:
|
9
|
+
app.database('my-content-db') do
|
10
|
+
|
11
|
+
# add range element indexes
|
12
|
+
add_range_element_index(MarkLogic::DatabaseSettings::RangeElementIndex.new(:age, :type => 'int'))
|
13
|
+
end
|
14
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mark_mapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paxton Hare
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -87,7 +87,6 @@ files:
|
|
87
87
|
- examples/scopes.rb
|
88
88
|
- examples/validating/embedded_docs.rb
|
89
89
|
- lib/mark_mapper.rb
|
90
|
-
- lib/mark_mapper/config.rb
|
91
90
|
- lib/mark_mapper/connection.rb
|
92
91
|
- lib/mark_mapper/criteria_hash.rb
|
93
92
|
- lib/mark_mapper/document.rb
|
@@ -182,11 +181,13 @@ files:
|
|
182
181
|
- lib/mark_mapper/plugins/validations.rb
|
183
182
|
- lib/mark_mapper/query.rb
|
184
183
|
- lib/mark_mapper/railtie.rb
|
184
|
+
- lib/mark_mapper/railtie/application.rake
|
185
185
|
- lib/mark_mapper/railtie/database.rake
|
186
186
|
- lib/mark_mapper/translation.rb
|
187
187
|
- lib/mark_mapper/version.rb
|
188
188
|
- lib/rails/generators/mark_mapper/config/config_generator.rb
|
189
189
|
- lib/rails/generators/mark_mapper/config/templates/marklogic.yml
|
190
|
+
- lib/rails/generators/mark_mapper/config/templates/markmapper.rb
|
190
191
|
- lib/rails/generators/mark_mapper/model/model_generator.rb
|
191
192
|
- lib/rails/generators/mark_mapper/model/templates/model.rb
|
192
193
|
- spec/config/mark_mapper.yml
|
data/lib/mark_mapper/config.rb
DELETED
@@ -1,90 +0,0 @@
|
|
1
|
-
require 'yaml'
|
2
|
-
|
3
|
-
module MarkMapper
|
4
|
-
|
5
|
-
# This module defines all the configuration options for MarkMapper, including the
|
6
|
-
# database connections.
|
7
|
-
module Config
|
8
|
-
extend self
|
9
|
-
|
10
|
-
def indexes
|
11
|
-
@indexes ||= []
|
12
|
-
end
|
13
|
-
|
14
|
-
def settings
|
15
|
-
@settings ||= {
|
16
|
-
:host => 'localhost',
|
17
|
-
:port => 8003,
|
18
|
-
:manage_port => 8002,
|
19
|
-
:admin_port => 8001,
|
20
|
-
:app_name => defined?(Rails) ? Rails::Application.subclasses.first.parent.to_s.underscore : nil,
|
21
|
-
:username => nil,
|
22
|
-
:password => nil
|
23
|
-
}
|
24
|
-
end
|
25
|
-
|
26
|
-
def application
|
27
|
-
@application ||=
|
28
|
-
begin
|
29
|
-
MarkLogic::Application.new(app_name,
|
30
|
-
:port => port,
|
31
|
-
:connection => MarkLogic::Connection.new(host, port))
|
32
|
-
end
|
33
|
-
yield(@application) if block_given?
|
34
|
-
@application
|
35
|
-
end
|
36
|
-
|
37
|
-
# Load the settings from a compliant mark_mapper.yml file. This can be used for
|
38
|
-
# easy setup with frameworks other than Rails.
|
39
|
-
#
|
40
|
-
# @example Configure MarkMapper.
|
41
|
-
# MarkMapper.load!("/path/to/mark_mapper.yml")
|
42
|
-
#
|
43
|
-
# @param [ String ] path The path to the file.
|
44
|
-
# @param [ String, Symbol ] environment The environment to load.
|
45
|
-
#
|
46
|
-
# @since 0.0.1
|
47
|
-
def load!(path, environment = nil)
|
48
|
-
options = load_yaml(path, environment)
|
49
|
-
load_configuration(options) if options.present?
|
50
|
-
end
|
51
|
-
|
52
|
-
# From a hash of options, load all the configuration.
|
53
|
-
#
|
54
|
-
# @example Load the configuration.
|
55
|
-
# config.load_configuration(options)
|
56
|
-
#
|
57
|
-
# @param [ Hash ] options The configuration options.
|
58
|
-
#
|
59
|
-
# @since 0.0.1
|
60
|
-
def load_configuration(options)
|
61
|
-
options.each_pair do |key, value|
|
62
|
-
if settings.has_key? key.to_sym
|
63
|
-
settings[key.to_sym] = value
|
64
|
-
else
|
65
|
-
raise InvalidConfigurationOption, "Invalid configuration item: #{key}"
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
def env_name
|
71
|
-
return Rails.env if defined?(Rails)
|
72
|
-
ENV["RACK_ENV"] || ENV["MARKMAPPER_ENV"] || raise(Errors::NoEnvironment.new)
|
73
|
-
end
|
74
|
-
|
75
|
-
def load_yaml(path, environment = nil)
|
76
|
-
env = environment ? environment.to_s : env_name
|
77
|
-
YAML.load(ERB.new(File.new(path).read).result)[env]
|
78
|
-
end
|
79
|
-
|
80
|
-
def method_missing(name, *args)
|
81
|
-
attr = name.to_s
|
82
|
-
sym = attr.delete("=").to_sym
|
83
|
-
if attr.include?("=")
|
84
|
-
settings[sym] = args.first
|
85
|
-
else
|
86
|
-
settings[sym]
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|