boolean_datepicker 0.0.1 → 0.0.2

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/README.md CHANGED
@@ -0,0 +1,19 @@
1
+ The gem trace the datetime of the last time a boolean field has been saved with e true value.
2
+ ###Installation
3
+ gem "boolean-datepicker"
4
+ ###Usage
5
+ Use the macro boolean_datepicker_on to define the boolean column you want to trace
6
+
7
+ boolean_datepicker_on :my_boolean_field
8
+
9
+ By default the datetime column required will "date_{my_field_date}". You can use a custom date column name passing a secon array elemnt like:
10
+
11
+ boolean_datepicker_on :my_boolean_field, [:another_boolean, :custom_date_field]
12
+
13
+ Anytime the boolena field is setted to true (and is modified from a precedent different value) the date column field is filled with the Time.now value.
14
+ Anyother value passed ot the boolean field rest the date filed to nil.
15
+ Gem uses the before_save callbacks
16
+
17
+ ###Rspec matcher
18
+ it {should have_boolean_datepicker_on(:my_field)}
19
+
Binary file
@@ -1,3 +1,3 @@
1
1
  module BooleanDatepicker
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -0,0 +1,27 @@
1
+ RSpec::Core::RakeTask.new(:spec) do |t|
2
+ t.rspec_opts = ["-fd","--format RspecJunitFormatter", "--out spec/reports/rspec.xml"]
3
+ end
4
+
5
+ namespace :boolean_datepicker do
6
+ namespace :ci do
7
+ ENV['COVERAGE'] = 'on'
8
+ ENV['JCI'] = 'on'
9
+ ENV['RAILS_ENV'] ||= 'test'
10
+
11
+ task :migrate do
12
+ Rake::Task["db:migrate"].invoke
13
+ end
14
+
15
+ task :rspec do
16
+ rm_rf "spec/reports"
17
+ Rake::Task["spec"].invoke
18
+ end
19
+
20
+ task :cucumber do
21
+ ENV["CUCUMBER_OPTS"] = "--format junit --out features/reports --format html --out features/reports/cucumber.ht"
22
+ Rake::Task["cucumber"].invoke
23
+ end
24
+ end
25
+ end
26
+
27
+ task "boolean_datepicker:ci" => ["boolean_datepicker:ci:migrate","boolean_datepicker:ci:rspec","boolean_datepicker:ci:cucumber"]
@@ -0,0 +1,74 @@
1
+ require "spec_helper"
2
+
3
+ describe "boolean_datepicker" do
4
+
5
+ describe "methods generation" do
6
+
7
+ it "should have method boolean_datepicker available to ActiveRecord::Base" do
8
+ ActiveRecord::Base.singleton_methods.grep(/boolean_datepicker_on/).should_not be_nil
9
+ end
10
+
11
+ it "should generate instance method boolean_datepicker_on_ok" do
12
+ Document.new.should respond_to(:boolean_datepicker_on_ok)
13
+ end
14
+
15
+ end
16
+
17
+ describe "when creating a new record" do
18
+
19
+ it "should set date_ok field if ok is true when model is created" do
20
+ doc = Document.create!(:ok => true)
21
+ doc.date_ok.should_not be_nil
22
+ end
23
+
24
+ end
25
+
26
+ describe "before_save" do
27
+
28
+ it "should set the date_ok field to Time.now if ok is true" do
29
+ doc = Document.new(:ok => true)
30
+ doc.save!
31
+ doc.date_ok.should_not be_nil
32
+ end
33
+
34
+ it "should not change the date_ok field if ok is true but has not been changed" do
35
+ doc = Document.create!(:ok => true)
36
+ date = doc.date_ok
37
+ doc.save!
38
+ doc.date_ok.should eq date
39
+ end
40
+
41
+ it "should set the date_ok field to nil if ok value is not true" do
42
+ doc = Document.new(:ok => false)
43
+ doc.save!
44
+ doc.date_ok.should be_nil
45
+ end
46
+
47
+ it "should set the date_ok field to nil if ok value was true but has been changed into not true" do
48
+ doc = Document.new(:ok => true)
49
+ doc.save!
50
+ doc.date_ok.should_not be_nil
51
+ doc.ok = false
52
+ doc.save!
53
+ doc.date_ok.should be_nil
54
+ end
55
+
56
+ end
57
+
58
+ describe "custom date field name" do
59
+
60
+ it "should save the date on a custom date field" do
61
+ doc = Document.create!(:another_ok => true)
62
+ doc.save!
63
+ doc.custom_date.should_not be_nil
64
+ end
65
+
66
+ end
67
+
68
+ describe "rspec matcher" do
69
+ it{Document.should have_boolean_datepicker_on(:ok)}
70
+ it{Document.should_not have_boolean_datepicker_on(:field)}
71
+ end
72
+
73
+
74
+ end
@@ -0,0 +1,14 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuite tests="10" failures="0" errors="0" time="0.193338" timestamp="2012-02-22T14:26:08+01:00">
3
+ <properties/>
4
+ <testcase classname="/Users/andrea/dev/kemen/boolean_datepicker/spec/boolean_datepicker_spec.rb" name="boolean_datepicker methods generation should have method boolean_datepicker available to ActiveRecord::Base" time="0.039298"/>
5
+ <testcase classname="/Users/andrea/dev/kemen/boolean_datepicker/spec/boolean_datepicker_spec.rb" name="boolean_datepicker methods generation should generate instance method boolean_datepicker_on_ok" time="0.011778"/>
6
+ <testcase classname="/Users/andrea/dev/kemen/boolean_datepicker/spec/boolean_datepicker_spec.rb" name="boolean_datepicker when creating a new record should set date_ok field if ok is true when model is created" time="0.020582"/>
7
+ <testcase classname="/Users/andrea/dev/kemen/boolean_datepicker/spec/boolean_datepicker_spec.rb" name="boolean_datepicker before_save should set the date_ok field to Time.now if ok is true" time="0.008130"/>
8
+ <testcase classname="/Users/andrea/dev/kemen/boolean_datepicker/spec/boolean_datepicker_spec.rb" name="boolean_datepicker before_save should not change the date_ok field if ok is true but has not been changed" time="0.008881"/>
9
+ <testcase classname="/Users/andrea/dev/kemen/boolean_datepicker/spec/boolean_datepicker_spec.rb" name="boolean_datepicker before_save should set the date_ok field to nil if ok value is not true" time="0.008456"/>
10
+ <testcase classname="/Users/andrea/dev/kemen/boolean_datepicker/spec/boolean_datepicker_spec.rb" name="boolean_datepicker before_save should set the date_ok field to nil if ok value was true but has been changed into not true" time="0.013939"/>
11
+ <testcase classname="/Users/andrea/dev/kemen/boolean_datepicker/spec/boolean_datepicker_spec.rb" name="boolean_datepicker custom date field name should save the date on a custom date field" time="0.010034"/>
12
+ <testcase classname="/Users/andrea/dev/kemen/boolean_datepicker/spec/boolean_datepicker_spec.rb" name="boolean_datepicker rspec matcher " time="0.004141"/>
13
+ <testcase classname="/Users/andrea/dev/kemen/boolean_datepicker/spec/boolean_datepicker_spec.rb" name="boolean_datepicker rspec matcher " time="0.004011"/>
14
+ </testsuite>
@@ -0,0 +1,30 @@
1
+ # encoding: utf-8
2
+ require 'rubygems'
3
+ require 'active_record'
4
+ require 'sqlite3'
5
+
6
+ require 'boolean_datepicker'
7
+
8
+ Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each {|f| require f}
9
+ ActiveRecord::Base.establish_connection :adapter => "sqlite3", :database => "db/test.sqlite3"
10
+
11
+ RSpec.configure do |config|
12
+ config.mock_with :rspec
13
+
14
+ config.before :suite do
15
+ ActiveRecord::Base.connection.create_table(:documents,:force => true) do |t|
16
+ t.boolean :ok
17
+ t.datetime :date_ok
18
+ t.boolean :another_ok
19
+ t.datetime :custom_date
20
+ end
21
+ end
22
+
23
+ config.before(:each) do
24
+ Document.delete_all
25
+ end
26
+
27
+ config.after(:suite) do
28
+ ActiveRecord::Base.connection.drop_table(:documents)
29
+ end
30
+ end
@@ -0,0 +1,3 @@
1
+ class Document < ActiveRecord::Base
2
+ boolean_datepicker_on :ok,[:another_ok, :custom_date]
3
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: boolean_datepicker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-08 00:00:00.000000000Z
12
+ date: 2012-10-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: activerecord
16
- requirement: &70147849026100 !ruby/object:Gem::Requirement
15
+ name: rspec_junit_formatter
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,31 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70147849026100
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: activerecord
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: '3.0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '3.0'
25
46
  - !ruby/object:Gem::Dependency
