summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/models/company.rb3
-rw-r--r--app/models/license_status.rb4
-rw-r--r--app/models/license_status/confidential.rb5
-rw-r--r--db/migrate/20140222032401_add_confidential_to_licenses.rb5
-rw-r--r--db/schema.rb3
-rw-r--r--spec/models/company_spec.rb7
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