introspective_admin 0.0.3 → 0.0.4

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