props-activerecord 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ea8c52f4ce14da691d29d93a4568b610b394e64f
4
- data.tar.gz: 7ac42627aadf740610686634243e2341ada4d25e
3
+ metadata.gz: 247bc4451a1641dee16bbf5a91ff53281b753d92
4
+ data.tar.gz: d3264b0a4ebb670e5822ba2e7320869a31b9af74
5
5
  SHA512:
6
- metadata.gz: 0814b1b7017dedd02179cf94f4b2f0edd41b129aa525f9d51822fb86904738e26af2f81ba5c8cd22ff030ffed4c3bd7a7ce694330faa5bc1bd977d8f37d5d855
7
- data.tar.gz: b05a923c6c42b3c4e70b99cce03a7548d4bdc268c7a85fc88300e0530b1ca5a0f501c66cf236a8fe0f2e7392ab3dd03c77f7bea394104644e9f195e3351df513
6
+ metadata.gz: 83ca48dc53e14d46073b732a3c28d49f92648fa721ff0ec20215123885eb1e1b18033d121dc420f88d5dc8fd53771b028464226b3df76beaa0c41c11f95d838a
7
+ data.tar.gz: eb51d35bb869f26148cf39287bbf3a58352234eacf9c03ac6de530cdecacd96ab3e2d72a37af76770f3d49c74642073ed3fdbf2bb7df4c7e04ffe417dc939176
data/Manifest.txt CHANGED
@@ -3,4 +3,6 @@ Manifest.txt
3
3
  README.md
4
4
  Rakefile
5
5
  lib/props/activerecord.rb
6
+ lib/props/activerecord/models.rb
7
+ lib/props/activerecord/schema.rb
6
8
  lib/props/activerecord/version.rb
data/Rakefile CHANGED
@@ -20,7 +20,7 @@ Hoe.spec 'props-activerecord' do
20
20
  self.licenses = ['Public Domain']
21
21
 
22
22
  self.extra_deps = [
23
- ['props'],
23
+ ['props', '>=1.1.2'],
24
24
  ['activerecord'], # NB: will include activesupport,etc.
25
25
  ]
26
26
 
@@ -5,8 +5,40 @@
5
5
  ## this is an addon/plugin/extension for the props gems (that is, will NOT work stand-alone)
6
6
 
7
7
 
8
+ # rubygems / 3rd party libs
9
+ require 'active_record' ## todo: add sqlite3? etc.
10
+
8
11
  # our own code
9
12
 
10
13
  require 'props/activerecord/version' # version always goes first
14
+ require 'props/activerecord/schema'
15
+ require 'props/activerecord/models'
16
+
17
+
18
+
19
+ module ConfDb
20
+
21
+ def self.create
22
+ CreateDb.new.up
23
+ end
24
+
25
+ # delete ALL records (use with care!)
26
+ def self.delete!
27
+ puts '*** deleting props table records/data...'
28
+ Prop.delete_all
29
+ end # method delete!
30
+
31
+ ## def self.stats ## remove ? -- duplicate - use tables - why?? why not????
32
+ ## puts "#{Model::Prop} props"
33
+ ## end
34
+
35
+ def self.tables
36
+ puts "#{Prop.count} props"
37
+ end
38
+
39
+ end # module ConfDb
40
+
41
+
11
42
 
43
+ puts ConfDb.banner if $DEBUG || (defined?($RUBYLIBS_DEBUG) && $RUBYLIBS_DEBUG) # say hello
12
44
 
@@ -0,0 +1,48 @@
1
+ # encoding: utf-8
2
+
3
+ module ConfDb
4
+ module Model
5
+
6
+
7
+ class Prop < ActiveRecord::Base
8
+
9
+ ### todo/fix: move create_from_fixture! method to textutils ??? - why? why not?
10
+ ## yes - move to textutils! - fixture concept/notion is part of textutils
11
+
12
+ def self.create_from_fixture!( name, path )
13
+ key = "db.#{fixture_name_to_prop_key(name)}.version"
14
+
15
+ value = "txt.#{File.mtime(path).strftime('%Y.%m.%d')}"
16
+
17
+ Prop.create!( key: key, value: value )
18
+ end
19
+
20
+ ### todo:
21
+ ## add latest scope -> order props by creation date desc!!!!
22
+
23
+ ## add dump -> dump latest props to console via puts
24
+ ## check - dump already taken by activerecord??
25
+
26
+ private
27
+
28
+ # helper
29
+ # change at/2012_13/bl to at.2012/13.bl
30
+ # or quali_2012_13_europe_c to quali.2012/13.europe.c
31
+
32
+ def self.fixture_name_to_prop_key( name )
33
+ prop_key = name.gsub( '/', '.' )
34
+ prop_key = prop_key.gsub( /(\d{4})_(\d{2})/, '\1/\2' ) # 2012_13 => 2012/13
35
+ prop_key = prop_key.gsub( '_', '.' )
36
+ prop_key
37
+ end
38
+
39
+ end # class Prop
40
+
41
+ end # module Model
42
+
43
+ ##### add convenience module alias in plural e.g. lets you use include ConfDb::Models
44
+ Models = Model
45
+ ##### add convenience class alias e.g lets you use Prop instead of Model::Prop
46
+ Prop = Model::Prop
47
+
48
+ end # module ConfDb
@@ -0,0 +1,24 @@
1
+ # encoding: utf-8
2
+
3
+ module ConfDb
4
+
5
+ class CreateDb < ActiveRecord::Migration
6
+
7
+ def up
8
+
9
+ create_table :props do |t|
10
+ t.string :key, null: false
11
+ t.string :value, null: false
12
+ t.string :kind # e.g. version|user|sys(tem)|db etc. # note: can NOT use type - already used by ActiveRecord
13
+ t.timestamps
14
+ end
15
+
16
+ end
17
+
18
+ def down
19
+ raise ActiveRecord::IrreversibleMigration
20
+ end
21
+
22
+ end # class CreateDb
23
+
24
+ end # module ConfDb
@@ -1,6 +1,24 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module ConfDb
4
- VERSION = '0.0.1'
5
- end
4
+
5
+ MAJOR = 0 ## todo: namespace inside version or something - why? why not??
6
+ MINOR = 1
7
+ PATCH = 0
8
+ VERSION = [MAJOR,MINOR,PATCH].join('.')
9
+
10
+ def self.version
11
+ VERSION
12
+ end
13
+
14
+ def self.banner
15
+ # todo: add RUBY_PATCHLEVEL or RUBY_PATCH_LEVEL??
16
+ "confdb/#{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
17
+ end
18
+
19
+ def self.root
20
+ "#{File.expand_path( File.dirname(File.dirname(File.dirname(File.dirname(__FILE__)))) )}"
21
+ end
22
+
23
+ end # module ConfDb
6
24
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: props-activerecord
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 1.1.2
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: '0'
26
+ version: 1.1.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activerecord
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -81,6 +81,8 @@ files:
81
81
  - README.md
82
82
  - Rakefile
83
83
  - lib/props/activerecord.rb
84
+ - lib/props/activerecord/models.rb
85
+ - lib/props/activerecord/schema.rb
84
86
  - lib/props/activerecord/version.rb
85
87
  homepage: https://github.com/rubylibs/props-activerecord
86
88
  licenses: