volt-table 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +18 -0
  3. data/.rspec +2 -0
  4. data/CODE_OF_CONDUCT.md +13 -0
  5. data/Gemfile +8 -0
  6. data/Guardfile +24 -0
  7. data/LICENSE.txt +22 -0
  8. data/README.md +134 -0
  9. data/Rakefile +1 -0
  10. data/app/table/assets/css/font-awesome.min.css +4 -0
  11. data/app/table/assets/css/main.scss +66 -0
  12. data/app/table/assets/fonts/FontAwesome.otf +0 -0
  13. data/app/table/assets/fonts/fontawesome-webfont.eot +0 -0
  14. data/app/table/assets/fonts/fontawesome-webfont.svg +655 -0
  15. data/app/table/assets/fonts/fontawesome-webfont.ttf +0 -0
  16. data/app/table/assets/fonts/fontawesome-webfont.woff +0 -0
  17. data/app/table/assets/fonts/fontawesome-webfont.woff2 +0 -0
  18. data/app/table/config/dependencies.rb +1 -0
  19. data/app/table/config/initializers/boot.rb +10 -0
  20. data/app/table/config/routes.rb +1 -0
  21. data/app/table/controllers/columns_controller.rb +101 -0
  22. data/app/table/controllers/footers_controller.rb +19 -0
  23. data/app/table/controllers/headers_controller.rb +98 -0
  24. data/app/table/controllers/main_controller.rb +135 -0
  25. data/app/table/tasks/count_task.rb +15 -0
  26. data/app/table/views/columns/column_head.html +4 -0
  27. data/app/table/views/columns/filter_head.html +36 -0
  28. data/app/table/views/columns/index.html +17 -0
  29. data/app/table/views/footers/index.html +14 -0
  30. data/app/table/views/headers/index.html +62 -0
  31. data/app/table/views/headers/modal.html +34 -0
  32. data/app/table/views/main/body.html +26 -0
  33. data/app/table/views/main/footers.html +1 -0
  34. data/app/table/views/main/index.html +7 -0
  35. data/app/table/views/wrapper/index.html +10 -0
  36. data/lib/volt/table.rb +18 -0
  37. data/lib/volt/table/version.rb +5 -0
  38. data/spec/dummy/.gitignore +9 -0
  39. data/spec/dummy/README.md +4 -0
  40. data/spec/dummy/app/main/assets/css/app.css.scss +1 -0
  41. data/spec/dummy/app/main/config/dependencies.rb +13 -0
  42. data/spec/dummy/app/main/config/initializers/boot.rb +10 -0
  43. data/spec/dummy/app/main/config/routes.rb +14 -0
  44. data/spec/dummy/app/main/controllers/main_controller.rb +67 -0
  45. data/spec/dummy/app/main/lib/seed_db.rb +32 -0
  46. data/spec/dummy/app/main/models/user.rb +15 -0
  47. data/spec/dummy/app/main/views/main/about.html +16 -0
  48. data/spec/dummy/app/main/views/main/index.html +25 -0
  49. data/spec/dummy/app/main/views/main/main.html +29 -0
  50. data/spec/dummy/config.ru +4 -0
  51. data/spec/dummy/config/app.rb +137 -0
  52. data/spec/dummy/config/base/index.html +15 -0
  53. data/spec/dummy/config/initializers/boot.rb +4 -0
  54. data/spec/factories.rb +31 -0
  55. data/spec/integration/table_integration_spec.rb +171 -0
  56. data/spec/spec_helper.rb +19 -0
  57. data/volt-table.gemspec +46 -0
  58. metadata +399 -0
