introspective_admin 0.0.3 → 0.0.4

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: a04b4686389f2d6b41c43b26709343eccfa8a8e6
4
- data.tar.gz: 76df689a036b43fe9f68358ca2ed1e0d19f31a33
3
+ metadata.gz: 34189bc924cbba881f0a7657ab2baff9ee7b3b78
4
+ data.tar.gz: 480171232780e51a4849ebd4c9b8bd238f022659
5
5
  SHA512:
6
- metadata.gz: 974022287ba462dbbb425d70271db61a18d7cbe19ff3f2e32951db2078d4809ef630af64eba3426cc5d50defe0f2b5de14a79e79097d309924deb71505022824
7
- data.tar.gz: 7135f978bfe933d6111bff64520ccf1e773ddb7a955c2aadc280e6dc1827e24cc92cdc0a5da99bd914317834e12c836be4820a57fe92f9f290aa670c8f1dae77
6
+ metadata.gz: cc3cc21f355374e2913030de42303428afebc7f2d22e70685fb5628df57e73175b3381de4ba271ee34fade1e7bced2811091e6e277359a80eb4b610ef252f2df
7
+ data.tar.gz: 1f4457130ca6007821d290aaa7ce4a21d9fe710d957cbb8acd476b90020815982ef9efa471e3da463c424f2dbd82b37292cc9831e12d4599d2ba96115d78d695
data/Gemfile.lock CHANGED
@@ -19,7 +19,7 @@ GIT
19
19
  PATH
20
20
  remote: .
21
21
  specs:
22
- introspective_admin (0.0.2)
22
+ introspective_admin (0.0.3)
23
23
  sass-rails
24
24
 
25
25
  GEM
@@ -56,7 +56,7 @@ module IntrospectiveAdmin
56
56
  end
57
57
  end
58
58
 
59
- def register(model)
59
+ def register(model, &block)
60
60
  # Defining activeadmin pages will break pending migrations:
61
61
  begin ActiveRecord::Migration.check_pending! rescue return end
62
62
 
@@ -78,6 +78,8 @@ module IntrospectiveAdmin
78
78
  }]
79
79
 
80
80
  ActiveAdmin.register model do
81
+ instance_eval &block if block_given? # Evalutate the passed black for overrides to the defaults
82
+
81
83
  controller do
82
84
  def scoped_collection
83
85
  super.includes super.nested_attributes_options.keys
@@ -85,6 +87,7 @@ module IntrospectiveAdmin
85
87
  end
86
88
 
87
89
  index do
90
+ selectable_column
88
91
  cols = model.columns.map(&:name)-klass.exclude_params
89
92
  cols.each_with_index do |c,i|
90
93
  column c
@@ -173,8 +176,6 @@ module IntrospectiveAdmin
173
176
  end
174
177
  end
175
178
 
176
- yield # Yield the DSL to the child class for further customization
177
-
178
179
  end
179
180
  end
180
181
  end
@@ -1,3 +1,3 @@
1
1
  module IntrospectiveAdmin
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -0,0 +1,73 @@
1
+ require 'rails_helper'
2
+
3
+ RSpec.describe Admin::LocationBeaconsController, :type => :controller do
4
+ render_views
5
+
6
+ before :each do # Why can't I do this shit in a helper like I do for requests?
7
+ user = double('user')
8
+ allow(request.env['warden']).to receive(:authenticate!) { user }
9
+ allow(controller).to receive(:current_user) { user }
10
+ end
11
+
12
+ describe "GET index" do
13
+ it "finds all location beacons" do
14
+ c = LocationBeacon.make!(last_known_battery_level: 50)
15
+ d = LocationBeacon.make!(last_known_battery_level: 4)
16
+ get :index
17
+ response.status.should == 200
18
+ assigns(:location_beacons).include?(c).should == true
19
+ assigns(:location_beacons).include?(d).should == true
20
+ end
21
+
22
+ it "scopes location beacons by low battery level" do
23
+ c = LocationBeacon.make!(last_known_battery_level: 50)
24
+ d = LocationBeacon.make!(last_known_battery_level: 4)
25
+ get :index, { scope: 'low_battery' }
26
+ response.status.should == 200
27
+ assigns(:location_beacons).include?(c).should == false
28
+ assigns(:location_beacons).include?(d).should == true
29
+ end
30
+ end
31
+
32
+ describe "SHOW record" do
33
+ it "finds the record" do
34
+ c = LocationBeacon.make!
35
+ get :show, id: c.id
36
+ response.status.should == 200
37
+ end
38
+ end
39
+
40
+ describe "NEW record" do
41
+ # will fail until https://github.com/activeadmin/activeadmin/pull/4010 is merged
42
+ it "renders the form for a new record" do
43
+ get :new
44
+ response.status.should == 200
45
+ end
46
+ end
47
+
48
+ describe "CREATE record" do
49
+ it "creates the record" do
50
+ c = LocationBeacon.make
51
+ post :create, location_beacon: c.attributes
52
+ response.should redirect_to action: :show, id: LocationBeacon.last.id
53
+ LocationBeacon.last.mac_address.should =~ /#{c.mac_address}/i
54
+ end
55
+ end
56
+
57
+ describe "EDIT record" do
58
+ it "renders the edit form for an existing record" do
59
+ r = LocationBeacon.make!
60
+ get :edit, id: r.id
61
+ response.status.should == 200
62
+ end
63
+ end
64
+
65
+ describe "UPDATE record" do
66
+ it "updates the record" do
67
+ r = LocationBeacon.make!
68
+ put :update, id: r.id, location_beacon: { last_known_battery_level: 30 }
69
+ response.should redirect_to action: :show, id: r.id
70
+ LocationBeacon.find(r.id).last_known_battery_level.should == 30
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,6 @@
1
+ class LocationBeaconAdmin < IntrospectiveAdmin::Base
2
+ register LocationBeacon do
3
+ scope :all
4
+ scope :low_battery
5
+ end
6
+ end
@@ -13,4 +13,7 @@ class LocationBeacon < AbstractAdapter
13
13
  self.mac_address = (mac_address||'').gsub(/[^0-9a-fA-F]+/,'').upcase
