query_report 0.1.2 → 1.0.0

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.
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