column_hider 0.0.3 → 0.1.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 92694d59e054b7bf2a60bb47e269747e1d963fc3
4
- data.tar.gz: 95ac8dcf140fb78bc66bac925793032f8e956c25
3
+ metadata.gz: 9287c6d527ae754bf0e6740bfd26edf27e68465e
4
+ data.tar.gz: 2ba7e97a4ce9fb127f0770ed0187bdd8bab4c534
5
5
  SHA512:
6
- metadata.gz: edaf3c141bf8d6963eabaf3dd30f928aac951951ecaa4d68f44bcdaf3f3bdda091c46986f7721e95a4cca7610f627624f66c3cc313374753790386cbb92c3121
7
- data.tar.gz: 83d38ab53752217368371305e19f25e462a9480706b2b7a4c790d8f1a569a67f62ad72198d0136ca135762e851f437565e7e5e502c0de474939e05811804a265
6
+ metadata.gz: 4625f8ff1f4563217f9768164fac4629c720813d440dda173fd4af1c4bae8bc03cf4dd6a2fef85699f10e1a6b687d58f3e4d66e3f389f661f109454d42e89567
7
+ data.tar.gz: 063a5fbac61db115681ad88a95335b94ea9fb67c8e2dfc8b44345247ed656268f7bebbd18c9150d03021e7e5080e3defffda3b73dc33c1c1563a9cca3b07a630
data/README.md CHANGED
@@ -39,12 +39,12 @@ The solution to this problem lies in overriding the `ActiveRecord` columns metho
39
39
 
40
40
  ```ruby
41
41
  extend ColumnHider::ActiveRecordAttributes
42
- column_hider_columns :column_one
42
+ column_hider_deprecate_columns :column_one, :column_two, ...
43
43
  ```
44
44
 
45
45
  where `:column_one` is the `CTBD`.
46
46
 
47
- This logically deletes the column from the application - whenever the application accesses the model, the column will be removed from the list of columns that the application knows about.
47
+ This logically deletes the column from the application - whenever the application accesses the model, the column will be removed from the list of columns that the application knows about. Getter and setter methods are dynamically added, so that you'll receive NoMethodError errors if you try to use the `CTBD` anywhere in your application.
48
48
 
49
49
  Then go through your application in the normal way and remove all other references to the `CTBD`.
50
50
 
data/lib/column_hider.rb CHANGED
@@ -7,6 +7,9 @@ module ColumnHider
7
7
  # To use, add two lines to your model:
8
8
  # ` extend ColumnHider::ActiveRecordAttributes`
9
9
  # ` column_hider_columns :column_one, :column_two, ...`
10
+ # If you want to deprecate the columns, call:
11
+ # ` column_hider_deprecate_columns :column_one, :column_two, ...`
12
+ # This will also hide the columns
10
13
  #
11
14
  module ActiveRecordAttributes
12
15
  def column_hider_columns(*cols)
@@ -20,6 +23,19 @@ module ColumnHider
20
23
  @column_hider_columns ||= {} # just in case the model has "extend ColumnHider::ActiveRecordAttributes", but doesn't call column_hider_columns
21
24
  super.reject { |col| @column_hider_columns.has_key?(col.name.to_sym) }
22
25
  end
26
+
27
+ def column_hider_deprecate_columns(*cols)
28
+ cols.each do |c|
29
+ define_method("#{c}".to_sym) do
30
+ raise NoMethodError.new("column '#{c}' deprecated", c.to_sym)
31
+ end
32
+ define_method("#{c}=".to_sym) do |arg|
33
+ raise NoMethodError.new("column '#{c}' deprecated", c.to_sym)
34
+ end
35
+ end
36
+ column_hider_columns(*cols)
37
+ end
38
+
23
39
  end
24
40
 
25
41
  end
@@ -1,3 +1,3 @@
1
1
  module ColumnHider
2
- VERSION = "0.0.3"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -17,6 +17,7 @@ describe ColumnHider do
17
17
  end
18
18
  extend ColumnHider::ActiveRecordAttributes
19
19
  column_hider_columns :capital
20
+ column_hider_deprecate_columns :capital
20
21
  end
21
22
  end
22
23
 
@@ -37,11 +38,18 @@ describe ColumnHider do
37
38
  expect(col_arr).wont_include('capital')
38
39
  end
39
40
 
40
- it '#raises an error if we reference a hidden column' do
41
- assert_raises ActiveRecord::UnknownAttributeError do
41
+ it '#raises an error if we reference a hidden column via mass assignment' do
42
+ assert_raises NoMethodError do
42
43
  c = Country.new(name: 'USA', capital: 'Washington, DC', comment: 'America')
43
44
  end
44
45
  end
46
+
47
+ it '#raises an error if we reference a hidden column via individual assignment' do
48
+ assert_raises NoMethodError do
49
+ c = Country.new
50
+ c.capital = 'Edinburgh'
51
+ end
52
+ end
45
53
  end
46
54
 
47
55
  describe '#column is removed dynamically' do
@@ -1535,3 +1535,82 @@
1535
1535
   (0.3ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1536
1536
   (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1537
1537
   (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1538
+  (0.4ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1539
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1540
+  (0.1ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1541
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1542
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1543
+  (0.1ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1544
+  (0.3ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1545
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1546
+  (0.1ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1547
+  (0.1ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1548
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1549
+  (0.1ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1550
+  (0.3ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1551
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1552
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1553
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1554
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1555
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1556
+  (0.3ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1557
+  (0.3ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1558
+  (0.4ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1559
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1560
+  (0.3ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1561
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1562
+  (0.4ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1563
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1564
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1565
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1566
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1567
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1568
+  (0.3ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1569
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1570
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1571
+  (0.1ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1572
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1573
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1574
+  (0.3ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1575
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1576
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1577
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1578
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1579
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1580
+  (0.3ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1581
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1582
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1583
+  (0.1ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1584
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1585
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1586
+  (0.3ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1587
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1588
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1589
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1590
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1591
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1592
+  (0.3ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1593
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1594
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1595
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1596
+  (0.3ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1597
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1598
+  (0.3ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1599
+  (0.1ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1600
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1601
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1602
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1603
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1604
+  (0.6ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1605
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1606
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1607
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1608
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1609
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1610
+  (0.3ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1611
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1612
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1613
+  (0.3ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1614
+  (0.2ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
1615
+  (0.1ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar)
1616
+  (0.1ms) CREATE TABLE "countries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "capital" varchar, "comment" varchar) 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: column_hider
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Flashfunders
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-10 00:00:00.000000000 Z
11
+ date: 2016-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails