props-activerecord 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Manifest.txt +10 -8
- data/README.md +10 -8
- data/Rakefile +6 -6
- data/lib/props/activerecord.rb +0 -2
- data/lib/props/activerecord/schema.rb +8 -7
- data/lib/props/activerecord/version.rb +2 -3
- data/test/helper.rb +40 -0
- data/test/test_models.rb +22 -0
- metadata +12 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 782be55c677b11916012c04e29d873784fcf44bf
|
4
|
+
data.tar.gz: ce194b9868c4636b9b39403aa643e2c4152c21ef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a7e720a65366b21f170c3d407e30ac45eb51ae0257d574953551630438cc6cb83db40eaa8dae928d091553023a9b3efc277f0cd1b98e69e7025e46ff975780e
|
7
|
+
data.tar.gz: afec4135f52f46c8fdd8974e046197d5c9c226b8cb7c78c2c43eb4634a78e3f2b0a363eda8109eabd2e6991dc32eb08425defa8a0ce52e187ca5ff58faa3bcba
|
data/Manifest.txt
CHANGED
@@ -1,8 +1,10 @@
|
|
1
|
-
HISTORY.md
|
2
|
-
Manifest.txt
|
3
|
-
README.md
|
4
|
-
Rakefile
|
5
|
-
lib/props/activerecord.rb
|
6
|
-
lib/props/activerecord/models.rb
|
7
|
-
lib/props/activerecord/schema.rb
|
8
|
-
lib/props/activerecord/version.rb
|
1
|
+
HISTORY.md
|
2
|
+
Manifest.txt
|
3
|
+
README.md
|
4
|
+
Rakefile
|
5
|
+
lib/props/activerecord.rb
|
6
|
+
lib/props/activerecord/models.rb
|
7
|
+
lib/props/activerecord/schema.rb
|
8
|
+
lib/props/activerecord/version.rb
|
9
|
+
test/helper.rb
|
10
|
+
test/test_models.rb
|
data/README.md
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
-
#
|
1
|
+
# props-activerecord
|
2
2
|
|
3
|
-
|
4
|
-
|
3
|
+
Manage Setting Hierachies Addon for Database Support (ConfDb, Props Model, etc.)
|
4
|
+
|
5
|
+
* home :: [github.com/rubylibs/props](https://github.com/rubylibs/props)
|
6
|
+
* bugs :: [github.com/rubylibs/props/issues](https://github.com/rubylibs/props/issues)
|
5
7
|
* gem :: [rubygems.org/gems/props-activerecord](https://rubygems.org/gems/props-activerecord)
|
6
8
|
* rdoc :: [rubydoc.info/gems/props-activerecord](http://rubydoc.info/gems/props-activerecord)
|
7
9
|
|
@@ -12,7 +14,7 @@
|
|
12
14
|
|
13
15
|
Example:
|
14
16
|
|
15
|
-
|
17
|
+
```
|
16
18
|
require 'props/activerecord' # include database support
|
17
19
|
|
18
20
|
ConfDb.create # build schema / tables (props)
|
@@ -23,17 +25,17 @@ puts "Props:"
|
|
23
25
|
Prop.order( 'created_at asc' ).all.each do |prop|
|
24
26
|
puts " #{prop.key} / #{prop.value} | #{prop.created_at}"
|
25
27
|
end
|
26
|
-
|
28
|
+
```
|
27
29
|
|
28
30
|
More examples:
|
29
31
|
|
30
|
-
|
32
|
+
```
|
31
33
|
ConfDb.tables # dump stats to console
|
32
34
|
ConfDb.delete! # delete all records
|
33
|
-
|
35
|
+
```
|
34
36
|
|
35
37
|
|
36
38
|
## License
|
37
39
|
|
38
|
-
The `props-
|
40
|
+
The `props-activerecord` scripts are dedicated to the public domain.
|
39
41
|
Use it as you please with no restrictions whatsoever.
|
data/Rakefile
CHANGED
@@ -8,10 +8,10 @@ Hoe.spec 'props-activerecord' do
|
|
8
8
|
self.summary = 'props-activerecord - Manage Setting Hierachies Addon for Database Support (ConfDb, Props Model, etc.)'
|
9
9
|
self.description = summary
|
10
10
|
|
11
|
-
self.urls = ['https://github.com/rubylibs/props
|
11
|
+
self.urls = ['https://github.com/rubylibs/props']
|
12
12
|
|
13
13
|
self.author = 'Gerald Bauer'
|
14
|
-
self.email = '
|
14
|
+
self.email = 'ruby-talk@ruby-lang.org'
|
15
15
|
|
16
16
|
# switch extension to .markdown for gihub formatting
|
17
17
|
self.readme_file = 'README.md'
|
@@ -20,12 +20,12 @@ Hoe.spec 'props-activerecord' do
|
|
20
20
|
self.licenses = ['Public Domain']
|
21
21
|
|
22
22
|
self.extra_deps = [
|
23
|
-
['props', '>=1.
|
24
|
-
['activerecord'], #
|
25
|
-
]
|
23
|
+
['props', '>=1.2.0'],
|
24
|
+
['activerecord'], # Note: will include activesupport, etc.
|
25
|
+
]
|
26
26
|
|
27
27
|
self.spec_extras = {
|
28
|
-
required_ruby_version: '>=
|
28
|
+
required_ruby_version: '>= 2.3'
|
29
29
|
}
|
30
30
|
|
31
31
|
end
|
data/lib/props/activerecord.rb
CHANGED
@@ -4,7 +4,6 @@
|
|
4
4
|
## note: assumes props alreay required
|
5
5
|
## this is an addon/plugin/extension for the props gems (that is, will NOT work stand-alone)
|
6
6
|
|
7
|
-
|
8
7
|
# rubygems / 3rd party libs
|
9
8
|
require 'active_record' ## todo: add sqlite3? etc.
|
10
9
|
|
@@ -41,4 +40,3 @@ end # module ConfDb
|
|
41
40
|
|
42
41
|
|
43
42
|
puts ConfDb.banner if $DEBUG || (defined?($RUBYLIBS_DEBUG) && $RUBYLIBS_DEBUG) # say hello
|
44
|
-
|
@@ -2,22 +2,23 @@
|
|
2
2
|
|
3
3
|
module ConfDb
|
4
4
|
|
5
|
-
class CreateDb
|
5
|
+
class CreateDb
|
6
6
|
|
7
7
|
def up
|
8
|
+
ActiveRecord::Schema.define do
|
8
9
|
|
9
10
|
create_table :props do |t|
|
10
11
|
t.string :key, null: false
|
11
12
|
t.string :value, null: false
|
12
|
-
|
13
|
+
|
14
|
+
# note: do NOT/can NOT use type - already used by ActiveRecord (for single-table-inheritance/STI)
|
15
|
+
t.string :kind # e.g. version|user|sys(tem)|db etc.
|
16
|
+
|
13
17
|
t.timestamps
|
14
18
|
end
|
15
19
|
|
16
|
-
|
17
|
-
|
18
|
-
def down
|
19
|
-
raise ActiveRecord::IrreversibleMigration
|
20
|
-
end
|
20
|
+
end # Schema.define
|
21
|
+
end # method up
|
21
22
|
|
22
23
|
end # class CreateDb
|
23
24
|
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module ConfDb
|
4
4
|
|
5
5
|
MAJOR = 0 ## todo: namespace inside version or something - why? why not??
|
6
|
-
MINOR =
|
6
|
+
MINOR = 2
|
7
7
|
PATCH = 0
|
8
8
|
VERSION = [MAJOR,MINOR,PATCH].join('.')
|
9
9
|
|
@@ -18,7 +18,6 @@ module ConfDb
|
|
18
18
|
|
19
19
|
def self.root
|
20
20
|
"#{File.expand_path( File.dirname(File.dirname(File.dirname(File.dirname(__FILE__)))) )}"
|
21
|
-
end
|
21
|
+
end
|
22
22
|
|
23
23
|
end # module ConfDb
|
24
|
-
|
data/test/helper.rb
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
|
2
|
+
## $:.unshift(File.dirname(__FILE__))
|
3
|
+
|
4
|
+
## minitest setup
|
5
|
+
|
6
|
+
require 'minitest/autorun'
|
7
|
+
|
8
|
+
|
9
|
+
# our own code
|
10
|
+
require 'props'
|
11
|
+
require 'props/activerecord' # Note: explict require required for ConfDb (not automatic)
|
12
|
+
|
13
|
+
|
14
|
+
Prop = ConfDb::Model::Prop
|
15
|
+
|
16
|
+
|
17
|
+
|
18
|
+
def setup_in_memory_db
|
19
|
+
# Database Setup & Config
|
20
|
+
|
21
|
+
db_config = {
|
22
|
+
adapter: 'sqlite3',
|
23
|
+
database: ':memory:'
|
24
|
+
}
|
25
|
+
|
26
|
+
pp db_config
|
27
|
+
|
28
|
+
ActiveRecord::Base.logger = Logger.new( STDOUT )
|
29
|
+
## ActiveRecord::Base.colorize_logging = false - no longer exists - check new api/config setting?
|
30
|
+
|
31
|
+
## NB: every connect will create a new empty in memory db
|
32
|
+
ActiveRecord::Base.establish_connection( db_config )
|
33
|
+
|
34
|
+
|
35
|
+
## build schema
|
36
|
+
ConfDb.create
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
setup_in_memory_db()
|
data/test/test_models.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'helper'
|
4
|
+
|
5
|
+
class TestModels < MiniTest::Test
|
6
|
+
|
7
|
+
def setup
|
8
|
+
ConfDb.delete!
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_count
|
12
|
+
assert_equal 0, Prop.count
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
def test_create
|
17
|
+
prop = Prop.create!( key: 'key', value: 'value' )
|
18
|
+
|
19
|
+
assert_equal 1, Prop.count
|
20
|
+
end
|
21
|
+
|
22
|
+
end # class TestModels
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: props-activerecord
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gerald Bauer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-08-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: props
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: 1.2.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.
|
26
|
+
version: 1.2.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: activerecord
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,17 +58,17 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '3.
|
61
|
+
version: '3.16'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '3.
|
68
|
+
version: '3.16'
|
69
69
|
description: props-activerecord - Manage Setting Hierachies Addon for Database Support
|
70
70
|
(ConfDb, Props Model, etc.)
|
71
|
-
email:
|
71
|
+
email: ruby-talk@ruby-lang.org
|
72
72
|
executables: []
|
73
73
|
extensions: []
|
74
74
|
extra_rdoc_files:
|
@@ -84,7 +84,9 @@ files:
|
|
84
84
|
- lib/props/activerecord/models.rb
|
85
85
|
- lib/props/activerecord/schema.rb
|
86
86
|
- lib/props/activerecord/version.rb
|
87
|
-
|
87
|
+
- test/helper.rb
|
88
|
+
- test/test_models.rb
|
89
|
+
homepage: https://github.com/rubylibs/props
|
88
90
|
licenses:
|
89
91
|
- Public Domain
|
90
92
|
metadata: {}
|
@@ -98,7 +100,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
98
100
|
requirements:
|
99
101
|
- - ">="
|
100
102
|
- !ruby/object:Gem::Version
|
101
|
-
version:
|
103
|
+
version: '2.3'
|
102
104
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
103
105
|
requirements:
|
104
106
|
- - ">="
|
@@ -106,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
106
108
|
version: '0'
|
107
109
|
requirements: []
|
108
110
|
rubyforge_project:
|
109
|
-
rubygems_version: 2.
|
111
|
+
rubygems_version: 2.5.2
|
110
112
|
signing_key:
|
111
113
|
specification_version: 4
|
112
114
|
summary: props-activerecord - Manage Setting Hierachies Addon for Database Support
|