theworkinggroup-date_flag 0.0.1

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.
@@ -0,0 +1,3 @@
1
+ === 0.0.1 / 2009-02-18
2
+
3
+ * First draft of plugin
@@ -0,0 +1,12 @@
1
+ History.txt
2
+ Manifest.txt
3
+ README.txt
4
+ Rakefile
5
+ date_flag.gemspec
6
+ init.rb
7
+ install.rb
8
+ lib/date_flag.rb
9
+ tasks/date_flag_tasks.rake
10
+ test/date_flag_test.rb
11
+ test/test_helper.rb
12
+ uninstall.rb
@@ -0,0 +1,46 @@
1
+ = date_flag
2
+
3
+ * http://theworkinggroup.ca/
4
+
5
+ == DESCRIPTION:
6
+
7
+ This is a date flag method for ActiveRecord models.
8
+
9
+ == FEATURES/PROBLEMS:
10
+
11
+ * Fixes things.
12
+
13
+ == SYNOPSIS:
14
+
15
+ It's a date flag field.
16
+
17
+ == REQUIREMENTS:
18
+
19
+ * Rails 2.2
20
+
21
+ == INSTALL:
22
+
23
+ * sudo gem install date_flag --source http://gems.github.com/
24
+
25
+ == LICENSE:
26
+
27
+ Copyright (c) 2009 The Working Group
28
+
29
+ Permission is hereby granted, free of charge, to any person obtaining
30
+ a copy of this software and associated documentation files (the
31
+ 'Software'), to deal in the Software without restriction, including
32
+ without limitation the rights to use, copy, modify, merge, publish,
33
+ distribute, sublicense, and/or sell copies of the Software, and to
34
+ permit persons to whom the Software is furnished to do so, subject to
35
+ the following conditions:
36
+
37
+ The above copyright notice and this permission notice shall be
38
+ included in all copies or substantial portions of the Software.
39
+
40
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
41
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
42
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
43
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
44
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
45
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
46
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,40 @@
1
+ require 'rubygems'
2
+
3
+ require 'rake'
4
+ require 'rake/testtask'
5
+ require 'rake/rdoctask'
6
+
7
+ require 'hoe'
8
+
9
+ require './lib/date_flag'
10
+
11
+ Hoe.new('date_flag', DateFlag::VERSION) do |p|
12
+ p.developer('The Working Group', 'info@theworkinggroup.ca')
13
+ end
14
+
15
+ desc 'Default: run unit tests.'
16
+ task :default => :test
17
+
18
+ desc 'Test the date_flag plugin.'
19
+ Rake::TestTask.new(:test) do |t|
20
+ t.libs << 'lib'
21
+ t.libs << 'test'
22
+ t.pattern = 'test/**/*_test.rb'
23
+ t.verbose = true
24
+ end
25
+
26
+ desc 'Generate documentation for the date_flag plugin.'
27
+ Rake::RDocTask.new(:rdoc) do |rdoc|
28
+ rdoc.rdoc_dir = 'rdoc'
29
+ rdoc.title = 'DateFlag'
30
+ rdoc.options << '--line-numbers' << '--inline-source'
31
+ rdoc.rdoc_files.include('README')
32
+ rdoc.rdoc_files.include('lib/**/*.rb')
33
+ end
34
+
35
+ namespace :hoe do
36
+ task :cultivate do
37
+ system "touch Manifest.txt; rake check_manifest | grep -v \"(in \" | patch"
38
+ system "rake debug_gem | grep -v \"(in \" > `basename \\`pwd\\``.gemspec"
39
+ end
40
+ end
@@ -0,0 +1,35 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{date_flag}
5
+ s.version = "0.0.1"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["The Working Group"]
9
+ s.date = %q{2009-02-18}
10
+ s.description = %q{This is a date flag method for ActiveRecord models.}
11
+ s.email = ["info@theworkinggroup.ca"]
12
+ s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.txt"]
13
+ s.files = ["History.txt", "Manifest.txt", "README.txt", "Rakefile", "date_flag.gemspec", "init.rb", "install.rb", "lib/date_flag.rb", "tasks/date_flag_tasks.rake", "test/date_flag_test.rb", "test/test_helper.rb", "uninstall.rb"]
14
+ s.has_rdoc = true
15
+ s.homepage = %q{http://theworkinggroup.ca/}
16
+ s.rdoc_options = ["--main", "README.txt"]
17
+ s.require_paths = ["lib"]
18
+ s.rubyforge_project = %q{date_flag}
19
+ s.rubygems_version = %q{1.3.1}
20
+ s.summary = %q{This is a date flag method for ActiveRecord models.}
21
+ s.test_files = ["test/test_helper.rb"]
22
+
23
+ if s.respond_to? :specification_version then
24
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
25
+ s.specification_version = 2
26
+
27
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
28
+ s.add_development_dependency(%q<hoe>, [">= 1.8.3"])
29
+ else
30
+ s.add_dependency(%q<hoe>, [">= 1.8.3"])
31
+ end
32
+ else
33
+ s.add_dependency(%q<hoe>, [">= 1.8.3"])
34
+ end
35
+ end
data/init.rb ADDED
@@ -0,0 +1,3 @@
1
+ require 'date_flag'
2
+
3
+ ActiveRecord::Base.send(:extend, DateFlag)
@@ -0,0 +1 @@
1
+ # Install hook code here
@@ -0,0 +1,32 @@
1
+ module DateFlag
2
+ VERSION = '0.0.1'
3
+
4
+ def date_flag(field, options = { })
5
+ action = (options[:action] ? options[:action] : field.to_s.sub(/_at$/, '')).to_sym
6
+ query = (options[:query] and options[:query].to_sym or action)
7
+
8
+ define_method(:"#{action}=") do |value|
9
+ unless (read_attribute(field))
10
+ case (value)
11
+ when nil, false, '', '0':
12
+ write_attribute(field, nil)
13
+ when DateTime, Date, Time:
14
+ write_attribute(field, value)
15
+ else
16
+ write_attribute(field, Time.now.utc)
17
+ end
18
+ end
19
+ end
20
+
21
+ define_method(:"#{action}?") do
22
+ !!(read_attribute(field))
23
+ end
24
+
25
+ define_method(:"#{action}!") do
26
+ unless (read_attribute(field))
27
+ write_attribute(field, Time.now.utc)
28
+ save!
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :date_flag do
3
+ # # Task goes here
4
+ # end
@@ -0,0 +1,8 @@
1
+ require 'test_helper'
2
+
3
+ class DateFlagTest < ActiveSupport::TestCase
4
+ # Replace this with your real tests.
5
+ test "the truth" do
6
+ assert true
7
+ end
8
+ end
@@ -0,0 +1,3 @@
1
+ require 'rubygems'
2
+ require 'active_support'
3
+ require 'active_support/test_case'
@@ -0,0 +1 @@
1
+ # Uninstall hook code here
metadata ADDED
@@ -0,0 +1,77 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: theworkinggroup-date_flag
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - The Working Group
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-02-18 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: hoe
17
+ type: :development
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.8.3
24
+ version:
25
+ description: This is a date flag method for ActiveRecord models.
26
+ email:
27
+ - info@theworkinggroup.ca
28
+ executables: []
29
+
30
+ extensions: []
31
+
32
+ extra_rdoc_files:
33
+ - History.txt
34
+ - Manifest.txt
35
+ - README.txt
36
+ files:
37
+ - History.txt
38
+ - Manifest.txt
39
+ - README.txt
40
+ - Rakefile
41
+ - date_flag.gemspec
42
+ - init.rb
43
+ - install.rb
44
+ - lib/date_flag.rb
45
+ - tasks/date_flag_tasks.rake
46
+ - test/date_flag_test.rb
47
+ - test/test_helper.rb
48
+ - uninstall.rb
49
+ has_rdoc: true
50
+ homepage: http://theworkinggroup.ca/
51
+ post_install_message:
52
+ rdoc_options:
53
+ - --main
54
+ - README.txt
55
+ require_paths:
56
+ - lib
57
+ required_ruby_version: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: "0"
62
+ version:
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: "0"
68
+ version:
69
+ requirements: []
70
+
71
+ rubyforge_project: date_flag
72
+ rubygems_version: 1.2.0
73
+ signing_key:
74
+ specification_version: 2
75
+ summary: This is a date flag method for ActiveRecord models.
76
+ test_files:
77
+ - test/test_helper.rb