query_report 0.1.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (132) hide show
  1. data/{LICENSE.txt → MIT-LICENSE} +2 -4
  2. data/README.md +32 -53
  3. data/Rakefile +50 -0
  4. data/app/helpers/query_report_filter_helper.rb +22 -0
  5. data/app/helpers/query_report_helper.rb +31 -0
  6. data/app/views/query_report/_charts.html.erb +10 -0
  7. data/app/views/query_report/_search.html.erb +8 -0
  8. data/app/views/query_report/list.html.erb +19 -38
  9. data/config/locales/query_report.yml +7 -0
  10. data/config/routes.rb +2 -0
  11. data/db/schema.rb +34 -0
  12. data/lib/query_report.rb +22 -15
  13. data/lib/query_report/chart/chart_base.rb +60 -0
  14. data/lib/query_report/chart/chart_column.rb +12 -0
  15. data/lib/query_report/chart/column_chart.rb +40 -0
  16. data/lib/query_report/chart/pie_chart.rb +22 -25
  17. data/lib/query_report/chart/themes.rb +18 -114
  18. data/lib/query_report/column.rb +29 -18
  19. data/lib/query_report/config.rb +6 -0
  20. data/lib/query_report/engine.rb +4 -0
  21. data/lib/query_report/errors.rb +4 -0
  22. data/lib/query_report/filter.rb +110 -31
  23. data/lib/query_report/helper.rb +19 -3
  24. data/lib/query_report/paginate.rb +13 -0
  25. data/lib/query_report/record.rb +46 -0
  26. data/lib/query_report/report.rb +19 -102
  27. data/lib/query_report/report_pdf.rb +68 -84
  28. data/lib/query_report/version.rb +1 -1
  29. data/lib/tasks/query_report_tasks.rake +4 -0
  30. data/test/dummy/README.rdoc +261 -0
  31. data/test/dummy/Rakefile +7 -0
  32. data/test/dummy/app/assets/javascripts/application.js +15 -0
  33. data/test/dummy/app/assets/javascripts/invoices.js +2 -0
  34. data/test/dummy/app/assets/javascripts/users.js +2 -0
  35. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  36. data/test/dummy/app/assets/stylesheets/invoices.css +4 -0
  37. data/test/dummy/app/assets/stylesheets/scaffold.css +56 -0
  38. data/test/dummy/app/assets/stylesheets/users.css +4 -0
  39. data/test/dummy/app/controllers/application_controller.rb +3 -0
  40. data/test/dummy/app/controllers/invoices_controller.rb +114 -0
  41. data/test/dummy/app/controllers/users_controller.rb +91 -0
  42. data/test/dummy/app/helpers/application_helper.rb +2 -0
  43. data/test/dummy/app/helpers/invoices_helper.rb +2 -0
  44. data/test/dummy/app/helpers/users_helper.rb +2 -0
  45. data/test/dummy/app/models/invoice.rb +3 -0
  46. data/test/dummy/app/models/pdf_report_template.rb +24 -0
  47. data/test/dummy/app/models/user.rb +3 -0
  48. data/test/dummy/app/views/invoices/_form.html.erb +33 -0
  49. data/test/dummy/app/views/invoices/edit.html.erb +6 -0
  50. data/test/dummy/app/views/invoices/index.html.erb +29 -0
  51. data/test/dummy/app/views/invoices/new.html.erb +5 -0
  52. data/test/dummy/app/views/invoices/show.html.erb +25 -0
  53. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  54. data/test/dummy/app/views/users/_form.html.erb +33 -0
  55. data/test/dummy/app/views/users/edit.html.erb +6 -0
  56. data/test/dummy/app/views/users/index.html.erb +29 -0
  57. data/test/dummy/app/views/users/new.html.erb +5 -0
  58. data/test/dummy/app/views/users/show.html.erb +25 -0
  59. data/test/dummy/config.ru +4 -0
  60. data/test/dummy/config/application.rb +60 -0
  61. data/test/dummy/config/boot.rb +10 -0
  62. data/test/dummy/config/database.yml +25 -0
  63. data/test/dummy/config/environment.rb +5 -0
  64. data/test/dummy/config/environments/development.rb +37 -0
  65. data/test/dummy/config/environments/production.rb +67 -0
  66. data/test/dummy/config/environments/test.rb +37 -0
  67. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  68. data/test/dummy/config/initializers/inflections.rb +15 -0
  69. data/test/dummy/config/initializers/mime_types.rb +5 -0
  70. data/test/dummy/config/initializers/query_report.rb +3 -0
  71. data/test/dummy/config/initializers/secret_token.rb +7 -0
  72. data/test/dummy/config/initializers/session_store.rb +8 -0
  73. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  74. data/test/dummy/config/locales/en.yml +10 -0
  75. data/test/dummy/config/routes.rb +64 -0
  76. data/test/dummy/db/development.sqlite3 +0 -0
  77. data/test/dummy/db/migrate/20130622120853_create_users.rb +12 -0
  78. data/test/dummy/db/migrate/20130630132513_create_invoices.rb +12 -0
  79. data/test/dummy/db/schema.rb +34 -0
  80. data/test/dummy/db/seed.rb +4 -0
  81. data/test/dummy/db/test.sqlite3 +0 -0
  82. data/test/dummy/log/development.log +30613 -0
  83. data/test/dummy/log/test.log +28 -0
  84. data/test/dummy/public/404.html +26 -0
  85. data/test/dummy/public/422.html +26 -0
  86. data/test/dummy/public/500.html +25 -0
  87. data/test/dummy/public/favicon.ico +0 -0
  88. data/test/dummy/script/rails +6 -0
  89. data/test/dummy/test/fixtures/invoices.yml +13 -0
  90. data/test/dummy/test/functional/invoices_controller_test.rb +49 -0
  91. data/test/dummy/test/unit/helpers/invoices_helper_test.rb +4 -0
  92. data/test/dummy/test/unit/invoice_test.rb +7 -0
  93. data/test/dummy/tmp/cache/assets/C8C/B80/sprockets%2F371bf96e99717688ed7313a0c53f4212 +0 -0
  94. data/test/dummy/tmp/cache/assets/CA9/F20/sprockets%2F00ff4f84806dd8834ab35f800a082640 +0 -0
  95. data/test/dummy/tmp/cache/assets/CAA/620/sprockets%2F87b209c0c9da28094a8d5581a21262c6 +0 -0
  96. data/test/dummy/tmp/cache/assets/CB5/B70/sprockets%2Fa769d915e72b1c8c0614793b54d02c86 +0 -0
  97. data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  98. data/test/dummy/tmp/cache/assets/CD8/B70/sprockets%2F4050a4e5062ab95c9f32e9b6940821ea +0 -0
  99. data/test/dummy/tmp/cache/assets/CF0/1D0/sprockets%2F6fc757c2c8329244ca95d6909865bbc2 +0 -0
  100. data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  101. data/test/dummy/tmp/cache/assets/D46/650/sprockets%2Ff56253b5f374fff1a33fbbc9881c9124 +0 -0
  102. data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  103. data/test/dummy/tmp/cache/assets/D54/B90/sprockets%2F90719d7bdca76469cd487928f710decb +0 -0
  104. data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  105. data/test/dummy/tmp/cache/assets/D67/B60/sprockets%2F5f1a0d05e77ca8b9a1fc2a47e17a8174 +0 -0
  106. data/test/dummy/tmp/cache/assets/D7C/990/sprockets%2F302f7d851fcdb17936f8096bfb967cab +0 -0
  107. data/test/dummy/tmp/cache/assets/D7F/AF0/sprockets%2Fa7deca9af827ab462635389b96c7da39 +0 -0
  108. data/test/dummy/tmp/cache/assets/DA3/AC0/sprockets%2F797d3e5f21daaf5c046cc6ec4830e95b +0 -0
  109. data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  110. data/test/dummy/tmp/cache/assets/DFC/6F0/sprockets%2F2c45c36e4d7c7bfaeb826eeba29a09d2 +0 -0
  111. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  112. data/test/dummy/tmp/cache/assets/E0E/8A0/sprockets%2Fbecd48a9cf2ece858e433d7dcf0554f6 +0 -0
  113. data/test/dummy/tmp/miniprofiler/mp_timers_5awpjfhldzcfjkeiia3p +0 -0
  114. data/test/dummy/tmp/miniprofiler/mp_timers_a7ev5lal7xp2xzjj2n9p +0 -0
  115. data/test/dummy/tmp/miniprofiler/mp_timers_c5lzifpf785aic4t3cm8 +0 -0
  116. data/test/dummy/tmp/miniprofiler/mp_timers_etmdhvrbbmdadc7oyw8q +0 -0
  117. data/test/dummy/tmp/miniprofiler/mp_timers_m0kxxiow6jlfcjulu02t +0 -0
  118. data/test/dummy/tmp/miniprofiler/mp_timers_m2ow1xy7c6tw0f4fj2co +0 -0
  119. data/test/dummy/tmp/miniprofiler/mp_timers_mitzsa7y0lvka04il6an +0 -0
  120. data/test/dummy/tmp/miniprofiler/mp_timers_ujpdek4jfp8flbqp7fi3 +0 -0
  121. data/test/dummy/tmp/miniprofiler/mp_timers_wbiyljqrnox89js4m0at +0 -0
  122. data/test/dummy/tmp/miniprofiler/mp_views_127.0.0.1 +1 -0
  123. data/test/test_helper.rb +15 -0
  124. metadata +380 -24
  125. data/.gitignore +0 -18
  126. data/Gemfile +0 -10
  127. data/README.rdoc +0 -3
  128. data/app/views/query_report/_custom_filters.html.erb +0 -7
  129. data/lib/query_report/chart/basic_chart.rb +0 -41
  130. data/lib/query_report/chart/custom_chart.rb +0 -55
  131. data/lib/query_report/row.rb +0 -11
  132. data/query_report.gemspec +0 -31
