theworkinggroup-date_flag 0.0.1

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