llt-db_handler 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/.rspec +3 -0
- data/Gemfile +18 -0
- data/LICENSE.txt +22 -0
- data/README.md +80 -0
- data/Rakefile +9 -0
- data/lib/llt/db_handler.rb +12 -0
- data/lib/llt/db_handler/common_db.rb +15 -0
- data/lib/llt/db_handler/prometheus.rb +95 -0
- data/lib/llt/db_handler/prometheus/db/database.yml +8 -0
- data/lib/llt/db_handler/prometheus/db/models.rb +111 -0
- data/lib/llt/db_handler/prometheus/db/prometheus_stems.dump +0 -0
- data/lib/llt/db_handler/prometheus/db_to_lemma.rb +46 -0
- data/lib/llt/db_handler/prometheus/stats.rb +44 -0
- data/lib/llt/db_handler/stub.rb +61 -0
- data/lib/llt/db_handler/stub/stub_entries.rb +87 -0
- data/lib/llt/db_handler/tasks.rb +32 -0
- data/lib/llt/db_handler/version.rb +5 -0
- data/llt-db_handler.gemspec +32 -0
- data/spec/lib/llt/db_handler/prometheus/db_to_lemma_spec.rb +40 -0
- data/spec/lib/llt/db_handler/prometheus/stats_spec.rb +47 -0
- data/spec/lib/llt/db_handler/prometheus_spec.rb +83 -0
- data/spec/lib/llt/db_handler/stub_spec.rb +54 -0
- data/spec/lib/llt/db_handler_spec.rb +13 -0
- data/spec/spec_helper.rb +21 -0
- metadata +230 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 84082e870e818bb1bc72a8b9201b23a80d645b39
|
4
|
+
data.tar.gz: ba26046cb7b5ab0ead5aafbd04648cf2838d8387
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 8dfa39ffb5c43cfb2f22108808d59a44971e5f8a81b6eae7e955bbbe695d2467474ca3a3b09f647e0f710ae2829fd59857e24635765790bc3b865040193a0727
|
7
|
+
data.tar.gz: ab37d71755e9dd08c9f70336dfff0d8b5e8384a3800d17546bb4f0e4948825b0da68e91817f005f46e3e29af1bc7597999ebcb1d4a61c5db4a7352a05b2d6a28
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/Gemfile
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
|
3
|
+
# Specify your gem's dependencies in llt-db_handler.gemspec
|
4
|
+
gemspec
|
5
|
+
gem 'coveralls', require: false
|
6
|
+
gem 'llt-core_extensions', git: 'git@github.com:latin-language-toolkit/llt-core_extensions.git'
|
7
|
+
gem 'llt-constants', git: 'git@github.com:latin-language-toolkit/llt-constants.git'
|
8
|
+
gem 'llt-form_builder', git: 'git@github.com:latin-language-toolkit/llt-form_builder.git'
|
9
|
+
gem 'llt-helpers', git: 'git@github.com:latin-language-toolkit/llt-helpers.git'
|
10
|
+
|
11
|
+
platform :ruby do
|
12
|
+
gem 'pg'
|
13
|
+
end
|
14
|
+
|
15
|
+
platform :jruby do
|
16
|
+
gem 'activerecord-jdbcpostgresql-adapter'
|
17
|
+
end
|
18
|
+
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2013 LFDM
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
# LLT::DbHandler
|
2
|
+
|
3
|
+
LLT abstraction to communicate with stem dictionaries/databases.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
gem 'llt-db_handler'
|
10
|
+
|
11
|
+
And then execute:
|
12
|
+
|
13
|
+
$ bundle
|
14
|
+
|
15
|
+
Or install it yourself as:
|
16
|
+
|
17
|
+
$ gem install llt-db_handler
|
18
|
+
|
19
|
+
You will also want to install a proper postgresql adapter for the stem
|
20
|
+
dictionary. You could add this to your Gemfile:
|
21
|
+
|
22
|
+
```ruby
|
23
|
+
platform :ruby do
|
24
|
+
gem 'pg'
|
25
|
+
end
|
26
|
+
|
27
|
+
platform :jruby do
|
28
|
+
gem 'activerecord-jdbcpostgresql-adapter'
|
29
|
+
end
|
30
|
+
```
|
31
|
+
|
32
|
+
|
33
|
+
## Usage
|
34
|
+
|
35
|
+
The Prometheus Stem Dictionary comes with this gem. To use it make sure
|
36
|
+
you have postgresql installed and a user called prometheus ready:
|
37
|
+
|
38
|
+
```
|
39
|
+
psql
|
40
|
+
create user prometheus with password 'admin'
|
41
|
+
alter user prometheus with create_db
|
42
|
+
```
|
43
|
+
Create the database and seed data:
|
44
|
+
|
45
|
+
```
|
46
|
+
rake db:prometheus:create
|
47
|
+
rake db:prometheus:seed
|
48
|
+
```
|
49
|
+
|
50
|
+
The database prometheus_stems will now be available.
|
51
|
+
<!-->
|
52
|
+
# This should not be needed as the db is created by the user prometheus
|
53
|
+
anyway.
|
54
|
+
You might have to grant privileges to the user prometheus before going
|
55
|
+
further:
|
56
|
+
|
57
|
+
```
|
58
|
+
psql
|
59
|
+
grant all on database prometheus_stems to prometheus
|
60
|
+
```
|
61
|
+
-->
|
62
|
+
|
63
|
+
```ruby
|
64
|
+
require 'llt/db_handler/prometheus'
|
65
|
+
|
66
|
+
db = LLT::DbHandler::Prometheus.new
|
67
|
+
db.count # => returns the total number of entries
|
68
|
+
db.all_entries # => returns all entries as AR models
|
69
|
+
db.lemma_list # => returns an Array of lemmas as strings
|
70
|
+
db.lemma_list(true) # => returns detailed lemma strings
|
71
|
+
```
|
72
|
+
|
73
|
+
|
74
|
+
## Contributing
|
75
|
+
|
76
|
+
1. Fork it
|
77
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
78
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
79
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
80
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require "llt/db_handler/version"
|
2
|
+
require 'llt/db_handler/common_db'
|
3
|
+
|
4
|
+
module LLT
|
5
|
+
module DbHandler
|
6
|
+
def self.use(db)
|
7
|
+
db = db.capitalize
|
8
|
+
raise ArgumentError, "No database handler called #{db} defined" unless const_defined?(db)
|
9
|
+
const_get(db.capitalize).new
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,95 @@
|
|
1
|
+
require 'forwardable'
|
2
|
+
require 'llt/db_handler/common_db'
|
3
|
+
require 'llt/helpers'
|
4
|
+
require 'llt/stem_builder'
|
5
|
+
|
6
|
+
module LLT
|
7
|
+
module DbHandler
|
8
|
+
class Prometheus < CommonDb
|
9
|
+
extend Forwardable
|
10
|
+
|
11
|
+
require 'active_record'
|
12
|
+
require 'llt/db_handler/prometheus/db/models'
|
13
|
+
require 'llt/db_handler/prometheus/stats'
|
14
|
+
|
15
|
+
include Helpers::Constantize
|
16
|
+
include Helpers::PrimitiveCache
|
17
|
+
|
18
|
+
def_delegators :stats, :all_entries, :count, :lemma_list
|
19
|
+
|
20
|
+
attr_reader :type
|
21
|
+
|
22
|
+
def initialize(cache: false)
|
23
|
+
@type = :prometheus
|
24
|
+
enable_cache if cache
|
25
|
+
end
|
26
|
+
|
27
|
+
def direct_lookup(table, string)
|
28
|
+
query_db(table, string)
|
29
|
+
end
|
30
|
+
|
31
|
+
def look_up_stem(args)
|
32
|
+
cached(args) { new_lookup(args) }
|
33
|
+
end
|
34
|
+
|
35
|
+
def stats
|
36
|
+
@stats ||= Stats.new
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
|
41
|
+
def new_lookup(args)
|
42
|
+
table = args[:type]
|
43
|
+
column = args[:stem_type]
|
44
|
+
column = (column.to_s << "_stem").to_sym if column == :pr || column == :pf
|
45
|
+
stem = args[:stem]
|
46
|
+
restrictions = args[:restrictions]
|
47
|
+
|
48
|
+
entries = query_db(table, stem, column)
|
49
|
+
|
50
|
+
if restrictions
|
51
|
+
restr_type = normalized(restrictions[:type])
|
52
|
+
valids = restrictions[:values]
|
53
|
+
entries.keep_if { |entry| valids.include?(entry.send(restr_type)) }
|
54
|
+
end
|
55
|
+
|
56
|
+
stemify(entries)
|
57
|
+
end
|
58
|
+
|
59
|
+
def query_db(table, string, column = :word)
|
60
|
+
# I tried to make an sql string out of this, but it's a lot slower actually...
|
61
|
+
constant_by_type(table, prefix: :Db, namespace: StemDatabase).where(column => string)
|
62
|
+
end
|
63
|
+
|
64
|
+
def stemify(entries)
|
65
|
+
entries.flat_map do |entry|
|
66
|
+
type = entry.type
|
67
|
+
args = case type
|
68
|
+
when :noun then hashify(entry, :nom, :stem, :inflectable_class, :sexus)
|
69
|
+
when :persona then hashify(entry, :nom, :stem, :inflectable_class, :sexus)
|
70
|
+
when :place then hashify(entry, :nom, :stem, :inflectable_class, :sexus)
|
71
|
+
when :adjective then hashify(entry, :nom, :stem, :inflectable_class, :number_of_endings)
|
72
|
+
when :ethnic then hashify(entry, :stem, :inflectable_class)
|
73
|
+
when :verb then hashify(entry, :pr, :pf, :ppp, :inflectable_class, :pf_composition, :deponens, :dir_objs, :indir_objs)
|
74
|
+
end
|
75
|
+
|
76
|
+
args ? StemBuilder.build(type, args, @type) : []
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def hashify(entry, *args)
|
81
|
+
h = {}
|
82
|
+
args.each { |arg| h[arg] = entry.send(arg) }
|
83
|
+
h[:lemma_key] = entry.id
|
84
|
+
h
|
85
|
+
end
|
86
|
+
|
87
|
+
def normalized(restr_type)
|
88
|
+
case restr_type.to_sym
|
89
|
+
when :inflection_class then :inflectable_class
|
90
|
+
else restr_type
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
@@ -0,0 +1,111 @@
|
|
1
|
+
require 'llt/db_handler/prometheus/db_to_lemma'
|
2
|
+
|
3
|
+
module StemDatabase
|
4
|
+
class Db < ActiveRecord::Base
|
5
|
+
self.abstract_class = true
|
6
|
+
db = YAML::load(File.open(File.expand_path("../database.yml", __FILE__)))
|
7
|
+
establish_connection(db)
|
8
|
+
|
9
|
+
include LLT::DbHandler::Prometheus::DbToLemma
|
10
|
+
|
11
|
+
def type
|
12
|
+
self.class.name.match(/Db(.*)/)[1].downcase.to_sym
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
class DbAdjective < Db
|
17
|
+
attr_accessible :inflectable_class, :nom, :number_of_endings, :stem, :number
|
18
|
+
validates_presence_of :nom, :stem, :number_of_endings, :inflectable_class
|
19
|
+
validates :stem, uniqueness: { scope: %i{ nom number_of_endings inflectable_class number } }
|
20
|
+
|
21
|
+
def base_lemma
|
22
|
+
nom
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class DbAdverb < Db
|
27
|
+
attr_accessible :double, :word
|
28
|
+
|
29
|
+
validates_presence_of :word
|
30
|
+
validates :word, uniqueness: true
|
31
|
+
|
32
|
+
def base_lemma
|
33
|
+
word
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
class DbEthnic < Db
|
38
|
+
attr_accessible :inflectable_class, :stem
|
39
|
+
validates_presence_of :stem, :inflectable_class
|
40
|
+
validates :stem, uniqueness: { scope: :inflectable_class }
|
41
|
+
|
42
|
+
def base_lemma
|
43
|
+
"#{stem}#{lemma_ending}"
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
def lemma_ending
|
49
|
+
case inflectable_class
|
50
|
+
when 1 then 'us'
|
51
|
+
when 3 then 'is'
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
class DbPersona < Db
|
57
|
+
attr_accessible :defective, :inflectable_class, :nom, :sexus, :stem
|
58
|
+
validates_presence_of :stem, :inflectable_class
|
59
|
+
validates :stem, uniqueness: { scope: %i{ nom inflectable_class sexus } }
|
60
|
+
|
61
|
+
def base_lemma
|
62
|
+
nom
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
class DbPlace < Db
|
67
|
+
attr_accessible :defective, :inflectable_class, :nom, :sexus, :stem
|
68
|
+
validates_presence_of :stem, :inflectable_class
|
69
|
+
validates :stem, uniqueness: { scope: %i{ nom inflectable_class sexus } }
|
70
|
+
|
71
|
+
def base_lemma
|
72
|
+
nom
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
class DbNoun < Db
|
77
|
+
attr_accessible :defective, :inflectable_class, :nom, :sexus, :stem
|
78
|
+
validates_presence_of :stem, :inflectable_class
|
79
|
+
validates :stem, uniqueness: { scope: %i{ nom inflectable_class sexus } }
|
80
|
+
|
81
|
+
def base_lemma
|
82
|
+
nom
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
class DbVerb < Db
|
87
|
+
attr_accessible :pr_stem, :pf_stem, :ppp, :inflectable_class, :dir_objs,
|
88
|
+
:indir_objs, :deponens, :number
|
89
|
+
validates_presence_of :pr_stem, :inflectable_class
|
90
|
+
validates :pr_stem, uniqueness: { scope: %i{ pf_stem ppp deponens inflectable_class } }
|
91
|
+
|
92
|
+
def pr; pr_stem; end
|
93
|
+
def pf; pf_stem; end
|
94
|
+
def extension; tempus_sign; end
|
95
|
+
|
96
|
+
def base_lemma
|
97
|
+
"#{lemma_stem}#{lemma_ending}"
|
98
|
+
end
|
99
|
+
|
100
|
+
private
|
101
|
+
|
102
|
+
def lemma_stem
|
103
|
+
inflectable_class == 1 ? pr_stem.chop : pr_stem
|
104
|
+
end
|
105
|
+
|
106
|
+
def lemma_ending
|
107
|
+
ending = inflectable_class == 5 ? 'io' : 'o'
|
108
|
+
deponens ? (ending + 'r') : ending
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
Binary file
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module LLT
|
2
|
+
module DbHandler
|
3
|
+
class Prometheus < CommonDb
|
4
|
+
module DbToLemma
|
5
|
+
# to be included by Db classes, the module
|
6
|
+
# is tightly coupled to them
|
7
|
+
|
8
|
+
def to_lemma(detailed = false)
|
9
|
+
if detailed
|
10
|
+
"#{base_lemma}##{number_attr}, #{category}#{str_helper(:inflectable_class, 'iclass')}#{str_helper(:sexus)}"
|
11
|
+
else
|
12
|
+
base_lemma
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def category
|
19
|
+
# DbVerb to 'verb'
|
20
|
+
self.class.name[2..-1].downcase
|
21
|
+
end
|
22
|
+
|
23
|
+
def str_helper(meth, appearance = meth)
|
24
|
+
val = guarded(meth)
|
25
|
+
(val ? ", #{appearance}: #{val}" : '')
|
26
|
+
end
|
27
|
+
|
28
|
+
def base_lemma
|
29
|
+
raise NoMethodError.new("Has to be overwritten by class that includes the module DbToLemma")
|
30
|
+
end
|
31
|
+
|
32
|
+
def number_attr
|
33
|
+
guarded(:number, 1)
|
34
|
+
end
|
35
|
+
|
36
|
+
def guarded(meth, default_return = nil)
|
37
|
+
if respond_to?(meth)
|
38
|
+
send(meth)
|
39
|
+
else
|
40
|
+
default_return
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module LLT
|
2
|
+
module DbHandler
|
3
|
+
class Prometheus
|
4
|
+
class Stats
|
5
|
+
include Enumerable
|
6
|
+
|
7
|
+
CATEGORIES = %i{ noun adjective adverb verb persona ethnic place }
|
8
|
+
TABLES = CATEGORIES.map { |cat| cat.to_s.capitalize.prepend('Db').to_sym }
|
9
|
+
|
10
|
+
def count
|
11
|
+
@count ||= compute_count
|
12
|
+
end
|
13
|
+
|
14
|
+
def all_entries
|
15
|
+
@all_entries ||= flat_map(&:all)
|
16
|
+
|
17
|
+
if block_given?
|
18
|
+
@all_entries.map { |entry| yield(entry) }
|
19
|
+
else
|
20
|
+
@all_entries
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def lemma_list(detailed = false)
|
25
|
+
all_entries.map { |entry| entry.to_lemma(detailed) }
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def compute_count
|
31
|
+
map(&:count).inject(:+)
|
32
|
+
end
|
33
|
+
|
34
|
+
def each(&blk)
|
35
|
+
TABLES.map { |table| as_const(table) }.each(&blk)
|
36
|
+
end
|
37
|
+
|
38
|
+
def as_const(symbol)
|
39
|
+
StemDatabase.const_get(symbol)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'llt/db_handler/common_db'
|
2
|
+
|
3
|
+
module LLT
|
4
|
+
module DbHandler
|
5
|
+
class Stub < CommonDb
|
6
|
+
require 'llt/db_handler/stub/stub_entries'
|
7
|
+
|
8
|
+
@stems = {}
|
9
|
+
|
10
|
+
class << self
|
11
|
+
include Helpers::Normalizer
|
12
|
+
|
13
|
+
attr_reader :stems
|
14
|
+
|
15
|
+
def create_stem_stub(return_val, args)
|
16
|
+
args = normalize_args(args)
|
17
|
+
@stems[args] = return_val
|
18
|
+
end
|
19
|
+
alias :create :create_stem_stub
|
20
|
+
|
21
|
+
def setup
|
22
|
+
StubEntries.setup
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def type
|
27
|
+
:stub
|
28
|
+
end
|
29
|
+
|
30
|
+
def look_up_stem(args)
|
31
|
+
super
|
32
|
+
stems.select do |stored_args|
|
33
|
+
if stored_args.merge(args_to_query) == stored_args
|
34
|
+
if restr = @args[:restrictions]
|
35
|
+
restr[:values].include?(stored_args[restr[:type]])
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end.values
|
39
|
+
end
|
40
|
+
|
41
|
+
def direct_lookup(type, string)
|
42
|
+
args = dl_to_query(type, string)
|
43
|
+
stems.select do |stored|
|
44
|
+
stored.merge(args) == stored
|
45
|
+
end.values
|
46
|
+
end
|
47
|
+
|
48
|
+
def dl_to_query(type, string)
|
49
|
+
{ type: type, word: string}
|
50
|
+
end
|
51
|
+
|
52
|
+
def args_to_query
|
53
|
+
{type: @args[:type], @args[:stem_type] => @args[:stem] }
|
54
|
+
end
|
55
|
+
|
56
|
+
def stems
|
57
|
+
self.class.stems
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
require 'ostruct'
|
2
|
+
|
3
|
+
class LLT::DbHandler::Stub::StubEntries
|
4
|
+
class << self
|
5
|
+
def setup(size = :medium)
|
6
|
+
db_stub.stems.clear
|
7
|
+
|
8
|
+
medium_setup
|
9
|
+
# not implemented yet
|
10
|
+
#case size
|
11
|
+
#when :big then big_setup
|
12
|
+
#when :small then small_setup
|
13
|
+
#else medium_setup
|
14
|
+
#end
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def small_setup
|
20
|
+
end
|
21
|
+
|
22
|
+
def medium_setup
|
23
|
+
wsr(type: :noun, nom: "homo", stem: "homin", itype: 3, sexus: :m)
|
24
|
+
wsr(type: :noun, nom: "vir", stem: "vir", itype: 2, sexus: :m)
|
25
|
+
wsr(type: :noun, nom: "ratio", stem: "ration", itype: 3, sexus: :f)
|
26
|
+
wsr(type: :noun, nom: "magnitudo", stem: "magnitudin", itype: 3, sexus: :f)
|
27
|
+
wsr(type: :noun, nom: "libido", stem: "libidin", itype: 3, sexus: :f)
|
28
|
+
wsr(type: :noun, nom: "nox", stem: "noct", itype: 3, sexus: :f)
|
29
|
+
wsr(type: :noun, nom: "filius", stem: "fili", itype: 2, sexus: :m)
|
30
|
+
wsr(type: :noun, nom: "servus", stem: "serv", itype: 2, sexus: :m)
|
31
|
+
|
32
|
+
wsr(type: :noun, nom: "flumen", stem: "flumin", itype: 3, sexus: :n)
|
33
|
+
wsr(type: :noun, nom: "arma", stem: "arm", itype: 2, sexus: :n) # this might actually be wrong?
|
34
|
+
|
35
|
+
wsr(type: :persona, nom: "Plato", stem: "Platon", itype: 3)
|
36
|
+
wsr(type: :persona, nom: "Solon", stem: "Solon", itype: 3)
|
37
|
+
|
38
|
+
wsr(type: :adjective, nom: "communis", stem: "commun", itype: 3, number_of_endings: 1)
|
39
|
+
wsr(type: :adjective, nom: "diligens", stem: "diligent", itype: 3, number_of_endings: 1)
|
40
|
+
wsr(type: :adjective, nom: "laetus", stem: "laet", itype: 1, number_of_endings: 3)
|
41
|
+
wsr(type: :adjective, nom: "ferus", stem: "fer", itype: 1, number_of_endings: 3)
|
42
|
+
|
43
|
+
wsr(type: :adjective, nom: "aestivus", stem: "aestiv", itype: 1, number_of_endings: 3)
|
44
|
+
wsr(type: :adjective, nom: "suavis", stem: "suav", itype: 3, number_of_endings: 2)
|
45
|
+
|
46
|
+
|
47
|
+
wsr(type: :ethnic, stem: "Haedu", inflection_class: 1)
|
48
|
+
wsr(type: :ethnic, stem: "Redon", inflection_class: 3)
|
49
|
+
|
50
|
+
wsr(type: :verb, pr: "ita", pf: "itav", pf_composition: "v", itype: 1, dep: false, dir_objs: "", indir_objs: "")
|
51
|
+
wsr(type: :verb, pr: "cana", pf: "canav", ppp: "canat", pf_composition: "v", itype: 1, dep: false, dir_objs: "", indir_objs: "")
|
52
|
+
wsr(type: :verb, pr: "mone", pf: "monu", ppp: "monit", pf_composition: "u", itype: 2, dep: false, dir_objs: "", indir_objs: "")
|
53
|
+
wsr(type: :verb, pr: "move", pf: "movi", ppp: "mot", pf_composition: "ablaut", itype: 2, dep: false, dir_objs: "", indir_objs: "")
|
54
|
+
wsr(type: :verb, pr: "mitt", pf: "mis", ppp: "miss", pf_composition: "s", itype: 3, dep: false, dir_objs: "", indir_objs: "")
|
55
|
+
wsr(type: :verb, pr: "viv", pf: "vix", ppp: "-", pf_composition: "s", itype: 3, dep: false, dir_objs: "", indir_objs: "")
|
56
|
+
wsr(type: :verb, pr: "audi", pf: "audiv", ppp: "audit", pf_composition: "v", itype: 4, dep: false, dir_objs: "", indir_objs: "")
|
57
|
+
wsr(type: :verb, pr: "horta", ppp: "hortat", itype: 1, dep: true , dir_objs: "", indir_objs: "")
|
58
|
+
|
59
|
+
dl(type: :adverb, word: "ita")
|
60
|
+
dl(type: :adverb, word: "iam")
|
61
|
+
dl(type: :adverb, word: "subito")
|
62
|
+
end
|
63
|
+
|
64
|
+
def big_setup
|
65
|
+
end
|
66
|
+
|
67
|
+
def db_stub
|
68
|
+
LLT::DbHandler::Stub
|
69
|
+
end
|
70
|
+
|
71
|
+
def factory(type, args)
|
72
|
+
LLT::StemBuilder.build(type, args, "stub")
|
73
|
+
end
|
74
|
+
|
75
|
+
# with_single_return
|
76
|
+
def wsr(args)
|
77
|
+
ret_val = factory(args[:type], args.reject { |k, _| k == :type })
|
78
|
+
db_stub.create(ret_val, args)
|
79
|
+
end
|
80
|
+
|
81
|
+
# direct_lookup
|
82
|
+
def dl(args)
|
83
|
+
ret_val = OpenStruct.new(word: args[:word])
|
84
|
+
db_stub.create(ret_val, args)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
namespace :db do
|
2
|
+
namespace :prometheus do
|
3
|
+
DUMP_FILE = 'lib/llt/db_handler/prometheus/db/prometheus_stems.dump'
|
4
|
+
|
5
|
+
desc 'Opens a pry console with a prometheus instance preloaded as db'
|
6
|
+
task :console do
|
7
|
+
exec %{pry -e "require 'llt/db_handler/prometheus';
|
8
|
+
db = LLT::DbHandler::Prometheus.new;
|
9
|
+
puts 'A Prometheus instance is waiting for you in the variable db\!'; db"}
|
10
|
+
end
|
11
|
+
|
12
|
+
desc 'Creates the stem database'
|
13
|
+
task :create do
|
14
|
+
exec 'createdb -U prometheus -h localhost -T template0 prometheus_stems'
|
15
|
+
end
|
16
|
+
|
17
|
+
desc 'Opens the psql console'
|
18
|
+
task :db_console do
|
19
|
+
exec 'psql -U prometheus prometheus_stems'
|
20
|
+
end
|
21
|
+
|
22
|
+
desc "Dumps the stem databases' contents to a psql dump file"
|
23
|
+
task :dump do
|
24
|
+
exec "pg_dump -U prometheus -Fc prometheus_stems > #{DUMP_FILE}"
|
25
|
+
end
|
26
|
+
|
27
|
+
desc 'Loads the seed data - UNDUMPED CHANGES WILL BE LOST!'
|
28
|
+
task :seed do
|
29
|
+
exec "pg_restore --verbose --clean --no-acl --no-owner -h localhost -U prometheus -d prometheus_stems #{DUMP_FILE}"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'llt/db_handler/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "llt-db_handler"
|
8
|
+
spec.version = LLT::DbHandler::VERSION
|
9
|
+
spec.authors = ["LFDM"]
|
10
|
+
spec.email = ["1986gh@gmail.com"]
|
11
|
+
spec.description = %q{LLT DB Handler}
|
12
|
+
spec.summary = %q{LLT DB Handler}
|
13
|
+
spec.homepage = ""
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files`.split($/)
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
22
|
+
spec.add_development_dependency "pry"
|
23
|
+
spec.add_development_dependency "rake"
|
24
|
+
spec.add_development_dependency "rspec"
|
25
|
+
spec.add_development_dependency "simplecov", "~> 0.7"
|
26
|
+
spec.add_development_dependency "yard"
|
27
|
+
spec.add_dependency 'activerecord', "~> 3.2"
|
28
|
+
spec.add_dependency "llt-core_extensions"
|
29
|
+
spec.add_dependency "llt-constants"
|
30
|
+
spec.add_dependency "llt-form_builder"
|
31
|
+
spec.add_dependency "llt-helpers"
|
32
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'llt/db_handler/prometheus/db_to_lemma'
|
3
|
+
|
4
|
+
describe LLT::DbHandler::Prometheus::DbToLemma do
|
5
|
+
class DummyDbClass
|
6
|
+
include LLT::DbHandler::Prometheus::DbToLemma
|
7
|
+
end
|
8
|
+
|
9
|
+
let(:dummy) { DummyDbClass.new }
|
10
|
+
|
11
|
+
# private stuff, just to be safe
|
12
|
+
describe "#number_attr" do
|
13
|
+
it "returns the entries number attribute" do
|
14
|
+
dummy.stub(:number) { 2 }
|
15
|
+
dummy.send(:number_attr).should == 2
|
16
|
+
end
|
17
|
+
|
18
|
+
it "defaults to one when number attribute is not present" do
|
19
|
+
dummy.send(:number_attr).should == 1
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "#base_lemma" do
|
24
|
+
it "raises an error when the including class doesn't overwrite this method" do
|
25
|
+
expect { dummy.send(:base_lemma) }.to raise_error NoMethodError, /overwritten/
|
26
|
+
end
|
27
|
+
|
28
|
+
it "returns whatever base_lemma returns when implemented by the including class" do
|
29
|
+
dummy.stub(:base_lemma) { 1 }
|
30
|
+
dummy.send(:base_lemma).should == 1
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "#category" do
|
35
|
+
it "returns the category name" do
|
36
|
+
dummy.stub_chain(:class, :name).and_return('DbSomething')
|
37
|
+
dummy.send(:category).should == 'something'
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe LLT::DbHandler::Prometheus::Stats do
|
4
|
+
let(:stats) { LLT::DbHandler::Prometheus::Stats.new }
|
5
|
+
|
6
|
+
describe "#count" do
|
7
|
+
it "returns the total number of db entries" do
|
8
|
+
stats.count.should be_kind_of Fixnum
|
9
|
+
end
|
10
|
+
|
11
|
+
it "returns the number 40000+ entries" do
|
12
|
+
# stupid to test a concrete count, but let it scream
|
13
|
+
# if we have strangly few entries
|
14
|
+
stats.count.should > 40000
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe "#all_entries", :slow do
|
19
|
+
it "returns an Array of all db objects" do
|
20
|
+
stats.all_entries.should be_kind_of Array
|
21
|
+
end
|
22
|
+
|
23
|
+
it "takes a block to be executed on each entry" do
|
24
|
+
mapped_entries = stats.all_entries { |entry| entry.kind_of?(Object)}
|
25
|
+
uniq_for_easier_test = mapped_entries.uniq
|
26
|
+
uniq_for_easier_test.should have(1).item
|
27
|
+
uniq_for_easier_test.first.should be_true
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe "#lemma_list", :slow do
|
32
|
+
let(:lemma_list_entry) { stats.lemma_list.first}
|
33
|
+
let(:lemma_format) { '\p{L}[a-z]*' }
|
34
|
+
|
35
|
+
it "returns an Array of lemma strings" do
|
36
|
+
stats.lemma_list.count.should == stats.count
|
37
|
+
end
|
38
|
+
|
39
|
+
it "lemmas are represented with their base form" do
|
40
|
+
stats.lemma_list.first.should =~ /^#{lemma_format}$/
|
41
|
+
end
|
42
|
+
|
43
|
+
it "returns a more detailed lemma string with a truthy param" do
|
44
|
+
stats.lemma_list(true).first.should =~ /^#{lemma_format}#\d.+$/
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe LLT::DbHandler::Prometheus do
|
4
|
+
let(:db) { LLT::DbHandler::Prometheus.new }
|
5
|
+
|
6
|
+
describe "#type" do
|
7
|
+
it "returns :prometheus as its type" do
|
8
|
+
db.type.should == :prometheus
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "#look_up_stem" do
|
13
|
+
let(:query) { { type: :noun, stem: "ros", stem_type: :stem} }
|
14
|
+
let(:query2) { { type: :verb, stem: "ama", stem_type: :pr} }
|
15
|
+
|
16
|
+
let(:failing_query) { { type: :verb, stem: "ama", stem_type: :ppp} }
|
17
|
+
|
18
|
+
it "searches the db - with a noun" do
|
19
|
+
db.look_up_stem(query).should_not be_empty
|
20
|
+
end
|
21
|
+
|
22
|
+
it "searches the db - with a verb" do
|
23
|
+
db.look_up_stem(query2).should_not be_empty
|
24
|
+
end
|
25
|
+
|
26
|
+
it "returns an empty array when nothing is found" do
|
27
|
+
db.look_up_stem(failing_query).should be_empty
|
28
|
+
end
|
29
|
+
|
30
|
+
# bypassing the query in the two following specs, we're only interested in the
|
31
|
+
# conversion process
|
32
|
+
|
33
|
+
let(:fake_entry1) do
|
34
|
+
f = double(nom: "rosa", stem: "ros", inflectable_class: 1, sexus: "f", id: 2)
|
35
|
+
f.stub(:type) { :noun }
|
36
|
+
f
|
37
|
+
end
|
38
|
+
|
39
|
+
let(:fake_entry2) do
|
40
|
+
f = double(nom: "rosa", stem: "ros", inflectable_class: 2, sexus: "f", id: 1)
|
41
|
+
f.stub(:type) { :noun }
|
42
|
+
f
|
43
|
+
end
|
44
|
+
|
45
|
+
it "returns stem packs" do
|
46
|
+
db.stub(:query_db) { [fake_entry1] }
|
47
|
+
|
48
|
+
result = db.look_up_stem(query)
|
49
|
+
result.should have(1).item
|
50
|
+
result.first.should be_a LLT::Stem::NounPack
|
51
|
+
end
|
52
|
+
|
53
|
+
it "returns only valid entries if a restriction hash is passed" do
|
54
|
+
restrictions = { type: :inflection_class, values: [1] }
|
55
|
+
db.stub(:query_db) { [fake_entry1, fake_entry2] }
|
56
|
+
|
57
|
+
result = db.look_up_stem(query.merge(restrictions: restrictions))
|
58
|
+
result.should have(1).item
|
59
|
+
result.first.should be_a LLT::Stem::NounPack
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
describe "#direct_lookup" do
|
64
|
+
it "searches the db with a simplistic lookup, only a type and a string needed" do
|
65
|
+
db.direct_lookup(:adverb, "iam").should have(1).item
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
describe "#stats" do
|
70
|
+
it "returns a stats object" do
|
71
|
+
db.stats.should_not be_nil
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
%i{ all_entries count lemma_list }.each do |delegated_method|
|
76
|
+
describe "##{delegated_method}", :slow do
|
77
|
+
it "is delegated to the stats object" do
|
78
|
+
db.stats.should_receive(delegated_method)
|
79
|
+
db.send(delegated_method)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'llt/db_handler/stub'
|
3
|
+
|
4
|
+
describe LLT::DbHandler::Stub do
|
5
|
+
let(:db_stub) { LLT::DbHandler::Stub }
|
6
|
+
|
7
|
+
describe "#type" do
|
8
|
+
it "identifies the db_stub as stub" do
|
9
|
+
db_stub.new.type.should == :stub
|
10
|
+
end
|
11
|
+
end
|
12
|
+
describe ".create_stem_stub" do
|
13
|
+
it "creates a new stem stub" do
|
14
|
+
db_stub.stems.clear
|
15
|
+
db_stub.create_stem_stub("test", test: "val")
|
16
|
+
db_stub.stems.should have(1).item
|
17
|
+
end
|
18
|
+
|
19
|
+
it "has alias create" do
|
20
|
+
db_stub.stems.clear
|
21
|
+
db_stub.create("test", test: "val")
|
22
|
+
db_stub.stems.should have(1).item
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe "#look_up_stem" do
|
27
|
+
it "returns an array of db entries" do
|
28
|
+
db_stub.create_stem_stub("test", type: :noun, nom: "rosa", stem: "ros", inflection_class: 1)
|
29
|
+
result = db_stub.new.look_up_stem(type: :noun, stem_type: :stem, stem: "ros", restrictions: { type: :inflection_class, values: [1] })
|
30
|
+
result2 = db_stub.new.look_up_stem(type: :noun, stem_type: :stem, stem: "ros", restrictions: { type: :inflection_class, values: [2] })
|
31
|
+
result.should have(1).item
|
32
|
+
result.first.should == "test"
|
33
|
+
|
34
|
+
result2.should be_empty
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
describe "#direct_lookup" do
|
39
|
+
it "returns an array of db entries" do
|
40
|
+
db_stub.create(:success, type: :adverb, word: "ita")
|
41
|
+
result = db_stub.new.direct_lookup(:adverb, "ita")
|
42
|
+
result.should have(1).item
|
43
|
+
result.first.should == :success
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe ".setup" do
|
48
|
+
it "creates stub entries as defined in stub_entries.rb" do
|
49
|
+
db_stub.stems.clear
|
50
|
+
db_stub.setup
|
51
|
+
db_stub.stems.should_not be_empty
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe LLT::DbHandler do
|
4
|
+
describe ".use" do
|
5
|
+
it "returns a new LLT db handler instance by a given type" do
|
6
|
+
LLT::DbHandler.use(:prometheus).should be_an_instance_of LLT::DbHandler::Prometheus
|
7
|
+
end
|
8
|
+
|
9
|
+
it "raises an exception when the requested handler is unknown" do
|
10
|
+
expect { LLT::DbHandler.use(:undefined_handler) }.to raise_error(ArgumentError)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'simplecov'
|
2
|
+
require 'coveralls'
|
3
|
+
|
4
|
+
Coveralls.wear!
|
5
|
+
|
6
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
|
7
|
+
SimpleCov::Formatter::HTMLFormatter,
|
8
|
+
Coveralls::SimpleCov::Formatter
|
9
|
+
]
|
10
|
+
|
11
|
+
SimpleCov.start do
|
12
|
+
add_filter '/spec/'
|
13
|
+
end
|
14
|
+
|
15
|
+
require 'llt/db_handler'
|
16
|
+
|
17
|
+
RSpec.configure do |config|
|
18
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
19
|
+
config.run_all_when_everything_filtered = true
|
20
|
+
config.filter_run :focus
|
21
|
+
end
|
metadata
ADDED
@@ -0,0 +1,230 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: llt-db_handler
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- LFDM
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-12-08 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.3'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: pry
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
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: simplecov
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.7'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.7'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: yard
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: activerecord
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '3.2'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '3.2'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: llt-core_extensions
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: llt-constants
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :runtime
|
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: llt-form_builder
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: llt-helpers
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :runtime
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
description: LLT DB Handler
|
168
|
+
email:
|
169
|
+
- 1986gh@gmail.com
|
170
|
+
executables: []
|
171
|
+
extensions: []
|
172
|
+
extra_rdoc_files: []
|
173
|
+
files:
|
174
|
+
- ".gitignore"
|
175
|
+
- ".rspec"
|
176
|
+
- Gemfile
|
177
|
+
- LICENSE.txt
|
178
|
+
- README.md
|
179
|
+
- Rakefile
|
180
|
+
- lib/llt/db_handler.rb
|
181
|
+
- lib/llt/db_handler/common_db.rb
|
182
|
+
- lib/llt/db_handler/prometheus.rb
|
183
|
+
- lib/llt/db_handler/prometheus/db/database.yml
|
184
|
+
- lib/llt/db_handler/prometheus/db/models.rb
|
185
|
+
- lib/llt/db_handler/prometheus/db/prometheus_stems.dump
|
186
|
+
- lib/llt/db_handler/prometheus/db_to_lemma.rb
|
187
|
+
- lib/llt/db_handler/prometheus/stats.rb
|
188
|
+
- lib/llt/db_handler/stub.rb
|
189
|
+
- lib/llt/db_handler/stub/stub_entries.rb
|
190
|
+
- lib/llt/db_handler/tasks.rb
|
191
|
+
- lib/llt/db_handler/version.rb
|
192
|
+
- llt-db_handler.gemspec
|
193
|
+
- spec/lib/llt/db_handler/prometheus/db_to_lemma_spec.rb
|
194
|
+
- spec/lib/llt/db_handler/prometheus/stats_spec.rb
|
195
|
+
- spec/lib/llt/db_handler/prometheus_spec.rb
|
196
|
+
- spec/lib/llt/db_handler/stub_spec.rb
|
197
|
+
- spec/lib/llt/db_handler_spec.rb
|
198
|
+
- spec/spec_helper.rb
|
199
|
+
homepage: ''
|
200
|
+
licenses:
|
201
|
+
- MIT
|
202
|
+
metadata: {}
|
203
|
+
post_install_message:
|
204
|
+
rdoc_options: []
|
205
|
+
require_paths:
|
206
|
+
- lib
|
207
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
208
|
+
requirements:
|
209
|
+
- - ">="
|
210
|
+
- !ruby/object:Gem::Version
|
211
|
+
version: '0'
|
212
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
213
|
+
requirements:
|
214
|
+
- - ">="
|
215
|
+
- !ruby/object:Gem::Version
|
216
|
+
version: '0'
|
217
|
+
requirements: []
|
218
|
+
rubyforge_project:
|
219
|
+
rubygems_version: 2.1.5
|
220
|
+
signing_key:
|
221
|
+
specification_version: 4
|
222
|
+
summary: LLT DB Handler
|
223
|
+
test_files:
|
224
|
+
- spec/lib/llt/db_handler/prometheus/db_to_lemma_spec.rb
|
225
|
+
- spec/lib/llt/db_handler/prometheus/stats_spec.rb
|
226
|
+
- spec/lib/llt/db_handler/prometheus_spec.rb
|
227
|
+
- spec/lib/llt/db_handler/stub_spec.rb
|
228
|
+
- spec/lib/llt/db_handler_spec.rb
|
229
|
+
- spec/spec_helper.rb
|
230
|
+
has_rdoc:
|