diff options
| author | mo khan <mo@mokhan.ca> | 2014-02-21 20:27:36 -0700 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2014-02-21 20:27:36 -0700 |
| commit | fbb41be394f841ce0878eb0512fbacff1a588ab7 (patch) | |
| tree | 97e6a977598e49c24f7765335077eaa504209e64 | |
| parent | 5d937942170c81bcb2304cab1c71eefda48e4e35 (diff) | |
add confidential well license status.
| -rw-r--r-- | app/models/company.rb | 3 | ||||
| -rw-r--r-- | app/models/license_status.rb | 4 | ||||
| -rw-r--r-- | app/models/license_status/confidential.rb | 5 | ||||
| -rw-r--r-- | db/migrate/20140222032401_add_confidential_to_licenses.rb | 5 | ||||
| -rw-r--r-- | db/schema.rb | 3 | ||||
| -rw-r--r-- | spec/models/company_spec.rb | 7 |
6 files changed, 20 insertions, 7 deletions
diff --git a/app/models/company.rb b/app/models/company.rb index 7233020..4b6e798 100644 --- a/app/models/company.rb +++ b/app/models/company.rb @@ -2,9 +2,6 @@ class Company < ActiveRecord::Base has_many :licenses def status(status) - #today = DateTime.now - #licenses.where('issued_at < ? AND expired_at > ?', today, today) - status.filter(licenses) end end diff --git a/app/models/license_status.rb b/app/models/license_status.rb index 1c5833f..82af2fd 100644 --- a/app/models/license_status.rb +++ b/app/models/license_status.rb @@ -1,7 +1,9 @@ class LicenseStatus ACTIVE=ActiveStatus.new("active") EXPIRED=ExpiredStatus.new("expired") - ALL=[ACTIVE, EXPIRED] + CONFIDENTIAL=Confidential.new + + ALL=[ACTIVE, EXPIRED, CONFIDENTIAL] def self.find_match(status) ACTIVE diff --git a/app/models/license_status/confidential.rb b/app/models/license_status/confidential.rb new file mode 100644 index 0000000..f3e980a --- /dev/null +++ b/app/models/license_status/confidential.rb @@ -0,0 +1,5 @@ +class LicenseStatus::Confidential + def filter(licenses) + licenses.where(confidential: true) + end +end diff --git a/db/migrate/20140222032401_add_confidential_to_licenses.rb b/db/migrate/20140222032401_add_confidential_to_licenses.rb new file mode 100644 index 0000000..7d752c8 --- /dev/null +++ b/db/migrate/20140222032401_add_confidential_to_licenses.rb @@ -0,0 +1,5 @@ +class AddConfidentialToLicenses < ActiveRecord::Migration + def change + add_column :licenses, :confidential, :boolean, default: false + end +end diff --git a/db/schema.rb b/db/schema.rb index b359b4b..453bf07 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20140221135224) do +ActiveRecord::Schema.define(version: 20140222032401) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -29,6 +29,7 @@ ActiveRecord::Schema.define(version: 20140221135224) do t.datetime "issued_at" t.datetime "expired_at" t.uuid "company_id" + t.boolean "confidential", default: false end end diff --git a/spec/models/company_spec.rb b/spec/models/company_spec.rb index 4b5f7ce..1acef1c 100644 --- a/spec/models/company_spec.rb +++ b/spec/models/company_spec.rb @@ -6,7 +6,7 @@ describe Company do let(:today) { DateTime.now } let!(:active_license) { company.licenses.create(issued_at: 1.day.ago, expired_at: 1.day.from_now) } let!(:expired_license) { company.licenses.create(issued_at: 2.days.ago, expired_at: 1.day.ago ) } - let!(:pending_license) { company.licenses.create(issued_at: 2.days.from_now, expired_at: 3.days.from_now ) } + let!(:confidential_license) { company.licenses.create(issued_at: 2.days.from_now, expired_at: 3.days.from_now, confidential: true) } it "returns all the licenses that are active" do licenses = company.status(LicenseStatus::ACTIVE) @@ -20,7 +20,10 @@ describe Company do licenses.should include(expired_license) end - pending "returns all confidential licenses" do + it "returns all confidential licenses" do + licenses = company.status(LicenseStatus::CONFIDENTIAL) + licenses.count.should == 1 + licenses.should include(confidential_license) end end end |
