table_me 0.0.2 → 0.0.3

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.
@@ -9,6 +9,10 @@ module TableMe
9
9
 
10
10
  @@filters = {}
11
11
 
12
+ def self.init
13
+ @@filters = {}
14
+ end
15
+
12
16
  def initialize options, column_name
13
17
  self.options = options
14
18
  self.column_name = column_name
@@ -58,8 +58,9 @@ require_relative '../table_for_presenter'
58
58
 
59
59
  module TableMe
60
60
  module TableForHelper
61
- def table_for(model,options = {}, &block)
62
- table_for_presenter = TableForPresenter.new(model,options,&block)
61
+ def table_for(model, options = {}, &block)
62
+
63
+ table_for_presenter = TableForPresenter.new(model, @table_me[model],options,&block)
63
64
  table_for_presenter.build_table
64
65
  end
65
66
 
@@ -71,15 +71,17 @@ module TableMe
71
71
  attr_accessor :name, :options
72
72
  attr_reader :data
73
73
 
74
- def initialize table_name, options = {}, &block
75
- # self.parent = parent
76
- self.options = options
74
+ def initialize table_name, table_me_presenter, options = {}, &block
75
+ @table_me_presenter = table_me_presenter
76
+
77
+ self.options = ActiveSupport::HashWithIndifferentAccess.new(options.merge(@table_me_presenter.options))
77
78
  self.name = table_name
78
79
  @block = block
79
80
 
80
81
  # required to get capture to work with haml
81
82
  init_haml_helpers if defined?(Haml)
82
83
 
84
+ setup_classes
83
85
  process_data_attributes
84
86
  end
85
87
 
@@ -110,20 +112,25 @@ module TableMe
110
112
  # of the class variables in the controller and view, but there has to be a better way to do it.
111
113
  # TODO decouple this and options below
112
114
  def data
113
- TableMePresenter.data[name.to_s]
115
+ @table_me_presenter.data
114
116
  end
115
117
 
116
118
 
117
119
  # same as data above, only with table options. Ideally this needs to be a value object instead
118
120
  # of just a hash. TODO use a value object instead of a hash, see table_vo.rb
119
- def options
120
- TableMePresenter.options[name.to_s]
121
- end
121
+ # def options
122
+ # @table_me_presenter.options
123
+ # end
122
124
 
123
125
 
124
126
  private
125
127
 
126
128
 
129
+ def setup_classes
130
+ # clear the filter saved to class
131
+ TableMe::Filter.init
132
+ end
133
+
127
134
  # create table filters if they exist
128
135
  def table_filters
129
136
  <<-HTML if table_builder.filters
@@ -22,6 +22,9 @@ module TableMe
22
22
  module TableMeHelper
23
23
  def table_me(model, options = {})
24
24
  table_presenter = TableMePresenter.new(model, options,params)
25
+ @table_me ||= {}
26
+ @table_me[table_presenter.name] = table_presenter
27
+
25
28
  table_presenter.name
26
29
  end
27
30
  end
@@ -19,29 +19,26 @@ module TableMe
19
19
  attr_accessor :params, :name
20
20
  attr_reader :data, :options
21
21
 
22
- class << self
23
- def data
24
- @@data
25
- end
26
-
27
- def options
28
- @@options
29
- end
30
- end
31
-
32
- @@data = {}
33
- @@options = {}
22
+ # class << self
23
+ # # These class variables may need to be cleared and data handled differently
24
+ # def data
25
+ # @@data
26
+ # end
27
+
28
+ # def options
29
+ # @@options
30
+ # end
31
+ # end
32
+
33
+ # @@data = {}
34
+ # @@options = {}
34
35
 
35
36
  def initialize model, options = {}, params = {}
36
- # this was more of a patch for the code. I need to go back through and normalize all
37
- # the hash access so a normal has can be used with confidence
38
- # TODO normalize hash access to strings or symbols
39
37
  @options = ActiveSupport::HashWithIndifferentAccess.new(options)
40
38
 
41
39
  set_defaults_for model
42
40
  parse_params_for params
43
41
  get_data_for model
44
- @@options[self.name] = @options
45
42
  end
46
43
 
47
44
  # parse the params into an options hash that we can use
@@ -62,9 +59,7 @@ module TableMe
62
59
  def get_data_for model
63
60
  model = apply_search_to(model)
64
61
 
65
- @@data[self.name] = @data = model.limit(options[:per_page])
66
- .offset(start_item)
67
- .order(options[:order])
62
+ @data = model.limit(options[:per_page]).offset(start_item).order(options[:order])
68
63
 
69
64
  options[:total_count] = model.count
70
65
  options[:page_total] = (options[:total_count] / options[:per_page].to_f).ceil
@@ -1,3 +1,3 @@
1
1
  module TableMe
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: table_me
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-03-28 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70146233853140 !ruby/object:Gem::Requirement
16
+ requirement: &70190781557660 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.1.3
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70146233853140
24
+ version_requirements: *70190781557660
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: jquery-rails
27
- requirement: &70146233852700 !ruby/object:Gem::Requirement
27
+ requirement: &70190781549020 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70146233852700
35
+ version_requirements: *70190781549020
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: sqlite3
38
- requirement: &70146233852220 !ruby/object:Gem::Requirement
38
+ requirement: &70190781548180 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70146233852220
46
+ version_requirements: *70190781548180
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec-rails
49
- requirement: &70146233851800 !ruby/object:Gem::Requirement
49
+ requirement: &70190781547760 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70146233851800
57
+ version_requirements: *70190781547760
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: capybara
60
- requirement: &70146233851360 !ruby/object:Gem::Requirement
60
+ requirement: &70190781547340 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70146233851360
68
+ version_requirements: *70190781547340
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: factory_girl_rails
71
- requirement: &70146233850900 !ruby/object:Gem::Requirement
71
+ requirement: &70190781546860 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70146233850900
79
+ version_requirements: *70190781546860
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: pry
82
- requirement: &70146233850480 !ruby/object:Gem::Requirement
82
+ requirement: &70190781546420 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,7 +87,7 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70146233850480
90
+ version_requirements: *70190781546420
91
91
  description: Widget table gem for Rails 3.1.3+
92
92
  email:
93
93
  - adamrensel@gmail.com