26
47
  name: rspec-rails
27
- requirement: &70147849025420 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
28
49
  none: false
29
50
  requirements:
30
51
  - - ! '>='
@@ -32,10 +53,15 @@ dependencies:
32
53
  version: '0'
33
54
  type: :development
34
55
  prerelease: false
35
- version_requirements: *70147849025420
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
36
62
  - !ruby/object:Gem::Dependency
37
63
  name: sqlite3
38
- requirement: &70147849024760 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
39
65
  none: false
40
66
  requirements:
41
67
  - - ! '>='
@@ -43,7 +69,12 @@ dependencies:
43
69
  version: '0'
44
70
  type: :development
45
71
  prerelease: false
46
- version_requirements: *70147849024760
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
47
78
  description: ''
48
79
  email: acampolonghi@gmail.com
49
80
  executables: []
@@ -55,7 +86,12 @@ files:
55
86
  - lib/boolean_datepicker/rspec_matchers.rb
56
87
  - lib/boolean_datepicker/version.rb
57
88
  - lib/boolean_datepicker.rb
89
+ - lib/tasks/boolean_datepicker_tasks.rake
58
90
  - README.md
91
+ - spec/boolean_datepicker_spec.rb
92
+ - spec/reports/rspec.xml
93
+ - spec/spec_helper.rb
94
+ - spec/support/Document.rb
59
95
  homepage: ''
