adkron-legacy_woes 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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
+