@@ -0,0 +1,4 @@
1
+ # Run via rack server
2
+ require 'bundler/setup'
3
+ require 'volt/server'
4
+ run Volt::Server.new.app
@@ -0,0 +1,137 @@
1
+ # app.rb is used to configure your app. This code is only run on the server,
2
+ # then any config options in config.public are passed to the client as well.
3
+
4
+ Volt.configure do |config|
5
+ # Setup your global app config here.
6
+
7
+ #######################################
8
+ # Basic App Info (stuff you should set)
9
+ #######################################
10
+ config.domain = 'dummy.com'
11
+ config.app_name = 'Dummy'
12
+ config.mailer.from = 'Dummy <no-reply@dummy.com>'
13
+
14
+ ############
15
+ # App Secret
16
+ ############
17
+ # Your app secret is used for signing things like the user cookie so it can't
18
+ # be tampered with. A random value is generated on new projects that will work
19
+ # without the need to customize. Make sure this value doesn't leave your server.
20
+ #
21
+ # For added security we recommend moving the app secret into an environment. You can
22
+ # setup that like so:
23
+ #
24
+ # config.app_secret = ENV['APP_SECRET']
25
+ #
26
+ config.app_secret = 'Xpl5_89YCV8CfeRI_SDLUdWIBzpb6Q3z_KWyrb9ZnysXpiZfcLzpnFpmbmpXi0fmrpk'
27
+
28
+ ###############
29
+ # Log Filtering
30
+ ###############
31
+ # Data updates from the client come in via Tasks. The task dispatcher logs all calls to tasks.
32
+ # By default hashes in the arguments can be filtered based on keys. So any hash with a key of
33
+ # password will be filtered. You can add more fields to filter below:
34
+ config.filter_keys = [:password]
35
+
36
+ ##########
37
+ # Database
38
+ ##########
39
+ # Database config all start with db_ and can be set either in the config
40
+ # file or with an environment variable (DB_NAME for example).
41
+
42
+ # config.db_driver = 'mongo'
43
+ # config.db_name = (config.app_name + '_' + Volt.env.to_s)
44
+ # config.db_host = 'localhost'
45
+ # config.db_port = 27017
46
+
47
+ #####################
48
+ # Compression options
49
+ #####################
50
+ # If you are not running behind something like nginx in production, you can
51
+ # have rack deflate all files.
52
+ # config.deflate = true
53
+
54
+ #######################
55
+ # Public configurations
56
+ #######################
57
+ # Anything under config.public will be sent to the client as well as the server,
58
+ # so be sure no private data ends up under public
59
+
60
+ # Use username instead of email as the login
61
+ # config.public.auth.use_username = true
62
+
63
+ #####################
64
+ # Compression Options
65
+ #####################
66
+ # Disable or enable css/js/image compression. Default is to only run in production.
67
+ # if Volt.env.production?
68
+ # config.compress_javascript = true
69
+ # config.compress_css = true
70
+ # config.compress_images = true
71
+ # end
72
+
73
+ ################
74
+ # Mailer options
75
+ ################
76
+ # The volt-mailer gem uses pony (https://github.com/benprew/pony) to deliver e-mail. Any
77
+ # options you would pass to pony can be setup below.
78
+ # NOTE: The from address is setup at the top
79
+
80
+ # Normally pony uses /usr/sbin/sendmail if one is installed. You can specify smtp below:
81
+ # config.mailer.via = :smtp
82
+ # config.mailer.via_options = {
83
+ # :address => 'smtp.yourserver.com',
84
+ # :port => '25',
85
+ # :user_name => 'user',
86
+ # :password => 'password',
87
+ # :authentication => :plain, # :plain, :login, :cram_md5, no auth by default
88
+ # :domain => "localhost.localdomain" # the HELO domain provided by the client to the server
89
+ # }
90
+
91
+ #############
92
+ # Message Bus
93
+ #############
94
+ # Volt provides a "Message Bus" out of the box. The message bus provides
95
+ # a pub/sub service between any volt instance (server, client, runner, etc..)
96
+ # that share the same database. The message bus can be used by app code. It
97
+ # is also used internally to push data to any listening clients.
98
+ #
99
+ # The default message bus (called "peer_to_peer") uses the database to sync
100
+ # socket ip's/ports.
101
+ # config.message_bus.bus_name = 'peer_to_peer'
102
+ #
103
+ # Encrypt message bus - messages on the message bus are encrypted by default
104
+ # using rbnacl.
105
+
106
+ #
107
+ # For dummy apps, we disable_encryption, to simplify the gem requirements.
108
+ config.message_bus.disable_encryption = true
109
+
110
+ #
111
+ # ## MessageBus Server -- the message bus binds to a port and ip which the
112
+ # other volt instances need to be able to connect to. You can customize
113
+ # the server below:
114
+ #
115
+ # Port range - you can specify a range of ports that an instance can bind the
116
+ # message bus on. You can specify a range, an array of Integers, or an array
117
+ # of ranges.
118
+ # config.message_bus.bind_port_ranges = (58000..61000)
119
+ #
120
+ # Bind Ip - specifies the ip address the message bus server should bind on.
121
+ # config.message_bus.bind_ip = '127.0.0.1'
122
+
123
+ #############
124
+ # Concurrency
125
+ #############
126
+ # Volt provides a thread worker pool for incoming task requests (and all
127
+ # database requests, since those use tasks to do their work.) The following
128
+ # lets you control the size of the worker pool. Threads are only created as
129
+ # needed, and are removed after a certain amount of inactivity.
130
+ # config.min_worker_threads = 1
131
+ # config.max_worker_threads = 10
132
+ #
133
+ # You can also specify the amount of time a Task should run for before it
134
+ # timeout's. Setting this to short can cause unexpected results, currently
135
+ # we recomend it be at least 10 seconds.
136
+ # config.worker_timeout = 60
137
+ end
@@ -0,0 +1,15 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <%# IMPORTANT: Please read before changing! %>
4
+ <%# This file is rendered on the server using ERB, so it does NOT use Volt's %>
5
+ <%# normal template system. You can add to it, but keep in mind the template %>
6
+ <%# language difference. This file handles auto-loading all JS/Opal and CSS. %>
7
+ <head>
8
+ <meta charset="UTF-8" />
9
+ <%= javascript_tags %>
10
+ <%= css_tags %>
11
+ </head>
12
+ <body>
13
+
14
+ </body>
15
+ </html>
@@ -0,0 +1,4 @@
1
+ # Any ./config/initializers/*.rb files will when the app starts up on the server.
2
+ # To load code on the client (or client and server), you can use the
3
+ # config/initializers folder in a component in the app directory. This folder
4
+ # is only for things that are server only. (Usually for things like config)
@@ -0,0 +1,31 @@
1
+ require 'faker'
2
+
3
+ module Factories
4
+
5
+ def self.user(options = {})
6
+ buffer = Volt.current_app.store.users.buffer
7
+ timestamp = Time.now.to_i.to_s
8
+ first_name = Faker::Name.first_name
9
+ fields = {
10
+ first_name: first_name,
11
+ last_name: Faker::Name.last_name,
12
+ email: Faker::Internet.safe_email("#{first_name}-#{timestamp}"),
13
+ password: 'testing1234',
14
+ }
15
+ build_model(buffer, fields, options)
16
+ end
17
+
18
+ def self.build_model(buffer, fields, options)
19
+ field_keys = fields.keys.push(*options.keys)
20
+ field_keys.delete(:method)
21
+ field_keys.each do |field|
22
+ if options.keys.include?(field)
23
+ buffer.send("#{field}=", options[field])
24
+ else
25
+ buffer.send("#{field}=", fields[field])
26
+ end
27
+ end
28
+ buffer.save! if options[:method] == :save
29
+ buffer
30
+ end
31
+ end
@@ -0,0 +1,171 @@
1
+ require 'spec_helper'
2
+ require 'pry'
3
+
4
+ describe 'Table', type: :feature do
5
+ # Will only be run if ENV['BROWSER'] is specified.
6
+ # Current values for ENV['BROWSER'] are 'firefox' and 'phantom'
7
+ before do
8
+ Factories.user({method: :save, first_name: 'Bob', last_name: 'Smith'})
9
+ Factories.user({method: :save, first_name: 'Lauren', last_name: 'Jones'})
10
+ Factories.user({method: :save, first_name: 'Jerry', last_name: 'Smith'})
11
+ Factories.user({method: :save, first_name: 'Bob', last_name: 'John'})
12
+ Factories.user({method: :save, first_name: 'Mary', last_name: 'Jacobs'})
13
+ end
14
+
15
+ it 'should load the page' do
16
+ visit '/'
17
+ expect(page).to have_content('Home')
18
+ end
19
+
20
+ it 'should have correct content' do
21
+ visit '/'
22
+ expect(page).to have_content('Bob')
23
+ expect(page).to have_content('Lauren')
24
+ expect(page).to have_content('John')
25
+ expect(page).to have_content('Bob')
26
+ expect(page).to have_content('Mary')
27
+ expect(page).to have_content('First Name')
28
+ expect(page).to have_content('Last Name')
29
+ expect(page).to have_content('Email')
30
+ expect(page).to have_content('Showing 1 - 5 of 5')
31
+ expect(page).to have_content('Filtered from a total of 5')
32
+ end
33
+
34
+ describe 'search bar' do
35
+ before do
36
+ visit '/'
37
+ end
38
+
39
+ it 'should show search help' do
40
+ find('.fa-search').click
41
+ expect(page).to have_content('Search Help')
42
+ expect(page).to have_content('first:')
43
+ expect(page).to have_content('last:')
44
+ expect(page).to have_content('email:')
45
+ end
46
+
47
+ it 'should be empty' do
48
+ fields = all(:css, '.form-control')
49
+ expect(fields[0].value).to eq('')
50
+ end
51
+
52
+ it 'should accept OR queries' do
53
+ fields = all(:css, '.form-control')
54
+ fields[0].set('Bob | Jerry')
55
+ # expect correct rows to be shown
56
+ expect(page).to have_content('Bob')
57
+ expect(page).to have_content('Jerry')
58
+ expect(page).not_to have_content('Mary')
59
+ expect(page).not_to have_content('Lauren')
60
+ expect(page).to have_content('Showing 1 - 3 of 3')
61
+ end
62
+
63
+ it 'should accept AND queries' do
64
+ fields = all(:css, '.form-control')
65
+ fields[0].set('Bob, Smith')
66
+ expect(page).to have_content('Bob')
67
+ expect(page).to have_content('Smith')
68
+ expect(page).not_to have_content('Mary')
69
+ expect(page).not_to have_content('Lauren')
70
+ expect(page).not_to have_content('Jerry')
71
+ expect(page).to have_content('Showing 1 - 1 of 1')
72
+ end
73
+
74
+ it 'should accept a field query' do
75
+ fields = all(:css, '.form-control')
76
+ fields[0].set('Lauren, email:Lauren.Jones@sample.com')
77
+ # expect correct rows to be shown
78
+ expect(page).not_to have_content('Jerry')
79
+ expect(page).not_to have_content('Bob')
80
+ expect(page).not_to have_content('Mary')
81
+ expect(page).to have_content('Lauren')
82
+ expect(page).to have_content('Showing 1 - 1 of 1')
83
+ end
84
+ end
85
+
86
+ describe 'headers' do
87
+ before do
88
+ 50.times do
89
+ Factories.user({method: :save})
90
+ end
91
+ visit '/'
92
+ end
93
+
94
+ describe 'per_page' do
95
+ it 'should have correct default values', focus: true do
96
+ expect(page).to have_content('Clear All Filters')
97
+ expect(page).to have_content('Show 10')
98
+ expect(page).to have_content('Showing 1 - 10 of 55')
99
+ click_button('Show 10')
100
+ expect(page).to have_content('10')
101
+ expect(page).to have_content('25')
102
+ expect(page).to have_content('50')
103
+ end
104
+
105
+ it 'should show 25 rows', focus: true do
106
+ click_button('Show 10')
107
+ find("a", :text => "25").click
108
+ expect(page).to have_content('Show 25')
109
+ expect(page).to have_content('Showing 1 - 25 of 55')
110
+ end
111
+
112
+ it 'should show 50 rows', focus: true do
113
+ click_button('Show 10')
114
+ find("a", :text => "50").click
115
+ expect(page).to have_content('Showing 1 - 50 of 55')
116
+ expect(page).to have_content('Show 50')
117
+ end
118
+ end
119
+
120
+ describe 'columns shown' do
121
+ it 'should display the correct columns shown' do
122
+ click_button('fields_shown')
123
+ list = Array.new
124
+ list = find_by_id('fields_shown_list').all('li')
125
+ expect(list.size).to eq(3)
126
+ expect(list[0]).to have_content('First Name')
127
+ expect(list[1]).to have_content('Last Name')
128
+ expect(list[2]).to have_content('Email')
129
+
130
+ end
131
+
132
+ it 'should hide columns when unchecked' do
133
+ click_button('fields_shown')
134
+ uncheck('First Name')
135
+ click_button('fields_shown')
136
+ uncheck('Last Name')
137
+ click_button('fields_shown')
138
+ uncheck('Email')
139
+ expect(page).not_to have_content('First Name')
140
+ expect(page).not_to have_content('Last Name')
141
+ expect(page).not_to have_content('Email')
142
+ end
143
+
144
+ it 'should show columns when checked' do
145
+ click_button('fields_shown')
146
+ uncheck('First Name')
147
+ click_button('fields_shown')
148
+ uncheck('Last Name')
149
+ click_button('fields_shown')
150
+ uncheck('Email')
151
+ click_button('fields_shown')
152
+ check('First Name')
153
+ expect(page).to have_content('First Name')
154
+ click_button('fields_shown')
155
+ check('Last Name')
156
+ expect(page).to have_content('Last Name')
157
+ click_button('fields_shown')
158
+ check('Email')
159
+ expect(page).to have_content('Email')
160
+ end
161
+ end
162
+ end
163
+
164
+ describe 'filtering' do
165
+ it 'should open filter' do
166
+ visit '/about'
167
+ find('.fa-search').click
168
+ end
169
+ end
170
+
171
+ end
@@ -0,0 +1,19 @@
1
+ # Volt sets up rspec and capybara for testing.
2
+ require 'volt/spec/setup'
3
+ require 'factories'
4
+
5
+ # When testing Volt component gems, we boot up a dummy app first to run the
6
+ # test in, so we have access to Volt itself.
7
+ dummy_app_path = File.join(File.dirname(__FILE__), 'dummy')
8
+ Volt.spec_setup(dummy_app_path)
9
+
10
+ RSpec.configure do |config|
11
+ config.run_all_when_everything_filtered = true
12
+ config.filter_run :focus
13
+
14
+ # Run specs in random order to surface order dependencies. If you find an
15
+ # order dependency and want to debug it, you can fix the order by providing
16
+ # the seed, which is printed after each run.
17
+ # --seed 1234
18
+ # config.order = 'random'
19
+ end
@@ -0,0 +1,46 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'volt/table/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "volt-table"
8
+ spec.version = Volt::Table::VERSION
9
+ spec.authors = ["Matt Hale"]
10
+ spec.email = ["matt.hale.0@gmail.com"]
11
+ spec.summary = %q{Provides a searchable, sortable, filterable table component for Volt.}
12
+ spec.description = %q{It's datatables for Volt.}
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "rake"
22
+
23
+ # Testing gems
24
+ spec.add_development_dependency 'rspec', '~> 3.2.0'
25
+ spec.add_development_dependency 'opal-rspec', '~> 0.4.2'
26
+ spec.add_development_dependency 'capybara', '~> 2.4.4'
27
+ spec.add_development_dependency 'selenium-webdriver', '~> 2.53.0'
28
+ spec.add_development_dependency 'chromedriver-helper', '~> 1.0.0'
29
+ spec.add_development_dependency 'poltergeist', '~> 1.6.0'
30
+ spec.add_development_dependency 'volt-browser_irb'
31
+ spec.add_development_dependency 'guard'
32
+ spec.add_development_dependency 'guard-rspec', '~> 4.3.0'
33
+ spec.add_development_dependency 'faker', '~> 1.4'
34
+ spec.add_development_dependency 'timecop'
35
+ spec.add_development_dependency 'ruby-progressbar'
36
+
37
+ # Gems to run the dummy app
38
+ spec.add_development_dependency 'volt', '0.9.6' #git: 'https://github.com/matthew342/volt.git', branch: :volttime_nil_comparison
39
+ spec.add_development_dependency 'volt-mongo', '~> 0.2.0'
40
+ spec.add_development_dependency 'volt-bootstrap', '~> 0.1.0'
41
+ spec.add_development_dependency 'volt-bootstrap_jumbotron_theme', '~> 0.1.0'
42
+ spec.add_development_dependency 'volt-user_templates', '~> 0.4.0'
43
+ spec.add_development_dependency 'thin', '~> 1.6.0'
44
+ spec.add_development_dependency 'volt-pagination'
45
+
46
+ end
metadata ADDED
@@ -0,0 +1,399 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: volt-table
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Matt Hale
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-04-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 3.2.0
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 3.2.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: opal-rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.4.2
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.4.2
55
+ - !ruby/object:Gem::Dependency
56
+ name: capybara
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 2.4.4
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 2.4.4
69
+ - !ruby/object:Gem::Dependency
70
+ name: selenium-webdriver
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 2.53.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 2.53.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: chromedriver-helper
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 1.0.0
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 1.0.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: poltergeist
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 1.6.0
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 1.6.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: volt-browser_irb
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: guard
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: guard-rspec
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 4.3.0
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 4.3.0
153
+ - !ruby/object:Gem::Dependency
154
+ name: faker
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '1.4'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '1.4'
167
+ - !ruby/object:Gem::Dependency
168
+ name: timecop
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: ruby-progressbar
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: volt
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - '='
200
+ - !ruby/object:Gem::Version
201
+ version: 0.9.6
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - '='
207
+ - !ruby/object:Gem::Version
208
+ version: 0.9.6
209
+ - !ruby/object:Gem::Dependency
210
+ name: volt-mongo
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - "~>"
214
+ - !ruby/object:Gem::Version
215
+ version: 0.2.0
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - "~>"
221
+ - !ruby/object:Gem::Version
222
+ version: 0.2.0
223
+ - !ruby/object:Gem::Dependency
224
+ name: volt-bootstrap
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - "~>"
228
+ - !ruby/object:Gem::Version
229
+ version: 0.1.0
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - "~>"
235
+ - !ruby/object:Gem::Version
236
+ version: 0.1.0
237
+ - !ruby/object:Gem::Dependency
238
+ name: volt-bootstrap_jumbotron_theme
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - "~>"
242
+ - !ruby/object:Gem::Version
243
+ version: 0.1.0
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - "~>"
249
+ - !ruby/object:Gem::Version
250
+ version: 0.1.0
251
+ - !ruby/object:Gem::Dependency
252
+ name: volt-user_templates
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - "~>"
256
+ - !ruby/object:Gem::Version
257
+ version: 0.4.0
258
+ type: :development
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - "~>"
263
+ - !ruby/object:Gem::Version
264
+ version: 0.4.0
265
+ - !ruby/object:Gem::Dependency
266
+ name: thin
267
+ requirement: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - "~>"
270
+ - !ruby/object:Gem::Version
271
+ version: 1.6.0
272
+ type: :development
273
+ prerelease: false
274
+ version_requirements: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - "~>"
277
+ - !ruby/object:Gem::Version
278
+ version: 1.6.0
279
+ - !ruby/object:Gem::Dependency
280
+ name: volt-pagination
281
+ requirement: !ruby/object:Gem::Requirement
282
+ requirements:
283
+ - - ">="
284
+ - !ruby/object:Gem::Version
285
+ version: '0'
286
+ type: :development
287
+ prerelease: false
288
+ version_requirements: !ruby/object:Gem::Requirement
289
+ requirements:
290
+ - - ">="
291
+ - !ruby/object:Gem::Version
292
+ version: '0'
293
+ description: It's datatables for Volt.
294
+ email:
295
+ - matt.hale.0@gmail.com
296
+ executables: []
297
+ extensions: []
298
+ extra_rdoc_files: []
299
+ files:
300
+ - ".gitignore"
301
+ - ".rspec"
302
+ - CODE_OF_CONDUCT.md
303
+ - Gemfile
304
+ - Guardfile
305
+ - LICENSE.txt
306
+ - README.md
307
+ - Rakefile
308
+ - app/table/assets/css/font-awesome.min.css
309
+ - app/table/assets/css/main.scss
310
+ - app/table/assets/fonts/FontAwesome.otf
311
+ - app/table/assets/fonts/fontawesome-webfont.eot
312
+ - app/table/assets/fonts/fontawesome-webfont.svg
313
+ - app/table/assets/fonts/fontawesome-webfont.ttf
314
+ - app/table/assets/fonts/fontawesome-webfont.woff
315
+ - app/table/assets/fonts/fontawesome-webfont.woff2
316
+ - app/table/config/dependencies.rb
317
+ - app/table/config/initializers/boot.rb
318
+ - app/table/config/routes.rb
319
+ - app/table/controllers/columns_controller.rb
320
+ - app/table/controllers/footers_controller.rb
321
+ - app/table/controllers/headers_controller.rb
322
+ - app/table/controllers/main_controller.rb
323
+ - app/table/tasks/count_task.rb
324
+ - app/table/views/columns/column_head.html
325
+ - app/table/views/columns/filter_head.html
326
+ - app/table/views/columns/index.html
327
+ - app/table/views/footers/index.html
328
+ - app/table/views/headers/index.html
329
+ - app/table/views/headers/modal.html
330
+ - app/table/views/main/body.html
331
+ - app/table/views/main/footers.html
332
+ - app/table/views/main/index.html
333
+ - app/table/views/wrapper/index.html
334
+ - lib/volt/table.rb
335
+ - lib/volt/table/version.rb
336
+ - spec/dummy/.gitignore
337
+ - spec/dummy/README.md
338
+ - spec/dummy/app/main/assets/css/app.css.scss
339
+ - spec/dummy/app/main/config/dependencies.rb
340
+ - spec/dummy/app/main/config/initializers/boot.rb
341
+ - spec/dummy/app/main/config/routes.rb
342
+ - spec/dummy/app/main/controllers/main_controller.rb
343
+ - spec/dummy/app/main/lib/seed_db.rb
344
+ - spec/dummy/app/main/models/user.rb
345
+ - spec/dummy/app/main/views/main/about.html
346
+ - spec/dummy/app/main/views/main/index.html
347
+ - spec/dummy/app/main/views/main/main.html
348
+ - spec/dummy/config.ru
349
+ - spec/dummy/config/app.rb
350
+ - spec/dummy/config/base/index.html
351
+ - spec/dummy/config/initializers/boot.rb
352
+ - spec/factories.rb
353
+ - spec/integration/table_integration_spec.rb
354
+ - spec/spec_helper.rb
355
+ - volt-table.gemspec
356
+ homepage: ''
357
+ licenses:
358
+ - MIT
359
+ metadata: {}
360
+ post_install_message:
361
+ rdoc_options: []
362
+ require_paths:
363
+ - lib
364
+ required_ruby_version: !ruby/object:Gem::Requirement
365
+ requirements:
366
+ - - ">="
367
+ - !ruby/object:Gem::Version
368
+ version: '0'
369
+ required_rubygems_version: !ruby/object:Gem::Requirement
370
+ requirements:
371
+ - - ">="
372
+ - !ruby/object:Gem::Version
373
+ version: '0'
374
+ requirements: []
375
+ rubyforge_project:
376
+ rubygems_version: 2.4.5.1
377
+ signing_key:
378
+ specification_version: 4
379
+ summary: Provides a searchable, sortable, filterable table component for Volt.
380
+ test_files:
381
+ - spec/dummy/.gitignore
382
+ - spec/dummy/README.md
383
+ - spec/dummy/app/main/assets/css/app.css.scss
384
+ - spec/dummy/app/main/config/dependencies.rb
385
+ - spec/dummy/app/main/config/initializers/boot.rb
386
+ - spec/dummy/app/main/config/routes.rb
387
+ - spec/dummy/app/main/controllers/main_controller.rb
388
+ - spec/dummy/app/main/lib/seed_db.rb
389
+ - spec/dummy/app/main/models/user.rb
390
+ - spec/dummy/app/main/views/main/about.html
391
+ - spec/dummy/app/main/views/main/index.html
392
+ - spec/dummy/app/main/views/main/main.html
393
+ - spec/dummy/config.ru
394
+ - spec/dummy/config/app.rb
395
+ - spec/dummy/config/base/index.html
396
+ - spec/dummy/config/initializers/boot.rb
397
+ - spec/factories.rb
398
+ - spec/integration/table_integration_spec.rb
399
+ - spec/spec_helper.rb