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 ADDED
@@ -0,0 +1,4 @@
1
+ lib/legacy_woes.rb
2
+ Rakefile
3
+ README.rdoc
4
+ Manifest
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
@@ -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
@@ -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
+