14
14
  end
15
15
 
16
+ scope :low_battery, -> { where("last_known_battery_level < 20") }
17
+
18
+
16
19
  end
@@ -7,6 +7,7 @@ class CreateLocationBeacons < ActiveRecord::Migration
7
7
  t.string :uuid, null: false, limit: 32
8
8
  t.integer :major, null: false
9
9
  t.integer :minor, null: false
10
+ t.integer :last_known_battery_level
10
11
 
11
12
  t.timestamps null: false
12
13
  end
@@ -117,6 +117,7 @@ ActiveRecord::Schema.define(version: 20150909225019) do
117
117
  t.string "uuid", limit: 32, null: false
118
118
  t.integer "major", null: false
119
119
  t.integer "minor", null: false
120
+ t.integer "last_known_battery_level"
120
121
  t.datetime "created_at", null: false
121
122
  t.datetime "updated_at", null: false
122
123
  end
@@ -52,8 +52,8 @@ Location.blueprint {
52
52
  gps { LocationGps.new(lat: 37.615223, lng: -122.389977 ) }
53
53
  }
54
54
  LocationBeacon.blueprint {
55
- location { Location.make }
56
- company { Company.make }
55
+ location { Location.make! }
56
+ company { Company.make! }
57
57
  mac_address { SecureRandom.hex(6) }
58
58
  # e.g. 2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6
59
59
  uuid { SecureRandom.hex(4)+'-'+SecureRandom.hex(2)+'-'+SecureRandom.hex(2)+'-'+SecureRandom.hex(2)+'-'+SecureRandom.hex(6) }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: introspective_admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Buermann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-15 00:00:00.000000000 Z
11
+ date: 2016-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sass-rails
@@ -146,6 +146,7 @@ files:
146
146
  - spec/admin/company_admin_spec.rb
147
147
  - spec/admin/job_admin_spec.rb
148
148
  - spec/admin/location_admin_spec.rb
149
+ - spec/admin/location_beacon_admin_spec.rb
149
150
  - spec/admin/project__admin_spec.rb
150
151
  - spec/admin/user_admin_spec.rb
151
152
  - spec/dummy/README.rdoc
@@ -153,6 +154,7 @@ files:
153
154
  - spec/dummy/app/admin/company_admin.rb
154
155
  - spec/dummy/app/admin/job_admin.rb
155
156
  - spec/dummy/app/admin/location_admin.rb
157
+ - spec/dummy/app/admin/location_beacon_admin.rb
156
158
  - spec/dummy/app/admin/project_admin.rb
157
159
  - spec/dummy/app/admin/role_admin.rb
158
160
  - spec/dummy/app/admin/user_admin.rb
@@ -272,6 +274,7 @@ test_files:
272
274
  - spec/admin/company_admin_spec.rb
273
275
  - spec/admin/job_admin_spec.rb
274
276
  - spec/admin/location_admin_spec.rb
277
+ - spec/admin/location_beacon_admin_spec.rb
275
278
  - spec/admin/project__admin_spec.rb
276
279
  - spec/admin/user_admin_spec.rb
277
280
  - spec/dummy/README.rdoc
@@ -279,6 +282,7 @@ test_files:
279
282
  - spec/dummy/app/admin/company_admin.rb
280
283
  - spec/dummy/app/admin/job_admin.rb
281
284
  - spec/dummy/app/admin/location_admin.rb
285
+ - spec/dummy/app/admin/location_beacon_admin.rb
282
286
  - spec/dummy/app/admin/project_admin.rb
283
287
  - spec/dummy/app/admin/role_admin.rb
284
288
  - spec/dummy/app/admin/user_admin.rb