kj 0.0.7 → 0.0.8
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 +4 -4
- data/VERSION +1 -1
- data/db/kjb.db +0 -0
- data/kj.gemspec +3 -4
- data/lib/kj.rb +1 -0
- data/lib/kj/base.rb +0 -1
- data/lib/kj/book.rb +9 -9
- data/vendor/import.rb +2 -2
- metadata +1 -2
- data/vendor/parameterize.rb +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 42a1e80beefbcf7e559c40b5ba4248e677029cbb
|
4
|
+
data.tar.gz: c2daad390ff7d1f156524ca772186c4d969f16ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fec0b308a60ae96bc89c5a0a9794e6aad0d8db73fcee80bc9e05d3bd7219ce520f8f2e870a042f4cada2d78a91fbad438f7e4440462060ab71965c4cd7b4d96c
|
7
|
+
data.tar.gz: 7857cef3003d19c876a48ed59ae92336d7a14bf8b14da2e71f0493124ae66492fa945fbb6bbade058f822534003bf4216af7f9669acca5a180ffc5222b70dc14
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.8
|
data/db/kjb.db
CHANGED
Binary file
|
data/kj.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: kj 0.0.
|
5
|
+
# stub: kj 0.0.8 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "kj"
|
9
|
-
s.version = "0.0.
|
9
|
+
s.version = "0.0.8"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
@@ -43,8 +43,7 @@ Gem::Specification.new do |s|
|
|
43
43
|
"spec/verse_spec.rb",
|
44
44
|
"vendor/README.md",
|
45
45
|
"vendor/books.csv",
|
46
|
-
"vendor/import.rb"
|
47
|
-
"vendor/parameterize.rb"
|
46
|
+
"vendor/import.rb"
|
48
47
|
]
|
49
48
|
s.homepage = "http://github.com/billguy/kj"
|
50
49
|
s.licenses = ["MIT"]
|
data/lib/kj.rb
CHANGED
data/lib/kj/base.rb
CHANGED
data/lib/kj/book.rb
CHANGED
@@ -2,7 +2,7 @@ module Kj
|
|
2
2
|
|
3
3
|
class Book < Base
|
4
4
|
|
5
|
-
attr_accessor :id, :name
|
5
|
+
attr_accessor :id, :name, :permalink
|
6
6
|
|
7
7
|
def initialize(args)
|
8
8
|
args.each do |k,v|
|
@@ -20,11 +20,11 @@ module Kj
|
|
20
20
|
|
21
21
|
def self.from_name_or_number(name_or_number)
|
22
22
|
if name_or_number.is_a?(Integer)
|
23
|
-
book = Db.query("SELECT id, name FROM books WHERE id = ?", [name_or_number], true)
|
23
|
+
book = Db.query("SELECT id, name, permalink FROM books WHERE id = ?", [name_or_number], true)
|
24
24
|
else
|
25
|
-
book = Db.query("SELECT id, name FROM books WHERE name = ? OR abbreviations LIKE ?", [name_or_number.to_s.downcase, "%#{name_or_number.to_s}%"], true)
|
25
|
+
book = Db.query("SELECT id, name, permalink FROM books WHERE name = ? OR abbreviations LIKE ? OR permalink = ?", [name_or_number.to_s.downcase, "%#{name_or_number.to_s}%", name_or_number.to_s], true)
|
26
26
|
end
|
27
|
-
new(id: book['id'], name: book['name'])
|
27
|
+
new(id: book['id'], name: book['name'], permalink: book['permalink'])
|
28
28
|
end
|
29
29
|
|
30
30
|
def self.from_names_or_numbers(names_or_numbers)
|
@@ -32,15 +32,15 @@ module Kj
|
|
32
32
|
numbers = names_or_numbers.uniq.select{|n| n.is_a?(Integer)}
|
33
33
|
names = (names_or_numbers - numbers).uniq.map{|name| name.to_s.downcase}
|
34
34
|
results = []
|
35
|
-
results << Db.query("SELECT id, name FROM books WHERE id IN (#{numbers.join(',')})") if numbers.any?
|
36
|
-
names.each{ |name| results << Db.query("SELECT id, name FROM books WHERE abbreviations LIKE ?", ["%#{name.to_s}%"]) }
|
37
|
-
results.flatten.map!{|book| new(id: book['id'], name: book['name'])}.uniq.sort!{ |a,b| a.id <=> b.id }
|
35
|
+
results << Db.query("SELECT id, name, permalink FROM books WHERE id IN (#{numbers.join(',')})") if numbers.any?
|
36
|
+
names.each{ |name| results << Db.query("SELECT id, name FROM books WHERE abbreviations LIKE ? OR permalink = ?", ["%#{name.to_s}%", name.to_s]) }
|
37
|
+
results.flatten.map!{|book| new(id: book['id'], name: book['name'], permalink: book['permalink'])}.uniq.sort!{ |a,b| a.id <=> b.id }
|
38
38
|
end
|
39
39
|
|
40
40
|
def self.all
|
41
41
|
@all ||= begin
|
42
|
-
books = Db.query("SELECT id, name FROM books")
|
43
|
-
books.map{ |book| new(id: book['id'], name: book['name']) }
|
42
|
+
books = Db.query("SELECT id, name, permalink FROM books")
|
43
|
+
books.map{ |book| new(id: book['id'], name: book['name'], permalink: book['permalink']) }
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
data/vendor/import.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'csv'
|
2
2
|
require "sqlite3"
|
3
3
|
require "pathname"
|
4
|
-
require_relative "parameterize"
|
5
4
|
|
6
5
|
path = Pathname(File.absolute_path(__FILE__))
|
7
6
|
db = SQLite3::Database.new(File.join(path.parent.parent.to_s, 'db/kjb.db'))
|
@@ -14,10 +13,11 @@ csv_text = File.read(File.join(path.parent.to_s, 'books.csv'))
|
|
14
13
|
csv = CSV.parse(csv_text)
|
15
14
|
csv.each do |row| # build books table
|
16
15
|
book_name = row[0]
|
16
|
+
permalink = book_name.downcase.gsub(/[^a-z0-9\-_]+/, '-')
|
17
17
|
abbreviations = row[1].split(',').map{|abb| abb.downcase.gsub(' ', '')}
|
18
18
|
abbreviations << book_name.downcase
|
19
19
|
abbreviations.uniq!
|
20
|
-
db.execute("INSERT INTO books(name, abbreviations, permalink) VALUES (?, ?, ?)", [book_name, abbreviations.join(','),
|
20
|
+
db.execute("INSERT INTO books(name, abbreviations, permalink) VALUES (?, ?, ?)", [book_name, abbreviations.join(','), permalink])
|
21
21
|
end
|
22
22
|
|
23
23
|
current_book_id, current_book_name, current_chapter_id, current_chapter_number = nil, nil, nil, nil # import chapters, verses
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kj
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David John
|
@@ -100,7 +100,6 @@ files:
|
|
100
100
|
- vendor/README.md
|
101
101
|
- vendor/books.csv
|
102
102
|
- vendor/import.rb
|
103
|
-
- vendor/parameterize.rb
|
104
103
|
homepage: http://github.com/billguy/kj
|
105
104
|
licenses:
|
106
105
|
- MIT
|
data/vendor/parameterize.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
# File activesupport/lib/active_support/inflector/transliterate.rb, line 80
|
2
|
-
def parameterize(string, sep = '-')
|
3
|
-
# replace accented chars with their ascii equivalents
|
4
|
-
parameterized_string = string.dup.downcase
|
5
|
-
# Turn unwanted chars into the separator
|
6
|
-
parameterized_string.gsub!(/[^a-z0-9\-_]+/, sep)
|
7
|
-
unless sep.nil? || sep.empty?
|
8
|
-
re_sep = Regexp.escape(sep)
|
9
|
-
# No more than one of the separator in a row.
|
10
|
-
parameterized_string.gsub!(/#{re_sep}{2,}/, sep)
|
11
|
-
# Remove leading/trailing separator.
|
12
|
-
parameterized_string.gsub!(/^#{re_sep}|#{re_sep}$/, '')
|
13
|
-
end
|
14
|
-
parameterized_string
|
15
|
-
end
|