admin_data 1.1.9 → 1.1.10

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.
@@ -10,7 +10,7 @@ module AdminData
10
10
 
11
11
  before_filter :build_klasses, :build_drop_down_for_klasses, :check_page_parameter, :prepare_drop_down_klasses
12
12
 
13
- attr_reader :klass, :model
13
+ attr_reader :klass
14
14
 
15
15
  protected
16
16
 
@@ -56,13 +56,6 @@ module AdminData
56
56
  end
57
57
  end
58
58
 
59
- def _build_custom_klasses
60
- _build_all_klasses.compact.select do |klass_local|
61
- @klass = klass_local
62
- is_allowed_to_view_klass?
63
- end
64
- end
65
-
66
59
  def remove_klasses_without_table(klasses)
67
60
  klasses.select { |k| k.ancestors.include?(ActiveRecord::Base) && k.connection.table_exists?(k.table_name) }
68
61
  end
@@ -82,8 +82,8 @@ module AdminData
82
82
  condition = {primary_key => conditional_id}
83
83
 
84
84
  _proc = AdminData.config.find_conditions[@klass.name]
85
- if _proc && find_conditions = _proc.call(params)
86
- condition = find_conditions.fetch(:conditions) if find_conditions.has_key?(:conditions)
85
+ if _proc && (find_conditions = _proc.call(params)) && find_conditions.has_key?(:conditions)
86
+ condition = find_conditions.fetch(:conditions)
87
87
  end
88
88
 
89
89
  unless @model = @klass.find(:first, :conditions => condition)
@@ -2,6 +2,8 @@ module AdminData
2
2
 
3
3
  class FeedController < ApplicationController
4
4
 
5
+ before_filter :ensure_is_allowed_to_view_feed
6
+
5
7
  def index
6
8
  if params[:klasss].blank?
7
9
  render :text => "Usage: http://localhost:3000/admin_data/feed/user replace user with your model name"
@@ -8,20 +8,18 @@ module AdminData
8
8
  render :nothing => true, :status => 404 and return
9
9
  end
10
10
 
11
- opts = {:text => File.read(path), :cache => true}
12
-
13
11
  case params[:file]
14
12
  when /\.css$/i
15
- opts[:content_type] = "text/css"
13
+ content_type = "text/css"
16
14
  when /\.js$/i
17
- opts[:content_type] = "text/javascript"
15
+ content_type = "text/javascript"
18
16
  when /\.png$/i
19
- opts[:content_type] = "image/png"
17
+ content_type = "image/png"
20
18
  else
21
19
  render :nothing => true, :status => 404 and return
22
20
  end
23
21
 
24
- render opts
22
+ render({:text => File.read(path), :cache => true, :content_type => content_type})
25
23
  end
26
24
 
27
25
  end
@@ -75,7 +75,9 @@ module AdminData
75
75
  render :text => "#{params[:base]} is an invalid value", :status => :not_found
76
76
  return
77
77
  end
78
- if ActiveRecordUtil.declared_has_many_association_names(model_klass).include?(params[:children]) || ActiveRecordUtil.declared_habtm_association_names(model_klass).include?(params[:children])
78
+
79
+ ar_util = ActiveRecordUtil.new(model_klass)
80
+ if ar_util.declared_has_many_association_names.include?(params[:children]) || ar_util.declared_habtm_association_names.include?(params[:children])
79
81
  #proceed
80
82
  else
81
83
  render :text => "#{params[:children]} is not a valid has_many association", :status => :not_found
@@ -62,7 +62,7 @@ module AdminData
62
62
  end
63
63
 
64
64
  def has_one(model, klass)
65
- tmp = AdminData::ActiveRecordUtil.declared_has_one_association_names(klass)
65
+ tmp = AdminData::ActiveRecordUtil.new(klass).declared_has_one_association_names
66
66
  tmp.inject('') do |output, ho|
67
67
  begin
68
68
  label = ho
@@ -79,13 +79,13 @@ module AdminData
79
79
  end
80
80
 
81
81
  def has_many_data(model, klass)
82
- array = AdminData::ActiveRecordUtil.declared_has_many_association_names(klass).map do |m|
82
+ array = AdminData::ActiveRecordUtil.new(klass).declared_has_many_association_names.map do |m|
83
83
  begin
84
84
  count = model.send(m.intern).count
85
85
  label = m.to_s + '(' + count.to_s + ')'
86
86
  output = label
87
87
  if count > 0
