hybook 0.2.0 → 0.2.1
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/Manifest.txt +0 -5
- data/Rakefile +0 -2
- data/lib/hybook.rb +1 -9
- data/lib/hybook/version.rb +2 -2
- data/test/test_basics.rb +1 -1
- metadata +2 -35
- data/lib/hybook/press/beer.rb +0 -45
- data/lib/hybook/press/config.rb +0 -35
- data/lib/hybook/press/football.rb +0 -40
- data/lib/hybook/press/press.rb +0 -192
- data/lib/hybook/press/world.rb +0 -45
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 301a430a30a440fb3217c8011dfa1f7c90352cd4
|
4
|
+
data.tar.gz: 12553f08d6ecb02fb264d47ec90b828cf84921ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f44c4eb9cd80d7504e5e0126a24bcef2221f4c0f87f9ae9eb8b98a733df850dde6cc1240699119e0e1280031bad30d1ecdd384bf750a4e18617c51e3de350111
|
7
|
+
data.tar.gz: b530e216c90abfe6e336cb2d890d4c495487e8b8fdc50afdc74f634e352de12377436bcd626228ff52a55193d3274e152555885bbbff7ec0efea4d5ea61a27c4
|
data/Manifest.txt
CHANGED
@@ -7,11 +7,6 @@ lib/hybook/builder/album.rb
|
|
7
7
|
lib/hybook/builder/book.rb
|
8
8
|
lib/hybook/helpers/markdown.rb
|
9
9
|
lib/hybook/helpers/misc.rb
|
10
|
-
lib/hybook/press/beer.rb
|
11
|
-
lib/hybook/press/config.rb
|
12
|
-
lib/hybook/press/football.rb
|
13
|
-
lib/hybook/press/press.rb
|
14
|
-
lib/hybook/press/world.rb
|
15
10
|
lib/hybook/std/album.rb
|
16
11
|
lib/hybook/type/album.rb
|
17
12
|
lib/hybook/type/picture.rb
|
data/Rakefile
CHANGED
@@ -24,8 +24,6 @@ Hoe.spec 'hybook' do
|
|
24
24
|
['logutils'], # logging
|
25
25
|
['textutils'], # e.g. >= 0.6 && <= 1.0 ## will include logutils, props
|
26
26
|
['markdown'], # markdown helper (e.g. link_to etc.)
|
27
|
-
['bookfile'], ## used by (book)press
|
28
|
-
['datafile'], ## used by (book)press
|
29
27
|
|
30
28
|
## 3rd party
|
31
29
|
['gli'],
|
data/lib/hybook.rb
CHANGED
@@ -38,19 +38,11 @@ require 'hybook/builder/album'
|
|
38
38
|
|
39
39
|
require 'hybook/writer/jekyll'
|
40
40
|
|
41
|
-
## (book)press
|
42
|
-
require 'hybook/press/press'
|
43
|
-
require 'hybook/press/config'
|
44
|
-
require 'hybook/press/world'
|
45
|
-
require 'hybook/press/football'
|
46
|
-
require 'hybook/press/beer'
|
47
|
-
|
48
|
-
|
49
41
|
|
50
42
|
|
51
43
|
|
52
44
|
# say hello
|
53
|
-
if
|
45
|
+
if defined?($RUBYLIBS_DEBUG) && $RUBYLIBS_DEBUG
|
54
46
|
puts Hybook.banner
|
55
47
|
puts "[hybook] root: #{Hybook.root}"
|
56
48
|
puts "[hybook] templates_path: #{Hybook.templates_path}"
|
data/lib/hybook/version.rb
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
module Hybook
|
5
|
-
VERSION = '0.2.
|
5
|
+
VERSION = '0.2.1'
|
6
6
|
|
7
7
|
def self.banner
|
8
|
-
"hybook
|
8
|
+
"hybook/#{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
|
9
9
|
end
|
10
10
|
|
11
11
|
def self.root
|
data/test/test_basics.rb
CHANGED
@@ -7,7 +7,7 @@ class TestBasics < MiniTest::Test
|
|
7
7
|
|
8
8
|
def test_banner
|
9
9
|
|
10
|
-
banner = "hybook
|
10
|
+
banner = "hybook/#{Hybook::VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
|
11
11
|
|
12
12
|
assert_equal banner, Hybook.banner
|
13
13
|
assert_equal banner, HyBook.banner ## check module alias
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hybook
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gerald Bauer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: props
|
@@ -66,34 +66,6 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: bookfile
|
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: datafile
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :runtime
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
69
|
- !ruby/object:Gem::Dependency
|
98
70
|
name: gli
|
99
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -170,11 +142,6 @@ files:
|
|
170
142
|
- lib/hybook/builder/book.rb
|
171
143
|
- lib/hybook/helpers/markdown.rb
|
172
144
|
- lib/hybook/helpers/misc.rb
|
173
|
-
- lib/hybook/press/beer.rb
|
174
|
-
- lib/hybook/press/config.rb
|
175
|
-
- lib/hybook/press/football.rb
|
176
|
-
- lib/hybook/press/press.rb
|
177
|
-
- lib/hybook/press/world.rb
|
178
145
|
- lib/hybook/std/album.rb
|
179
146
|
- lib/hybook/type/album.rb
|
180
147
|
- lib/hybook/type/picture.rb
|
data/lib/hybook/press/beer.rb
DELETED
@@ -1,45 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Hybook
|
4
|
-
|
5
|
-
class BeerConfig < Config
|
6
|
-
|
7
|
-
def initialize( hash ) super; end
|
8
|
-
|
9
|
-
def collection() 'beer'; end
|
10
|
-
|
11
|
-
############
|
12
|
-
# Bookfile
|
13
|
-
# -- remote
|
14
|
-
def bookfile_url()
|
15
|
-
## note: for now always return beer.rb
|
16
|
-
## use setup/layout-specific bookfiles?? allow selection of package,how?? why,why not??
|
17
|
-
"http://github.com/book-templates/bookfile/raw/master/beer.rb"
|
18
|
-
end
|
19
|
-
|
20
|
-
########
|
21
|
-
# Datafile
|
22
|
-
# -- remote
|
23
|
-
def datafile_url() "http://github.com/openbeer/datafile/raw/master/#{setup}.rb"; end
|
24
|
-
|
25
|
-
#######
|
26
|
-
# Database
|
27
|
-
def db_path() "#{build_dir}/#{collection}/#{setup}/#{collection}.db"; end
|
28
|
-
def create_db!() BeerDb.create_all; end
|
29
|
-
|
30
|
-
####
|
31
|
-
# Book Templates
|
32
|
-
## rename to book_dir ?? why, why not? - split zip into book_dir and book_templates_dir why? why not?
|
33
|
-
def book_templates_unzip_dir() "#{build_dir}/#{collection}/#{setup}/book"; end
|
34
|
-
|
35
|
-
end # class BeerConfig
|
36
|
-
|
37
|
-
|
38
|
-
class BookPress
|
39
|
-
def self.create_beer_book_for( setup, opts={} )
|
40
|
-
config = BeerConfig.new( setup: setup )
|
41
|
-
BookPress.new( config )
|
42
|
-
end
|
43
|
-
end # class BookPress
|
44
|
-
|
45
|
-
end # module Hybook
|
data/lib/hybook/press/config.rb
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Hybook
|
4
|
-
|
5
|
-
class Config
|
6
|
-
|
7
|
-
def initialize( hash )
|
8
|
-
@hash = hash
|
9
|
-
|
10
|
-
### add source_url e.g. https://github.com ?? - why, why not???
|
11
|
-
|
12
|
-
@build_dir = hash[:build_dir] || './build' ## note: defaults to ./build
|
13
|
-
@setup = hash[:setup]
|
14
|
-
end
|
15
|
-
|
16
|
-
def build_dir() @build_dir; end
|
17
|
-
def setup() @setup; end ## e.g. at, franken, worldcup, etc.
|
18
|
-
|
19
|
-
######
|
20
|
-
# Datafile
|
21
|
-
# -- local
|
22
|
-
def datafile_dir() "#{build_dir}/#{collection}/#{setup}"; end
|
23
|
-
def datafile_path() "#{datafile_dir}/Datafile"; end
|
24
|
-
|
25
|
-
######
|
26
|
-
# Bookfile -- allow multiple (more than one) bookfiles - how? why, why not???
|
27
|
-
# -- local
|
28
|
-
#
|
29
|
-
# todo: move bookfile_dir to unzip dir (e.g. move Bookfile into /book) - why, why not???
|
30
|
-
def bookfile_dir() "#{build_dir}/#{collection}/#{setup}"; end
|
31
|
-
def bookfile_path() "#{bookfile_dir}/Bookfile"; end
|
32
|
-
end
|
33
|
-
|
34
|
-
end # module Hybook
|
35
|
-
|
@@ -1,40 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Hybook
|
4
|
-
|
5
|
-
class FootballConfig < Config
|
6
|
-
|
7
|
-
def initialize( hash ) super; end
|
8
|
-
|
9
|
-
def collection() 'football'; end
|
10
|
-
|
11
|
-
########
|
12
|
-
# Datafile
|
13
|
-
# -- remote
|
14
|
-
def datafile_url() "http://github.com/openfootball/datafile/raw/master/#{setup}.rb"; end
|
15
|
-
|
16
|
-
#######
|
17
|
-
# Database
|
18
|
-
def db_path() "#{build_dir}/#{collection}/#{setup}/#{collection}.db"; end
|
19
|
-
|
20
|
-
def create_db!()
|
21
|
-
SportDb.create_all
|
22
|
-
SportDb.read_builtin ## note: load built-in datasets (e.g. seasons etc.)
|
23
|
-
end
|
24
|
-
|
25
|
-
####
|
26
|
-
# Book Templates
|
27
|
-
## rename to book_dir ?? why, why not? - split zip into book_dir and book_templates_dir why? why not?
|
28
|
-
def book_templates_unzip_dir() "#{build_dir}/#{collection}/#{setup}/book"; end
|
29
|
-
|
30
|
-
end # class FootballConfig
|
31
|
-
|
32
|
-
|
33
|
-
class BookPress
|
34
|
-
def self.create_football_book_for( setup, opts={} )
|
35
|
-
config = FootballConfig.new( setup: setup )
|
36
|
-
BookPress.new( config )
|
37
|
-
end
|
38
|
-
end # class BookPress
|
39
|
-
|
40
|
-
end # module Hybook
|
data/lib/hybook/press/press.rb
DELETED
@@ -1,192 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Hybook
|
4
|
-
|
5
|
-
##
|
6
|
-
# todo: change/rename class to Press from BookPress - why, why not??
|
7
|
-
|
8
|
-
class BookPress
|
9
|
-
|
10
|
-
def initialize( config )
|
11
|
-
@config = config
|
12
|
-
end
|
13
|
-
|
14
|
-
|
15
|
-
def dl_datasets
|
16
|
-
## fetch Datafile
|
17
|
-
datafile_dir = @config.datafile_dir
|
18
|
-
datafile_path = @config.datafile_path
|
19
|
-
|
20
|
-
## check if folders exists? if not create folder in path
|
21
|
-
FileUtils.mkdir_p( datafile_dir ) unless Dir.exists?( datafile_dir )
|
22
|
-
|
23
|
-
## note: lets use http:// instead of https:// for now - lets us use person proxy (NOT working w/ https for now)
|
24
|
-
src = @config.datafile_url
|
25
|
-
## dest will be something like './Datafile'
|
26
|
-
|
27
|
-
fetch_datafile( src, datafile_path )
|
28
|
-
|
29
|
-
datafile = Datafile::Datafile.load_file( datafile_path )
|
30
|
-
datafile.dump ## for debugging
|
31
|
-
datafile.download ## datafile step 1 - download all datasets/zips
|
32
|
-
end
|
33
|
-
|
34
|
-
|
35
|
-
def dl_book_templates
|
36
|
-
## fetch Bookfile
|
37
|
-
bookfile_dir = @config.bookfile_dir
|
38
|
-
bookfile_path = @config.bookfile_path
|
39
|
-
|
40
|
-
## check if folders exists? if not create folder in path
|
41
|
-
FileUtils.mkdir_p( bookfile_dir ) unless Dir.exists?( bookfile_dir )
|
42
|
-
|
43
|
-
## note: lets use http:// instead of https:// for now - lets us use person proxy (NOT working w/ https for now)
|
44
|
-
src = @config.bookfile_url
|
45
|
-
## dest will be something like './Bookfile'
|
46
|
-
|
47
|
-
fetch_bookfile( src, bookfile_path )
|
48
|
-
|
49
|
-
|
50
|
-
bookfile = Bookfile::Bookfile.load_file( bookfile_path )
|
51
|
-
|
52
|
-
bookfile.dump ## for debugging
|
53
|
-
bookfile.download ## bookfile step 1 - download all packages/zips (defaults to ./tmp)
|
54
|
-
|
55
|
-
## todo/check: already checked in unzip if folder exists???
|
56
|
-
dest_unzip = @config.book_templates_unzip_dir
|
57
|
-
FileUtils.mkdir_p( dest_unzip ) unless Dir.exists?( dest_unzip )
|
58
|
-
|
59
|
-
bookfile.unzip( dest_unzip ) ## bookfile step 2 - unzip book templates
|
60
|
-
end
|
61
|
-
|
62
|
-
|
63
|
-
def connect
|
64
|
-
db_path = @config.db_path
|
65
|
-
|
66
|
-
db_config = {
|
67
|
-
adapter: 'sqlite3',
|
68
|
-
database: db_path
|
69
|
-
}
|
70
|
-
|
71
|
-
pp db_config
|
72
|
-
ActiveRecord::Base.establish_connection( db_config )
|
73
|
-
|
74
|
-
c = ActiveRecord::Base.connection
|
75
|
-
|
76
|
-
## try to speed up sqlite
|
77
|
-
## see http://www.sqlite.org/pragma.html
|
78
|
-
c.execute( 'PRAGMA synchronous=OFF;' )
|
79
|
-
c.execute( 'PRAGMA journal_mode=OFF;' )
|
80
|
-
## c.execute( 'PRAGMA journal_mode=MEMORY;' )
|
81
|
-
c.execute( 'PRAGMA temp_store=MEMORY;' )
|
82
|
-
end
|
83
|
-
|
84
|
-
|
85
|
-
def build_db
|
86
|
-
## clean; remove db if exits
|
87
|
-
|
88
|
-
db_path = @config.db_path
|
89
|
-
FileUtils.rm( db_path ) if File.exists?( db_path )
|
90
|
-
|
91
|
-
connect()
|
92
|
-
@config.create_db!
|
93
|
-
|
94
|
-
datafile_path = @config.datafile_path
|
95
|
-
pp datafile_path
|
96
|
-
|
97
|
-
|
98
|
-
### hack/quick fix for at,de - "standalone quick test": todo
|
99
|
-
## - find something better
|
100
|
-
if datafile_path.end_with?( 'at.rb' ) ||
|
101
|
-
datafile_path.end_with?( '/at/Datafile' )
|
102
|
-
## standalone austria for debugging add country
|
103
|
-
WorldDb::Model::Country.create!( key: 'at',
|
104
|
-
name: 'Austria',
|
105
|
-
code: 'AUT',
|
106
|
-
pop: 0,
|
107
|
-
area: 0 )
|
108
|
-
elsif datafile_path.end_with?( 'de.rb' ) ||
|
109
|
-
datafile_path.end_with?( '/de/Datafile' )
|
110
|
-
WorldDb::Model::Country.create!( key: 'de',
|
111
|
-
name: 'Germany',
|
112
|
-
code: 'GER',
|
113
|
-
pop: 0,
|
114
|
-
area: 0 )
|
115
|
-
else
|
116
|
-
# no special case; continue
|
117
|
-
puts "[debug] - no special world archive case w/ start script; continue"
|
118
|
-
end
|
119
|
-
|
120
|
-
|
121
|
-
datafile = Datafile::Datafile.load_file( datafile_path )
|
122
|
-
datafile.dump ## for debugging
|
123
|
-
|
124
|
-
logger = LogUtils::Logger.root
|
125
|
-
logger.level = :debug
|
126
|
-
|
127
|
-
datafile.read ## datafile step 2 - read all datasets
|
128
|
-
end
|
129
|
-
|
130
|
-
|
131
|
-
def build_book
|
132
|
-
connect()
|
133
|
-
|
134
|
-
bookfile_path = @config.bookfile_path
|
135
|
-
|
136
|
-
bookfile = Bookfile::Bookfile.load_file( bookfile_path )
|
137
|
-
bookfile.dump ## for debugging
|
138
|
-
|
139
|
-
### fix:
|
140
|
-
### assume WorldDb::Models already included ??
|
141
|
-
## - for now always include on prepare
|
142
|
-
bookfile.prepare( @config.book_templates_unzip_dir )
|
143
|
-
|
144
|
-
puts " contintents: #{WorldDb::Model::Continent.count}" ## for debugging
|
145
|
-
|
146
|
-
bookfile.build( @config.book_templates_unzip_dir )
|
147
|
-
|
148
|
-
puts 'Done.'
|
149
|
-
end
|
150
|
-
|
151
|
-
|
152
|
-
def run_jekyll
|
153
|
-
# change cwd folder
|
154
|
-
cwd = FileUtils.pwd
|
155
|
-
puts "cwd (before): #{cwd}"
|
156
|
-
FileUtils.cd( @config.book_templates_unzip_dir )
|
157
|
-
puts "cwd (after): #{cwd}"
|
158
|
-
|
159
|
-
## use `cd #{book_dir}; jekyll build` -- why, why not???
|
160
|
-
puts `jekyll build`
|
161
|
-
|
162
|
-
# restore cwd folder
|
163
|
-
FileUtils.cd( cwd )
|
164
|
-
end
|
165
|
-
|
166
|
-
|
167
|
-
def build
|
168
|
-
## all-in-one; do everything; complete all steps
|
169
|
-
dl_datasets
|
170
|
-
dl_book_templates
|
171
|
-
|
172
|
-
build_db
|
173
|
-
build_book
|
174
|
-
run_jekyll
|
175
|
-
end
|
176
|
-
|
177
|
-
|
178
|
-
private
|
179
|
-
|
180
|
-
def fetch_datafile( src, dest )
|
181
|
-
worker = Fetcher::Worker.new
|
182
|
-
worker.copy( src, dest )
|
183
|
-
end
|
184
|
-
|
185
|
-
def fetch_bookfile( src, dest )
|
186
|
-
worker = Fetcher::Worker.new
|
187
|
-
worker.copy( src, dest )
|
188
|
-
end
|
189
|
-
|
190
|
-
end # class BookPress
|
191
|
-
|
192
|
-
end # module Hybook
|
data/lib/hybook/press/world.rb
DELETED
@@ -1,45 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Hybook
|
4
|
-
|
5
|
-
class WorldConfig < Config
|
6
|
-
|
7
|
-
def initialize( hash ) super; end
|
8
|
-
|
9
|
-
def collection() 'world'; end
|
10
|
-
|
11
|
-
############
|
12
|
-
# Bookfile
|
13
|
-
# -- remote
|
14
|
-
def bookfile_url()
|
15
|
-
## note: for now always return world.rb
|
16
|
-
## use country specific bookfiles ?? allow selection of package,how?? why,why not??
|
17
|
-
"https://github.com/book-templates/bookfile/raw/master/world.rb"
|
18
|
-
end
|
19
|
-
|
20
|
-
########
|
21
|
-
# Datafile
|
22
|
-
# -- remote
|
23
|
-
def datafile_url() "https://github.com/openmundi/datafile/raw/master/#{setup}.rb"; end
|
24
|
-
|
25
|
-
#######
|
26
|
-
# Database
|
27
|
-
def db_path() "#{build_dir}/#{collection}/#{setup}/#{collection}.db"; end
|
28
|
-
def create_db!() WorldDb.create_all; end
|
29
|
-
|
30
|
-
|
31
|
-
######################
|
32
|
-
## rename to book_dir ?? why, why not? - split zip into book_dir and book_templates_dir why? why not?
|
33
|
-
def book_templates_unzip_dir() "#{build_dir}/#{collection}/#{setup}/book"; end
|
34
|
-
|
35
|
-
end # class WorldConfig
|
36
|
-
|
37
|
-
|
38
|
-
class BookPress
|
39
|
-
def self.create_world_book_for( setup, opts={} )
|
40
|
-
config = WorldConfig.new( setup: setup )
|
41
|
-
BookPress.new( config )
|
42
|
-
end
|
43
|
-
end # class BookPress
|
44
|
-
|
45
|
-
end # module Hybook
|