data/.gitignore DELETED
@@ -1,18 +0,0 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
- Gemfile.lock
7
- InstalledFiles
8
- _yardoc
9
- coverage
10
- doc/
11
- lib/bundler/man
12
- pkg
13
- rdoc
14
- spec/reports
15
- test/tmp
16
- test/version_tmp
17
- tmp
18
- .idea
data/Gemfile DELETED
@@ -1,10 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in query_report.gemspec
4
- gemspec
5
-
6
- group :development do
7
- gem 'jquery-rails'
8
- gem 'bullet'
9
- gem 'rack-mini-profiler'
10
- end
data/README.rdoc DELETED
@@ -1,3 +0,0 @@
1
- = QueryReport
2
-
3
- This project rocks and uses MIT-LICENSE.
@@ -1,7 +0,0 @@
1
- <% if filter.type == :user %>
2
- <% search_key = "#{filter.column.to_s}_id_eq"
3
- user_id = @record.search.send(search_key)
4
- user_name = User.find(user_id).name rescue '' %>
5
- <%= user_search_field_tag "#{search_key}_search_field", user_name, :placeholder => filter.column.to_s.humanize, :'sync-id' => "q_#{search_key}" %>
6
- <%= f.hidden_field search_key %>
7
- <% end %>
@@ -1,41 +0,0 @@
1
- module QueryReport
2
- module Chart
3
- class BasicChart
4
- attr_reader :title, :columns, :type, :data, :options
5
-
6
- def initialize(type, name, columns, data, options={})
7
- @type = type
8
- @name = name
9
- @columns = []
10
- columns.each_with_index do |column, i|
11
- @columns << QueryReport::Column.new(column, {type: (i == 0 ? 'string' : 'number')})
12
- end
13
- @data = data
14
- @options = options
15
- end
16
-
17
- def prepare
18
- data_table = GoogleVisualr::DataTable.new
19
- columns.each do |column|
20
- data_table.new_column(column.type, column.name)
21
- end
22
-
23
- rows = []
24
- @data.each do |record|
25
- row = []
26
- columns.each do |column|
27
- row << record[column.name]
28
- end
29
- rows << row
30
- end
31
- data_table.add_rows(rows)
32
-
33
- opts = {:width => 400, :height => 240, :title => title, :hAxis => {:title => columns[0].name}}.merge(options)
34
-
35
- chart_type = "#{type}_chart".classify
36
- chart_type = "GoogleVisualr::Interactive::#{chart_type}".constantize
37
- chart_type.new(data_table, opts)
38
- end
39
- end
40
- end
41
- end
@@ -1,55 +0,0 @@
1
- require 'query_report/row'
2
- require 'query_report/chart/themes'
3
-
4
- module QueryReport
5
- module Chart
6
- class CustomChart
7
- attr_reader :title, :type, :options, :data_table, :row, :rows
8
-
9
- def initialize(type, title, query, options={})
10
- @type = type
11
- @title = title
12
- @query = query
13
- @options = options
14
- @row = []
15
- @rows = []
16
- @data_table = GoogleVisualr::DataTable.new
17
- end
18
-
19
- def add_column(title)
20
- @data_table.new_column('string', title)
21
- @row << title.humanize
22
- end
23
-
24
- def add(column_title, &block)
25
- val = block.call(@query)
26
- @data_table.new_column(val.kind_of?(String) ? 'string' : 'number', column_title)
27
- @row << val
28
- @rows << Row.new(column_title, val)
29
- end
30
-
31
- def prepare
32
- @data_table.add_row(@row)
33
- opts = {:width => 500, :height => 240, :title => @title, backgroundColor: 'transparent'}.merge(options)
34
- chart_type = "#{type}_chart".classify
35
- chart_type = "GoogleVisualr::Interactive::#{chart_type}".constantize
36
- chart_type.new(@data_table, opts)
37
- end
38
-
39
- def prepare_gruff
40
- @gruff = Gruff::Bar.new(options[:width] || 600)
41
- @gruff.title = title
42
- @gruff.theme = Gruff::Themes::GOOGLE_CHART
43
- @rows.each do |row|
44
- @gruff.data(row.name.humanize, row.value)
45
- end
46
- end
47
-
48
- def to_blob
49
- prepare_gruff
50
- @gruff.to_blob
51
- end
52
-
53
- end
54
- end
55
- end
@@ -1,11 +0,0 @@
1
- module QueryReport
2
- class Row
3
- attr_reader :name, :value, :type
4
-
5
- def initialize(name, value)
6
- @name = name
7
- @value = value
8
- @type = value.kind_of?(String) ? 'string' : 'number'
9
- end
10
- end
11
- end
data/query_report.gemspec DELETED
@@ -1,31 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'query_report/version'
5
-
6
- Gem::Specification.new do |gem|
7
- gem.name = "query_report"
8
- gem.version = QueryReport::VERSION
9
- gem.authors = ["A.K.M. Ashrafuzzaman"]
10
- gem.email = ["ashrafuzzaman.g2@gmail.com"]
11
- gem.description = %q{This is a gem to help you to structure common reports of you application just by writing in the controller}
12
- gem.summary = %q{Structure you reports}
13
- gem.homepage = "https://github.com/ashrafuzzaman/query_report"
14
-
15
- gem.files = `git ls-files`.split($/)
16
- gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
- gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
- gem.require_paths = ["lib", "app"]
19
-
20
- gem.add_dependency "rails", "~> 3.2.13"
21
- gem.add_dependency 'ransack'
22
- gem.add_dependency 'google_visualr', '>= 2.1'
23
- gem.add_dependency 'rmagick'
24
- gem.add_dependency 'gruff'
25
- gem.add_dependency 'kaminari'
26
-
27
- gem.add_development_dependency "sqlite3"
28
- gem.add_development_dependency "jquery-rails"
29
- gem.add_development_dependency "bullet"
30
- gem.add_development_dependency "rack-mini-profiler"
31
- end