60
96
  licenses: []
61
97
  post_install_message:
@@ -68,17 +104,27 @@ required_ruby_version: !ruby/object:Gem::Requirement
68
104
  - - ! '>='
69
105
  - !ruby/object:Gem::Version
70
106
  version: '0'
107
+ segments:
108
+ - 0
109
+ hash: -3618236932770814491
71
110
  required_rubygems_version: !ruby/object:Gem::Requirement
72
111
  none: false
73
112
  requirements:
74
113
  - - ! '>='
75
114
  - !ruby/object:Gem::Version
76
115
  version: '0'
116
+ segments:
117
+ - 0
118
+ hash: -3618236932770814491
77
119
  requirements: []
78
120
  rubyforge_project:
79
- rubygems_version: 1.8.10
121
+ rubygems_version: 1.8.24
80
122
  signing_key:
81
123
  specification_version: 3
82
- summary: When a boolean field is saved with a true value saved the datetime.
83
- test_files: []
84
- has_rdoc:
124
+ summary: Trace the datetime of the last time a boolean field has been saved with e
125
+ true value.
126
+ test_files:
127
+ - spec/boolean_datepicker_spec.rb
128
+ - spec/reports/rspec.xml
129
+ - spec/spec_helper.rb
130
+ - spec/support/Document.rb