88
- has_many_klass_name = AdminData::ActiveRecordUtil.klass_for_association_type_and_name(model.class, :has_many, m).name.underscore
88
+ has_many_klass_name = AdminData::ActiveRecordUtil.new(model.class).klass_for_association_type_and_name(:has_many, m).name.underscore
89
89
  output = link_to(label, admin_data_search_path( :klass => has_many_klass_name,
90
90
  :children => m,
91
91
  :base => klass.name.underscore,
@@ -100,7 +100,7 @@ module AdminData
100
100
  end
101
101
 
102
102
  def belongs_to_data(model, klass)
103
- AdminData::ActiveRecordUtil.declared_belongs_to_association_names(klass).map do |assoc_name|
103
+ AdminData::ActiveRecordUtil.new(klass).declared_belongs_to_association_names.map do |assoc_name|
104
104
  begin
105
105
  output = assoc_name
106
106
  if belongs_to_record = model.send(assoc_name)
@@ -114,14 +114,14 @@ module AdminData
114
114
  end
115
115
 
116
116
  def habtm_data(model, klass)
117
- AdminData::ActiveRecordUtil.declared_habtm_association_names(klass).map do |assoc_name|
117
+ AdminData::ActiveRecordUtil.new(klass).declared_habtm_association_names.map do |assoc_name|
118
118
  begin
119
119
  count = model.send(assoc_name.intern).count
120
120
  label = assoc_name + '(' + count.to_s + ')'
121
121
  output = label
122
122
 
123
123
  if count > 0 then
124
- has_many_klass_name = AdminData::ActiveRecordUtil.klass_for_association_type_and_name(model.class, :has_and_belongs_to_many, assoc_name).name.underscore
124
+ has_many_klass_name = AdminData::ActiveRecordUtil.new(model.class).klass_for_association_type_and_name(:has_and_belongs_to_many, assoc_name).name.underscore
125
125
  output = link_to(label, admin_data_search_path( :klass => has_many_klass_name,
126
126
  :children => assoc_name,
127
127
  :base => klass.name.underscore,
@@ -148,7 +148,7 @@ module AdminData
148
148
 
149
149
  if col.primary
150
150
  html << model.new_record? ? '(auto)' : model.id
151
- elsif get_reflection_for_column(klass, col) && AdminData.config.display_assoc?( klass.name )
151
+ elsif get_reflection_for_column(klass, col) && AdminData.config.display_assoc?( klass.name )
152
152
  form_field_for_association_records(klass, col, f, html)
153
153
  else
154
154
  handle_column_type(col, html, model, column_value, f)
@@ -180,7 +180,7 @@ module AdminData
180
180
  def form_field_for_habtm_records(klass, model, f, html)
181
181
  begin
182
182
  html = []
183
- AdminData::ActiveRecordUtil.delcared_habtm_association_names(klass).each do |k|
183
+ AdminData::ActiveRecordUtil.new(klass).delcared_habtm_association_names.each do |k|
184
184
  assoc_klass = AdminData::Util.get_class_name_for_habtm_association(model, k)
185
185
 
186
186
  html << "<div class='col_box'>"
@@ -1,7 +1,7 @@
1
1
  <div class="block rounded">
2
2
  <h3>Association Information</h3>
3
3
  <div class='content association_info'>
4
- <% if AdminData::ActiveRecordUtil.has_association_info?(klass) %>
4
+ <% if AdminData::ActiveRecordUtil.new(klass).has_association_info? %>
5
5
  <%= render 'admin_data/crud/association/belongs_to_info' , :klass => klass, :model => model %>
6
6
  <%= render 'admin_data/crud/association/has_one_info', :klass => klass, :model => model %>
7
7
  <%= render 'admin_data/crud/association/has_many_info' , :klass => klass, :model => model %>
@@ -1,4 +1,4 @@
1
- <% if AdminData::ActiveRecordUtil.declared_belongs_to_association_names(klass).any? %>
1
+ <% if AdminData::ActiveRecordUtil.new(klass).declared_belongs_to_association_names.any? %>
2
2
  <p class='belongs_to'>
3
3
  <strong>belongs_to :</strong>
4
4
  &nbsp;
@@ -1,4 +1,4 @@
1
- <% if AdminData::ActiveRecordUtil.declared_habtm_association_names(klass).any? %>
1
+ <% if AdminData::ActiveRecordUtil.new(klass).declared_habtm_association_names.any? %>
2
2
  <p>
3
3
  <strong>has_and_belongs_to_many :</strong>
4
4
  <%= habtm_data(model, klass).html_safe %>
@@ -1,4 +1,4 @@
1
- <% if AdminData::ActiveRecordUtil.declared_has_many_association_names(klass).any? %>
1
+ <% if AdminData::ActiveRecordUtil.new(klass).declared_has_many_association_names.any? %>
2
2
  <p>
3
3
  <strong>has_many :</strong>
4
4
  <%= has_many_data(model, klass).html_safe %>
@@ -1,4 +1,4 @@
1
- <% if AdminData::ActiveRecordUtil.declared_has_one_association_names(klass).any? %>
1
+ <% if AdminData::ActiveRecordUtil.new(klass).declared_has_one_association_names.any? %>
2
2
  <p>
3
3
  <strong>has_one :</strong>
4
4
  <%= has_one(model, klass).html_safe %>
@@ -8,7 +8,7 @@
8
8
  </div>
9
9
  <% end %>
10
10
 
11
- <% if AdminData::ActiveRecordUtil.declared_habtm_association_names(klass).any? %>
11
+ <% if AdminData::ActiveRecordUtil.new(klass).declared_habtm_association_names.any? %>
12
12
  <div class='data'>
13
13
  <%= form_field_for_habtm_records(klass, @model, f, '').html_safe %>
14
14
  </div>
data/config/routes.rb CHANGED
@@ -1,9 +1,5 @@
1
1
  Rails.application.routes.draw do
2
2
 
3
- namespace(:admin_data) do
4
- match '/feed/:klasss' => "feed#index", :defaults => { :format =>'rss' }, :as => :feed
5
- end
6
-
7
3
  namespace(:admin_data) do
8
4
  scope :admin_data do
9
5
  controller "crud" do
@@ -23,8 +19,13 @@ Rails.application.routes.draw do
23
19
  end
24
20
 
25
21
  match '/table_structure/:klass' => "table_structure#index", :as => :table_structure
22
+
26
23
  match '/quick_search/:klass' => "search#quick_search", :as => :search
24
+
27
25
  match '/advance_search/:klass' => "search#advance_search", :as => :advance_search
26
+
27
+ match '/feed/:klasss' => "feed#index", :defaults => { :format =>'rss' }, :as => :feed
28
+
28
29
  match '/public/*file' => "public#serve"
29
30
 
30
31
  root :to => "home#index"
@@ -1,54 +1,50 @@
1
1
  module AdminData
2
2
  class ActiveRecordUtil
3
3
 
4
+ attr_accessor :klass
5
+
6
+ def initialize(klass)
7
+ @klass = klass
8
+ end
9
+
4
10
  # class User
5
11
  # has_and_belongs_to_many :clubs
6
12
  # end
7
13
  #
8
- # User.declared_habtm_association_names(Club)
14
+ # ActiveRecordUtil.new(User).declared_habtm_association_names
9
15
  # #=> ['clubs']
10
- def self.declared_habtm_association_names(klass)
11
- delcared_association_names_for(klass, :has_and_belongs_to_many).map(&:name).map(&:to_s)
16
+ def declared_habtm_association_names
17
+ delcared_association_names_for(:has_and_belongs_to_many).map(&:name).map(&:to_s)
12
18
  end
13
19
 
14
20
  # class User
15
21
  # belongs_to :club
16
22
  # end
17
23
  #
18
- # User.declared_belongs_to_association_names(Club)
24
+ # ActiveRecordUtil.new(User).declared_belongs_to_association_names
19
25
  # #=> ['club']
20
- def self.declared_belongs_to_association_names(klass)
21
- delcared_association_names_for(klass, :belongs_to).map(&:name).map(&:to_s)
26
+ def declared_belongs_to_association_names
27
+ delcared_association_names_for(:belongs_to).map(&:name).map(&:to_s)
22
28
  end
23
29
 
24
30
  # class User
25
31
  # has_one :car
26
32
  # end
27
33
  #
28
- # User.declared_has_one_association_names(Car)
34
+ # ActiveRecordUtil.new(User).declared_has_one_association_names
29
35
  # #=> ['car']
30
- def self.declared_has_one_association_names(klass)
31
- delcared_association_names_for(klass, :has_one).map(&:name).map(&:to_s)
36
+ def declared_has_one_association_names
37
+ delcared_association_names_for(:has_one).map(&:name).map(&:to_s)
32
38
  end
33
39
 
34
40
  # class User
35
41
  # has_many :cars
36
42
  # end
37
43
  #
38
- # User.declared_has_many_association_names(Car)
44
+ # ActiveRecordUtil.new(User).declared_has_many_association_names
39
45
  # #=> ['cars']
40
- def self.declared_has_many_association_names(klass)
41
- delcared_association_names_for(klass, :has_many).map(&:name).map(&:to_s)
42
- end
43
-
44
- # returns declared association names like
45
- # #=> ['comments']
46
- # #=> ['positive_comments']
47
- # #=> ['negative_comments']
48
- def self.delcared_association_names_for(klass, association_type)
49
- klass.name.camelize.constantize.reflections.values.select do |value|
50
- value.macro == association_type
51
- end
46
+ def declared_has_many_association_names
47
+ delcared_association_names_for(:has_many).map(&:name).map(&:to_s)
52
48
  end
53
49
 
54
50
  # returns an array of classes
@@ -57,11 +53,11 @@ module AdminData
57
53
  # has_and_belongs_to_many :clubs
58
54
  # end
59
55
  #
60
- # ActiveRecordUtil.habtm_klasses_for(User)
56
+ # ActiveRecordUtil.new(User).habtm_klasses_for
61
57
  # #=> [Club]
62
- def self.habtm_klasses_for(klass)
63
- declared_habtm_association_names(klass).map do |assoc_name|
64
- klass_for_association_type_and_name(klass, :has_and_belongs_to_many, assoc_name)
58
+ def habtm_klasses_for
59
+ declared_habtm_association_names.map do |assoc_name|
60
+ klass_for_association_type_and_name(:has_and_belongs_to_many, assoc_name)
65
61
  end
66
62
  end
67
63
 
@@ -71,23 +67,35 @@ module AdminData
71
67
  # has_many :comments
72
68
  # end
73
69
  #
74
- # ActiveRecordUtil.klass_for_association_type_and_name(User, :has_many, 'comments') #=> Comment
70
+ # ActiveRecordUtil.new(User).klass_for_association_type_and_name(:has_many, 'comments')
71
+ # #=> Comment
75
72
  #
76
- def self.klass_for_association_type_and_name(klass, association_type, association_name)
73
+ def klass_for_association_type_and_name(association_type, association_name)
77
74
  data = klass.name.camelize.constantize.reflections.values.detect do |value|
78
75
  value.macro == association_type && value.name.to_s == association_name
79
76
  end
80
77
  data.klass if data # output of detect from hash is an array with key and value
81
78
  end
82
- # TODO test with polymorphic
83
-
84
79
 
85
80
  # returns false if the given Klass has no association info. Otherwise returns true.
86
- def self.has_association_info?(k)
87
- AdminData::ActiveRecordUtil.declared_belongs_to_association_names(k).any? ||
88
- AdminData::ActiveRecordUtil.declared_has_many_association_names(k).any? ||
89
- AdminData::ActiveRecordUtil.declared_has_many_association_names(k).any? ||
90
- AdminData::ActiveRecordUtil.declared_habtm_association_names(k).any?
81
+ def has_association_info?
82
+ declared_belongs_to_association_names.any? ||
83
+ declared_has_many_association_names.any? ||
84
+ declared_has_many_association_names.any? ||
85
+ declared_habtm_association_names.any?
86
+ end
87
+
88
+ private
89
+
90
+ # returns declared association names like
91
+ #
92
+ # #=> ['comments']
93
+ # #=> ['positive_comments']
94
+ # #=> ['negative_comments']
95
+ def delcared_association_names_for(association_type)
96
+ klass.name.camelize.constantize.reflections.values.select do |value|
97
+ value.macro == association_type
98
+ end
91
99
  end
92
100
 
93
101
  end
@@ -8,7 +8,7 @@ module AdminData
8
8
  end
9
9
 
10
10
  def verify(controller)
11
- controller.authenticate_or_request_with_http_basic { |_userid, _password| (_userid == @userid) && (_password == @password) }
11
+ controller.authenticate_or_request_with_http_basic { |_u, _p| (_u == @userid) && (_p == @password) }
12
12
  end
13
13
 
14
14
  end
@@ -1,3 +1,3 @@
1
1
  module AdminData
2
- VERSION = '1.1.9'
2
+ VERSION = '1.1.10'
3
3
  end
@@ -1,8 +1,24 @@
1
- AdminData::Authenticator.extend(
2
- Module.new{
3
- def verify(controller)
4
- #TODO use rspec double code here. This is a very bad hack
1
+ def mock_authenticator_with_authentication_returning_true
2
+ #TODO use rspec double code here. This is a very bad hack
3
+ AdminData::Authenticator.class_eval do
4
+ def verify(*args)
5
5
  true
6
6
  end
7
- }
8
- )
7
+ end
8
+ end
9
+
10
+ def mock_authenticator_with_authentication_returning_false
11
+ AdminData::Authenticator.class_eval do
12
+ def verify(*args)
13
+ false
14
+ end
15
+ end
16
+ end
17
+
18
+ When /^mocked feed authentication returns true$/ do
19
+ mock_authenticator_with_authentication_returning_true
20
+ end
21
+
22
+ When /^mocked feed authentication returns false$/ do
23
+ mock_authenticator_with_authentication_returning_false
24
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: admin_data
3
3
  version: !ruby/object:Gem::Version
4
- hash: 1
4
+ hash: 7
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 1
9
- - 9
10
- version: 1.1.9
9
+ - 10
10
+ version: 1.1.10
11
11
  platform: ruby
12
12
  authors:
13
13
  - Neeraj Singh
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-12-22 00:00:00 -05:00
18
+ date: 2010-12-23 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency