beerdb-note 0.0.1 → 0.1.0
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/Manifest.txt +14 -6
- data/README.md +4 -3
- data/Rakefile +7 -3
- data/lib/beerdb/note.rb +10 -3
- data/lib/beerdb/note/models/bookmark.rb +35 -0
- data/lib/beerdb/note/models/drink.rb +25 -0
- data/lib/beerdb/note/models/forward.rb +17 -0
- data/lib/beerdb/note/models/note.rb +15 -0
- data/lib/beerdb/note/models/user.rb +29 -0
- data/lib/beerdb/note/schema.rb +93 -0
- data/lib/beerdb/note/version.rb +1 -2
- data/test/helper.rb +17 -0
- data/test/test_extras.rb +24 -0
- metadata +47 -21
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 82d3fd8d6e06964d99db5cc9f1b56d7d958a668b
|
4
|
+
data.tar.gz: 28624f31b0c2a2bae3a2f580cb34df06afdf368d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2e93708a318684709a252d5336fab3e0d12bd6695bdb1c00651e9c2ca889739dbc3c6043ddda6e6e8dceeecd07ee2cd9202ead7c66340ee5378e5f04a6f93f6e
|
7
|
+
data.tar.gz: 54d55e7d0d44b90a03ba818b27a5712ebb87914f68b60953bf81c9c1b5e86b100d2909a5e910a0ecfd72ab97fdd20b5a7d4a6d85ceb0ba03e1ba5e8760e3eb53
|
data/Manifest.txt
CHANGED
@@ -1,6 +1,14 @@
|
|
1
|
-
HISTORY.md
|
2
|
-
Manifest.txt
|
3
|
-
README.md
|
4
|
-
Rakefile
|
5
|
-
lib/beerdb/note.rb
|
6
|
-
lib/beerdb/note/
|
1
|
+
HISTORY.md
|
2
|
+
Manifest.txt
|
3
|
+
README.md
|
4
|
+
Rakefile
|
5
|
+
lib/beerdb/note.rb
|
6
|
+
lib/beerdb/note/models/bookmark.rb
|
7
|
+
lib/beerdb/note/models/drink.rb
|
8
|
+
lib/beerdb/note/models/forward.rb
|
9
|
+
lib/beerdb/note/models/note.rb
|
10
|
+
lib/beerdb/note/models/user.rb
|
11
|
+
lib/beerdb/note/schema.rb
|
12
|
+
lib/beerdb/note/version.rb
|
13
|
+
test/helper.rb
|
14
|
+
test/test_extras.rb
|
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# beerdb-note - beer.db addon for notes, bookmarks, drinks, etc.
|
2
2
|
|
3
|
-
* home :: [github.com/beerkit/beer.db
|
4
|
-
* bugs :: [github.com/beerkit/beer.db
|
3
|
+
* home :: [github.com/beerkit/beer.db](https://github.com/beerkit/beer.db)
|
4
|
+
* bugs :: [github.com/beerkit/beer.db/issues](https://github.com/beerkit/beer.db/issues)
|
5
5
|
* gem :: [rubygems.org/gems/beerdb-note](https://rubygems.org/gems/beerdb-note)
|
6
6
|
* rdoc :: [rubydoc.info/gems/beerdb-note](http://rubydoc.info/gems/beerdb-note)
|
7
7
|
* forum :: [groups.google.com/group/beerdb](https://groups.google.com/group/beerdb)
|
@@ -21,6 +21,8 @@ Just install the gem:
|
|
21
21
|
|
22
22
|
## License
|
23
23
|
|
24
|
+

|
25
|
+
|
24
26
|
The `beerdb-note` scripts are dedicated to the public domain.
|
25
27
|
Use it as you please with no restrictions whatsoever.
|
26
28
|
|
@@ -30,4 +32,3 @@ Use it as you please with no restrictions whatsoever.
|
|
30
32
|
Send them along to the
|
31
33
|
[Open Beer & Brewery Database Forum/Mailing List](http://groups.google.com/group/beerdb).
|
32
34
|
Thanks!
|
33
|
-
|
data/Rakefile
CHANGED
@@ -8,7 +8,7 @@ Hoe.spec 'beerdb-note' do
|
|
8
8
|
self.summary = 'beerdb-note gem - beer.db addon for notes, bookmarks, drinks, etc.'
|
9
9
|
self.description = summary
|
10
10
|
|
11
|
-
self.urls = ['https://github.com/beerkit/beer.db
|
11
|
+
self.urls = ['https://github.com/beerkit/beer.db']
|
12
12
|
|
13
13
|
self.author = 'Gerald Bauer'
|
14
14
|
self.email = 'beerdb@googlegroups.com'
|
@@ -19,8 +19,12 @@ Hoe.spec 'beerdb-note' do
|
|
19
19
|
|
20
20
|
self.licenses = ['Public Domain']
|
21
21
|
|
22
|
+
self.extra_deps = [
|
23
|
+
['beerdb-models', '>= 1.2.0']
|
24
|
+
]
|
25
|
+
|
22
26
|
self.spec_extras = {
|
23
|
-
:required_ruby_version => '>=
|
27
|
+
:required_ruby_version => '>= 2.3'
|
24
28
|
}
|
25
29
|
|
26
|
-
end
|
30
|
+
end
|
data/lib/beerdb/note.rb
CHANGED
@@ -1,14 +1,22 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
###
|
4
|
-
# note: it's an addon to beerdb (get all libs via beerdb)
|
5
|
-
require 'beerdb'
|
4
|
+
# note: it's an addon to beerdb (get all libs via beerdb-models)
|
5
|
+
require 'beerdb/models'
|
6
6
|
|
7
7
|
|
8
8
|
# our own code
|
9
9
|
|
10
10
|
require 'beerdb/note/version' # let it always go first
|
11
11
|
|
12
|
+
require 'beerdb/note/schema'
|
13
|
+
require 'beerdb/note/models/forward'
|
14
|
+
require 'beerdb/note/models/user'
|
15
|
+
require 'beerdb/note/models/drink'
|
16
|
+
require 'beerdb/note/models/bookmark'
|
17
|
+
require 'beerdb/note/models/note'
|
18
|
+
|
19
|
+
|
12
20
|
|
13
21
|
|
14
22
|
module BeerDbNote
|
@@ -25,4 +33,3 @@ end # module BeerDbNote
|
|
25
33
|
|
26
34
|
|
27
35
|
puts BeerDbNote.banner # say hello
|
28
|
-
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
## NB: just use namespace BeerDb::Model (not BeerDbService::Model or something else)
|
4
|
+
|
5
|
+
module BeerDb
|
6
|
+
module Model
|
7
|
+
|
8
|
+
class Bookmark < ActiveRecord::Base
|
9
|
+
|
10
|
+
belongs_to :bookmarkable, :polymorphic => true
|
11
|
+
belongs_to :user
|
12
|
+
|
13
|
+
|
14
|
+
### fix - how to do it with has_many macro? use finder_sql?
|
15
|
+
def drinks
|
16
|
+
## todo: check/assert bookmarkable_type == BeerDB::Model::Beer
|
17
|
+
Drink.where( user_id: user_id, beer_id: bookmarkable_id )
|
18
|
+
end
|
19
|
+
|
20
|
+
def notes
|
21
|
+
## todo: check/assert bookmarkable_type == BeerDB::Model::Beer
|
22
|
+
Note.where( user_id: user_id, beer_id: bookmarkable_id )
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
## todo: check: how to handle polymorphic best for getting beer for bookmarkable?
|
27
|
+
def beer
|
28
|
+
## todo: check/assert bookmarkable_type == BeerDB::Model::Beer
|
29
|
+
Beer.find( bookmarkable_id )
|
30
|
+
end
|
31
|
+
|
32
|
+
end # class Bookmark
|
33
|
+
|
34
|
+
end # module Model
|
35
|
+
end # module BeerDb
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
module BeerDb
|
4
|
+
module Model
|
5
|
+
|
6
|
+
class Drink < ActiveRecord::Base
|
7
|
+
|
8
|
+
belongs_to :beer, class_name: 'BeerDb::Model::Beer'
|
9
|
+
belongs_to :user, class_name: 'BeerDb::Model::User'
|
10
|
+
|
11
|
+
before_save :on_before_save
|
12
|
+
|
13
|
+
def on_before_save
|
14
|
+
# todo/check: can we use blank? for datetime too or just array,strings,etc.
|
15
|
+
# check - can we use/access created_at? already set for new records?
|
16
|
+
|
17
|
+
self.drunk_at = Time.now if drunk_at.blank?
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
end # class Drink
|
22
|
+
|
23
|
+
end # module Model
|
24
|
+
end # module BeerDb
|
25
|
+
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
|
4
|
+
### forward references
|
5
|
+
## require first to resolve circular references
|
6
|
+
|
7
|
+
module BeerDb
|
8
|
+
module Model
|
9
|
+
|
10
|
+
class User < ActiveRecord::Base ; end
|
11
|
+
class Bookmark < ActiveRecord::Base ; end
|
12
|
+
class Drink < ActiveRecord::Base ; end
|
13
|
+
class Note < ActiveRecord::Base ; end
|
14
|
+
|
15
|
+
end # module Model
|
16
|
+
end # module BeerDb
|
17
|
+
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
module BeerDb
|
4
|
+
module Model
|
5
|
+
|
6
|
+
class Note < ActiveRecord::Base
|
7
|
+
|
8
|
+
belongs_to :beer, class_name: 'BeerDb::Model::Beer'
|
9
|
+
belongs_to :user, class_name: 'BeerDb::Model::User'
|
10
|
+
|
11
|
+
end # class Note
|
12
|
+
|
13
|
+
end # module Model
|
14
|
+
end # module BeerDb
|
15
|
+
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
module BeerDb
|
4
|
+
module Model
|
5
|
+
|
6
|
+
class User < ActiveRecord::Base
|
7
|
+
|
8
|
+
has_many :notes # beers w/ ratings
|
9
|
+
has_many :drinks
|
10
|
+
|
11
|
+
has_many :bookmarks # bookmarked beers
|
12
|
+
|
13
|
+
|
14
|
+
before_save :on_before_save
|
15
|
+
|
16
|
+
def on_before_save
|
17
|
+
if email.blank?
|
18
|
+
self.key = 'xxx'
|
19
|
+
else
|
20
|
+
# NB: remove whitespace and (.-+_) and downcase
|
21
|
+
self.key = email.gsub( /[\s\.\-+_]/, '' ).downcase
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
end # class User
|
26
|
+
|
27
|
+
end # module Model
|
28
|
+
end # module BeerDb
|
29
|
+
|
@@ -0,0 +1,93 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
module BeerDb
|
4
|
+
|
5
|
+
### some more optional migrations
|
6
|
+
#
|
7
|
+
# see beer.db.admin (copied for possible service/api version only)
|
8
|
+
|
9
|
+
|
10
|
+
####
|
11
|
+
# tasting notes (w/ ratings)
|
12
|
+
class CreateDbExtrasNotes
|
13
|
+
|
14
|
+
def up
|
15
|
+
ActiveRecord::Schema.define do
|
16
|
+
create_table :notes do |t| # join table (user,beer)
|
17
|
+
t.references :beer, :null => false
|
18
|
+
t.references :user, :null => false
|
19
|
+
t.integer :rating, :null => false # 1-10 scala (10 is best)
|
20
|
+
|
21
|
+
t.text :comments
|
22
|
+
t.string :place # location (place) where tasted/drunken
|
23
|
+
|
24
|
+
## todo: add flag for bottle, can, draft
|
25
|
+
|
26
|
+
t.timestamps
|
27
|
+
end
|
28
|
+
end # Schema.define
|
29
|
+
end # method up
|
30
|
+
end # class CreateDbExtrasNotes
|
31
|
+
|
32
|
+
|
33
|
+
#################
|
34
|
+
# +1 - beer drink log; track beers
|
35
|
+
class CreateDbExtrasDrinks
|
36
|
+
|
37
|
+
def up
|
38
|
+
ActiveRecord::Schema.define do
|
39
|
+
create_table :drinks do |t| # join table (user,beer)
|
40
|
+
t.references :beer, :null => false
|
41
|
+
t.references :user, :null => false
|
42
|
+
t.datetime :drunk_at ## , :null => false # todo: pre-set if nil to created_at?
|
43
|
+
|
44
|
+
t.string :place # location (place) where tasted/drunken
|
45
|
+
|
46
|
+
## todo: add flag for bottle, can, draft
|
47
|
+
|
48
|
+
t.timestamps
|
49
|
+
end
|
50
|
+
end # Schema.define
|
51
|
+
end # method up
|
52
|
+
end # class CreateDrinks
|
53
|
+
|
54
|
+
|
55
|
+
class CreateDbExtrasBookmarks
|
56
|
+
|
57
|
+
def up
|
58
|
+
ActiveRecord::Schema.define do
|
59
|
+
create_table :bookmarks do |t| # join table (user,beer/brewery)
|
60
|
+
t.references :bookmarkable, :polymorphic => true # todo: check add :null => false is possible/needed?
|
61
|
+
t.references :user, :null => false
|
62
|
+
|
63
|
+
t.boolean :yes, :null => false, :default => false # like/favorite/top
|
64
|
+
t.boolean :no, :null => false, :default => false # dislike/flop/blacklisted
|
65
|
+
t.boolean :wish, :null => false, :default => false # e.g wish == false == drunk / wishlist (beer not yet drunken/tasted)
|
66
|
+
|
67
|
+
t.timestamps
|
68
|
+
end
|
69
|
+
end # Schema.define
|
70
|
+
end # method up
|
71
|
+
end # class CreateBookmarks
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
class CreateDbExtrasUsers
|
76
|
+
|
77
|
+
def up
|
78
|
+
ActiveRecord::Schema.define do
|
79
|
+
create_table :users do |t|
|
80
|
+
t.string :key, :null => false # import/export key
|
81
|
+
t.string :name, :null => false
|
82
|
+
t.string :email, :null => false
|
83
|
+
t.boolean :admin, :null => false, :default => false
|
84
|
+
t.boolean :guest, :null => false, :default => false
|
85
|
+
t.boolean :active, :null => false, :default => true
|
86
|
+
|
87
|
+
t.timestamps
|
88
|
+
end
|
89
|
+
end # Schema.define
|
90
|
+
end # method up
|
91
|
+
end # class CreateUsers
|
92
|
+
|
93
|
+
end # module BeerDb
|
data/lib/beerdb/note/version.rb
CHANGED
data/test/helper.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
|
2
|
+
## $:.unshift(File.dirname(__FILE__))
|
3
|
+
|
4
|
+
## minitest setup
|
5
|
+
|
6
|
+
require 'minitest/autorun'
|
7
|
+
|
8
|
+
|
9
|
+
# our own code
|
10
|
+
require 'beerdb/note'
|
11
|
+
|
12
|
+
### setup_in_memory_db
|
13
|
+
|
14
|
+
ActiveRecord::Base.logger = Logger.new( STDOUT )
|
15
|
+
|
16
|
+
ActiveRecord::Base.establish_connection( adapter: 'sqlite3',
|
17
|
+
database: ':memory:' )
|
data/test/test_extras.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
###
|
4
|
+
# to run use
|
5
|
+
# ruby -I ./lib -I ./test test/test_extras.rb
|
6
|
+
# or better
|
7
|
+
# rake test
|
8
|
+
|
9
|
+
require 'helper'
|
10
|
+
|
11
|
+
|
12
|
+
class TestExtras < MiniTest::Test
|
13
|
+
|
14
|
+
def test_create
|
15
|
+
|
16
|
+
BeerDb::CreateDbExtrasNotes.new.up
|
17
|
+
BeerDb::CreateDbExtrasDrinks.new.up
|
18
|
+
BeerDb::CreateDbExtrasBookmarks.new.up
|
19
|
+
BeerDb::CreateDbExtrasUsers.new.up
|
20
|
+
|
21
|
+
assert true # for now everything ok if we get here
|
22
|
+
end
|
23
|
+
|
24
|
+
end # class TestExtras
|
metadata
CHANGED
@@ -1,38 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beerdb-note
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Gerald Bauer
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2017-08-27 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: beerdb-models
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.2.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.2.0
|
14
27
|
- !ruby/object:Gem::Dependency
|
15
28
|
name: rdoc
|
16
|
-
requirement:
|
17
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
18
30
|
requirements:
|
19
|
-
- - ~>
|
31
|
+
- - "~>"
|
20
32
|
- !ruby/object:Gem::Version
|
21
33
|
version: '4.0'
|
22
34
|
type: :development
|
23
35
|
prerelease: false
|
24
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '4.0'
|
25
41
|
- !ruby/object:Gem::Dependency
|
26
42
|
name: hoe
|
27
|
-
requirement:
|
28
|
-
none: false
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
29
44
|
requirements:
|
30
|
-
- - ~>
|
45
|
+
- - "~>"
|
31
46
|
- !ruby/object:Gem::Version
|
32
|
-
version: '3.
|
47
|
+
version: '3.16'
|
33
48
|
type: :development
|
34
49
|
prerelease: false
|
35
|
-
version_requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.16'
|
36
55
|
description: beerdb-note gem - beer.db addon for notes, bookmarks, drinks, etc.
|
37
56
|
email: beerdb@googlegroups.com
|
38
57
|
executables: []
|
@@ -47,32 +66,39 @@ files:
|
|
47
66
|
- README.md
|
48
67
|
- Rakefile
|
49
68
|
- lib/beerdb/note.rb
|
69
|
+
- lib/beerdb/note/models/bookmark.rb
|
70
|
+
- lib/beerdb/note/models/drink.rb
|
71
|
+
- lib/beerdb/note/models/forward.rb
|
72
|
+
- lib/beerdb/note/models/note.rb
|
73
|
+
- lib/beerdb/note/models/user.rb
|
74
|
+
- lib/beerdb/note/schema.rb
|
50
75
|
- lib/beerdb/note/version.rb
|
51
|
-
|
76
|
+
- test/helper.rb
|
77
|
+
- test/test_extras.rb
|
78
|
+
homepage: https://github.com/beerkit/beer.db
|
52
79
|
licenses:
|
53
80
|
- Public Domain
|
81
|
+
metadata: {}
|
54
82
|
post_install_message:
|
55
83
|
rdoc_options:
|
56
|
-
- --main
|
84
|
+
- "--main"
|
57
85
|
- README.md
|
58
86
|
require_paths:
|
59
87
|
- lib
|
60
88
|
required_ruby_version: !ruby/object:Gem::Requirement
|
61
|
-
none: false
|
62
89
|
requirements:
|
63
|
-
- -
|
90
|
+
- - ">="
|
64
91
|
- !ruby/object:Gem::Version
|
65
|
-
version:
|
92
|
+
version: '2.3'
|
66
93
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
|
-
none: false
|
68
94
|
requirements:
|
69
|
-
- -
|
95
|
+
- - ">="
|
70
96
|
- !ruby/object:Gem::Version
|
71
97
|
version: '0'
|
72
98
|
requirements: []
|
73
99
|
rubyforge_project:
|
74
|
-
rubygems_version:
|
100
|
+
rubygems_version: 2.5.2
|
75
101
|
signing_key:
|
76
|
-
specification_version:
|
102
|
+
specification_version: 4
|
77
103
|
summary: beerdb-note gem - beer.db addon for notes, bookmarks, drinks, etc.
|
78
104
|
test_files: []
|