adkron-legacy_woes 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.
- data/Manifest +4 -0
- data/README.rdoc +22 -0
- data/Rakefile +15 -0
- data/legacy_woes.gemspec +31 -0
- data/lib/legacy_woes.rb +65 -0
- metadata +63 -0
data/Manifest
ADDED
data/README.rdoc
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
= Legacy Woes
|
2
|
+
|
3
|
+
If your working with
|
4
|
+
|
5
|
+
== Install
|
6
|
+
|
7
|
+
gem install adkron-legacy_woes --source http://gems.github.com
|
8
|
+
|
9
|
+
In Rails you can instead add this to your environment.rb file
|
10
|
+
config.gem "adkron-legacy_woes", :lib => 'legacy_woes', :source => 'http://gems.github.com'
|
11
|
+
|
12
|
+
== Example
|
13
|
+
|
14
|
+
require 'rubygems'
|
15
|
+
require 'legacy_woes'
|
16
|
+
|
17
|
+
class LegacyComments < ActiveRecord::Base
|
18
|
+
created_at_column :datesubmitted
|
19
|
+
end
|
20
|
+
|
21
|
+
|
22
|
+
**Copyright (c) 2008 Amos L. King, released under the MIT license**
|
data/Rakefile
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
# Rakefile
|
2
|
+
require 'rubygems'
|
3
|
+
require 'rake'
|
4
|
+
require 'echoe'
|
5
|
+
|
6
|
+
Echoe.new('legacy_woes', '0.1.0') do |p|
|
7
|
+
p.description = 'Tools for legacy databases and ActiveRecord'
|
8
|
+
p.url = 'http://github.com/adkron/legacy_woes'
|
9
|
+
p.author = 'Amos King'
|
10
|
+
p.email = 'amos.l.king@gmail.com'
|
11
|
+
p.ignore_pattern = ['tmp/*', 'script/*', 'example.rb', 'test/*']
|
12
|
+
p.development_dependencies = []
|
13
|
+
end
|
14
|
+
|
15
|
+
Dir['#{File.dirname(__FILE__)}/tasks/*.rake'].sort.each
|
data/legacy_woes.gemspec
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{legacy_woes}
|
5
|
+
s.version = "0.1.0"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Amos King"]
|
9
|
+
s.date = %q{2008-12-19}
|
10
|
+
s.description = %q{Tools for legacy databases and ActiveRecord}
|
11
|
+
s.email = %q{amos.l.king@gmail.com}
|
12
|
+
s.extra_rdoc_files = ["lib/legacy_woes.rb", "README.rdoc"]
|
13
|
+
s.files = ["lib/legacy_woes.rb", "Rakefile", "README.rdoc", "Manifest", "legacy_woes.gemspec"]
|
14
|
+
s.has_rdoc = true
|
15
|
+
s.homepage = %q{http://github.com/adkron/legacy_woes}
|
16
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Legacy_woes", "--main", "README.rdoc"]
|
17
|
+
s.require_paths = ["lib"]
|
18
|
+
s.rubyforge_project = %q{legacy_woes}
|
19
|
+
s.rubygems_version = %q{1.3.1}
|
20
|
+
s.summary = %q{Tools for legacy databases and ActiveRecord}
|
21
|
+
|
22
|
+
if s.respond_to? :specification_version then
|
23
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
24
|
+
s.specification_version = 2
|
25
|
+
|
26
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
27
|
+
else
|
28
|
+
end
|
29
|
+
else
|
30
|
+
end
|
31
|
+
end
|
data/lib/legacy_woes.rb
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
# Get rid of some of the legacy database woes
|
2
|
+
#
|
3
|
+
# Author:: Amos King (mailto:amos.l.king@gmail.com)
|
4
|
+
# Copyright:: Copyright (c) 2008 Amos King
|
5
|
+
# License:: Released under the MIT license
|
6
|
+
|
7
|
+
|
8
|
+
module LegacyWoes
|
9
|
+
def self.included(base)
|
10
|
+
base.extend ClassMethods
|
11
|
+
end
|
12
|
+
|
13
|
+
module ClassMethods
|
14
|
+
# Sets the created_at column.
|
15
|
+
# Also defines methods for created_at and created_at=.
|
16
|
+
def created_at_column(legacy_column_name)
|
17
|
+
module_eval <<-EOB
|
18
|
+
def write_attribute_with_#{legacy_column_name}_created_at(name, value, &block)
|
19
|
+
if name == 'created_at'
|
20
|
+
write_attribute('#{legacy_column_name}', value)
|
21
|
+
else
|
22
|
+
send(:write_attribute_without_#{legacy_column_name}_created_at, name, value, &block)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
EOB
|
26
|
+
|
27
|
+
define_method :created_at do
|
28
|
+
send(legacy_column_name)
|
29
|
+
end
|
30
|
+
|
31
|
+
define_method :created_at= do |value|
|
32
|
+
send('#{legacy_column_name}=', value)
|
33
|
+
end
|
34
|
+
alias_method_chain :write_attribute, "#{legacy_column_name}_created_at"
|
35
|
+
end
|
36
|
+
|
37
|
+
# Sets the updated_at column.
|
38
|
+
# Also defines methods for updated_at and updated_at=.
|
39
|
+
def updated_at_column(legacy_column_name)
|
40
|
+
module_eval <<-EOB
|
41
|
+
def write_attribute_with_#{legacy_column_name}_updated_at(name, value, &block)
|
42
|
+
if name == 'updated_at'
|
43
|
+
write_attribute('#{legacy_column_name}', value)
|
44
|
+
else
|
45
|
+
send(:write_attribute_without_#{legacy_column_name}_updated_at, name, value, &block)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
EOB
|
49
|
+
|
50
|
+
define_method :updated_at do
|
51
|
+
send(legacy_column_name)
|
52
|
+
end
|
53
|
+
|
54
|
+
define_method :updated_at= do |value|
|
55
|
+
send('#{legacy_column_name}=', value)
|
56
|
+
end
|
57
|
+
alias_method_chain :write_attribute, "#{legacy_column_name}_updated_at"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
class ActiveRecord::Base
|
63
|
+
include LegacyWoes
|
64
|
+
end
|
65
|
+
|
metadata
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: adkron-legacy_woes
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Amos King
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2008-12-19 00:00:00 -08:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: Tools for legacy databases and ActiveRecord
|
17
|
+
email: amos.l.king@gmail.com
|
18
|
+
executables: []
|
19
|
+
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files:
|
23
|
+
- lib/legacy_woes.rb
|
24
|
+
- README.rdoc
|
25
|
+
files:
|
26
|
+
- lib/legacy_woes.rb
|
27
|
+
- Rakefile
|
28
|
+
- README.rdoc
|
29
|
+
- Manifest
|
30
|
+
- legacy_woes.gemspec
|
31
|
+
has_rdoc: true
|
32
|
+
homepage: http://github.com/adkron/legacy_woes
|
33
|
+
post_install_message:
|
34
|
+
rdoc_options:
|
35
|
+
- --line-numbers
|
36
|
+
- --inline-source
|
37
|
+
- --title
|
38
|
+
- Legacy_woes
|
39
|
+
- --main
|
40
|
+
- README.rdoc
|
41
|
+
require_paths:
|
42
|
+
- lib
|
43
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: "0"
|
48
|
+
version:
|
49
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: "1.2"
|
54
|
+
version:
|
55
|
+
requirements: []
|
56
|
+
|
57
|
+
rubyforge_project: legacy_woes
|
58
|
+
rubygems_version: 1.2.0
|
59
|
+
signing_key:
|
60
|
+
specification_version: 2
|
61
|
+
summary: Tools for legacy databases and ActiveRecord
|
62
|
+
test_files: []
|
63
|
+
|