boolean_datepicker 0.0.1 → 0.0.2

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