lolita-report 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,8 +1,7 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
- gem "abstract"
3
+ gem "lolita", "~> 3.1.4"
4
4
  gem "ruport"
5
- gem "lolita", "~> 3.1.0"
6
5
  gem "spreadsheet"
7
6
 
8
7
  group :test, :development do
@@ -1,16 +1,13 @@
1
- = lolita-report
1
+ = Lolita Report
2
2
 
3
- Description goes here.
3
+ Lolita plugin that generate reports in HTML and allow to save in XLS
4
+ == Instaltion
4
5
 
5
- == Contributing to lolita-report
6
-
7
- * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
8
- * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
9
- * Fork the project
10
- * Start a feature/bugfix branch
11
- * Commit and push until you are happy with your contribution
12
- * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
13
- * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
6
+ gem install lolita-report
7
+ === First time instalation
8
+ rails g lolita-report:install
9
+ === Copying assets
10
+ rails g lolita-report:assets
14
11
 
15
12
  == Copyright
16
13
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.2
1
+ 0.1.0
@@ -2,16 +2,17 @@ class Lolita::ReportsController < ApplicationController
2
2
  include Lolita::Controllers::InternalHelpers
3
3
  layout "lolita/application"
4
4
  def show
5
- report = self.resource_class.lolita.reports.by_name(params[:name])
6
- report.generate_table_for_report
5
+ @report = self.resource_class.lolita.reports.by_name(params[:name])
7
6
  respond_to do |format|
8
7
  format.html{
9
- @builder=report.build
8
+ @html=@report.report_controller.render_html(:report=>@report)
10
9
  render
11
10
  }
12
11
  format.xls do |format|
13
- xls=report.to_xls(:raw)
14
- send_data xls, :type => :xls, :filename => report.file_name(:xls)
12
+ xls=@report.report_controller.render_xls(:report=>@report)
13
+ unless @report.file_base_name
14
+ send_data xls,:type=>:xls,:filename=>@report.file_name(:xls)
15
+ end
15
16
  end
16
17
  end
17
18
  end
@@ -0,0 +1,90 @@
1
+ class DefaultReport < Ruport::Controller
2
+ required_option :report
3
+ stage :header,:body,:footer
4
+ finalize :report
5
+
6
+ def setup
7
+ self.data=Ruport::Table(
8
+ :column_names=>options.report.column_names.map{|n| n.to_s.humanize},
9
+ :data=>collect_data(options.report.column_names)
10
+ )
11
+ end
12
+
13
+
14
+ def collect_data(column_names)
15
+ options.report.klass.find(:all).map{|record|
16
+ column_names.map{|column_name|
17
+ record.send(column_name.to_sym)
18
+ }
19
+ }
20
+ end
21
+
22
+ formatter :html do
23
+ build :header do
24
+ output << "<div class='box list'><h1 class='black'>&nbsp#{options.report.title}</h1>"
25
+ output << "<table><thead>"
26
+ data.column_names.each do |column_name|
27
+ output << "<th>#{column_name}</th>"
28
+ end
29
+ output << "</thead>"
30
+ end
31
+
32
+ build :body do
33
+ output << "<tbody>"
34
+ data.data.each{|row|
35
+ output << "<tr>#{row.inject(""){|result,f| result<<"<td>#{f}</td>"}}</tr>"
36
+ }
37
+ output << "</tbody>"
38
+ end
39
+
40
+ build :footer do
41
+ output << "</table>"
42
+ output << "</div>"
43
+ end
44
+ end
45
+ end
46
+
47
+ class XLS < Ruport::Formatter
48
+ renders :xls, :for=>DefaultReport
49
+
50
+ def initialize
51
+ require "spreadsheet"
52
+ @book = Spreadsheet::Workbook.new
53
+ @sheet=@book.create_worksheet
54
+ end
55
+
56
+ def build_header
57
+ @sheet.name=options.report.title
58
+ @sheet.row(0).replace(options.report.column_names.map{|c| c.to_s.humanize})
59
+ @sheet.row(0).default_format=header_format()
60
+ 0.upto(options.report.column_names.size-1) do |index|
61
+ @sheet.column(index).width=20
62
+ end
63
+ end
64
+
65
+ def build_body
66
+ data.data.each_with_index do |row,index|
67
+ @sheet.row(index+1).replace(row.map{|c| c.to_s})
68
+ end
69
+ end
70
+
71
+ def finalize_report
72
+ if options.report.save_in_file?
73
+ @book.write(options.report.file_name(:xls))
74
+ else
75
+ blob = StringIO.new("")
76
+ @book.write blob
77
+ output << blob.string
78
+ end
79
+ end
80
+
81
+ private
82
+
83
+ def header_format
84
+ Spreadsheet::Format.new(
85
+ :pattern_bg_color=>:grey,
86
+ :weight => :bold,
87
+ :size => 12
88
+ )
89
+ end
90
+ end
@@ -1,9 +1,8 @@
1
- <div class="report">
2
- <%= render_component *@builder %>
1
+ <%= raw(@html) %>
3
2
 
4
- <br/>
3
+ <div>
5
4
  <% Lolita::Configuration::Report.formats.each do |format| %>
6
- <%= link_to format.to_s.upcase, send(lolita_resource_name(:action=>:reports,:plural=>true),:format=>format) %>
5
+ <%= link_to image_tag("xls.png"), send(lolita_resource_name(:action=>:reports,:plural=>true),:format=>format) %>
7
6
  &nbsp;
8
7
  <% end %>
9
- </div>
8
+ </div>
@@ -0,0 +1,13 @@
1
+ require 'generators/helpers/file_helper'
2
+ module LolitaReport
3
+ module Generators
4
+ class AssetsGenerator < Rails::Generators::Base
5
+ include Lolita::Generators::FileHelper
6
+ desc "Copy all from public directory to project public directory."
7
+ def copy_all
8
+ root=File.expand_path("../../../../",__FILE__)
9
+ copy_dir("public",:root=>root)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ module LolitaReport
2
+ module Generators
3
+ class InstallGenerator < Rails::Generators::Base
4
+ include Lolita::Generators::FileHelper
5
+
6
+ desc "Copy assets"
7
+
8
+
9
+ def copy_assets
10
+ generate("lolita_report:assets")
11
+ end
12
+
13
+ end
14
+ end
15
+ end
@@ -3,7 +3,6 @@ $:<<File.dirname(__FILE__) unless $:.include?(File.dirname(__FILE__))
3
3
  require "lolita-report/configuration/base"
4
4
  require "lolita-report/rails"
5
5
  require "ruport"
6
- require "spreadsheet"
7
6
  module Lolita
8
7
  module Report
9
8
 
@@ -17,15 +16,17 @@ end
17
16
  require "lolita-report/module.rb"
18
17
 
19
18
  Lolita::Navigation::Tree.after_branch_added do
20
- if self.name==:"left_side_navigation"
21
- if @last_branch && @last_branch.object && @last_branch.object.is_a?(Lolita::Mapping)
22
- if @last_branch.object.to.lolita.reports.any?
23
- @last_branch.object.to.lolita.reports.each do |report|
24
- unless @last_branch.children.branches.detect{|b| b.options[:report_name]==report.name}
25
- @last_branch.append(report,:title=>report.title,:report_name=>report.name,:url=>Proc.new{
26
- send(lolita_resource_name(:action=>:reports,:plural=>true),:name=>report.name)
27
- })
28
- end
19
+ self.branches.each do |branch|
20
+ if branch.object.is_a?(Lolita::Mapping) && branch.object.to.lolita.reports.any?
21
+ klass=branch.object.to
22
+ klass.lolita.reports.each do |report|
23
+ unless branch.children.branches.detect{|child_branch| child_branch.object==report}
24
+ branch.append(report,:title=>report.title,:url=>Proc.new{|view,branch|
25
+
26
+ options={:mapping=>branch.tree.parent.object,:action=>:reports,:plural=>true}
27
+ path_method=view.send(:lolita_resource_name,options)
28
+ view.send(path_method,:name=>branch.object.name)
29
+ })
29
30
  end
30
31
  end
31
32
  end
@@ -3,135 +3,50 @@
3
3
  module Lolita
4
4
  module Configuration
5
5
  class Report
6
- include Lolita::Builder
7
-
8
- lolita_accessor :title,:name,:total_columns, :table,:fields
6
+ #include Lolita::Builder
9
7
 
8
+ lolita_accessor :title,:name,:class_name,:file_base_name,:controller
9
+ attr_writer :column_names
10
+
10
11
  def initialize(dbi,title=nil, &block)
11
12
 
12
13
  @dbi=dbi
13
- @fields=[]
14
+ @column_names=[]
14
15
  @title=title
15
16
  self.instance_eval(&block) if block_given?
16
17
  raise ArgumentError, "Report must have title" unless @title
17
18
  set_default_values
18
19
  end
19
-
20
- # Set data for counting.
21
- def total(*args)
22
- @collumns_for_counting=args if args
23
- @collumns_for_counting
24
- end
25
- # Return columns in array, which are needed counted.
26
- def total_columns
27
- @collumns_for_counting
28
- end
29
-
30
- # Set a title for report.
31
- def name value=nil
32
- @name=value if value
33
- @name
34
- end
35
20
 
36
- def field *args, &block
37
- @fields<<Lolita::Configuration::Field::Base.new(@dbi,*args,&block)
21
+ def report_controller
22
+ @controller || ::DefaultReport
38
23
  end
39
24
 
40
- def fields *args
41
- if args
42
- @fields=[]
43
- args.each{|f| field(f)}
25
+ def column_names *args
26
+ if args && args.any?
27
+ @column_names=args
44
28
  end
45
- @fields
29
+ @column_names
46
30
  end
47
31
 
48
- def file_name ext
49
- "#{self.title} at #{Time.now.strftime("%Y-%m-%d %H:%M:%S")}.#{ext}"
32
+ def save_in_file?
33
+ !!@file_base_name
50
34
  end
51
35
 
52
- # Return fields for displaying in report.
53
- def custom_fields
54
- @fields if @fields
36
+ def file_name(ext)
37
+ "#{@file_base_name||"#{self.name}"}_#{Time.now.strftime("%Y%m%d%H%M%S")}.#{ext}"
55
38
  end
56
-
57
- # Generate table for report, which contain all necessary data
58
- def generate_table_for_report
59
- self.create_table
60
- add_collumns_for_counting if collumns_for_counting_defined?
61
- self.collect_data
62
- @table
63
- end
64
-
65
- # generate excel file with necessary data and formating
66
- def to_xls response_type=:raw
67
- book = Spreadsheet::Workbook.new
68
- sheet1=book.create_worksheet
69
- sheet1.name=self.title
70
- sheet1.row(0).replace(@table[0].attributes.map(&:to_s))
71
- 1.upto(@table.size){|i|
72
- sheet1.row(i).replace(@table[0].attributes.collect{|f| @table[i-1].data[f]})
73
- }
74
- table_header_format_for sheet1
75
- set_columns_width_for sheet1
76
- if response_type==:raw
77
- blob = StringIO.new("")
78
- book.write blob
79
- blob.string
39
+
40
+ def klass
41
+ @klass||=if self.class_name
42
+ Lolita::DBI::Base.new(self.class_name.constantize)
80
43
  else
81
- book.write self.file_name(:xls)
44
+ @dbi
82
45
  end
46
+ @klass
83
47
  end
84
-
85
- protected
86
-
87
- # set excel collumns width for sheet
88
- def set_columns_width_for sheet
89
- 0.upto(@table[0].attributes.size-1){|i|
90
- sheet.column(i).width=20
91
- }
92
- end
93
-
94
- # make format for excel table header
95
- def table_header_format_for sheet
96
- title_format = Spreadsheet::Format.new :pattern_bg_color=>:grey,
97
- :weight => :bold,
98
- :size => 12
99
- sheet.row(0).default_format =title_format
100
- end
101
-
102
- # Make table,which contain all necessary data for report.
103
- def create_table
104
- @table = Table @fields.map{|f| f.title}
105
- end
106
-
107
- # Set all necessary data into table.
108
- def collect_data
109
- field_names=@fields.map{|f| f.name}
110
- @dbi.find(:all).each{|record|
111
- @table<<field_names.map{|f_name|
112
- record.send(f_name)
113
- }
114
- }
115
- end
116
-
117
- # Set necessary data in columns, where will bi counting something.
118
- def set_data_in_counting_columns object
119
- @collumns_for_counting.each{|method|
120
- @hsh["#{method.to_s}_total"]=object.send(method).size
121
- }
122
- end
123
-
124
- # Check if fields for counting are defined for report.
125
- def collumns_for_counting_defined?
126
- @collumns_for_counting.size>0 if @collumns_for_counting
127
- end
128
-
129
- # For setting data for cuonting, necessary to add this collumns to table.
130
- def add_collumns_for_counting
131
- @collumns_for_counting.each{|method|
132
- @table.add_column("#{method.to_s}_total",:default=>0) if @table
133
- }
134
- end
48
+
49
+ private
135
50
 
136
51
  def set_default_values
137
52
  @name||="report_for_#{dbi.class.to_s}_#{self.__id__}"
@@ -142,6 +57,7 @@ module Lolita
142
57
  [:xls]
143
58
  end
144
59
  end
60
+
145
61
  end
146
62
  end
147
63
  end
@@ -2,5 +2,6 @@ require "lolita-report/routes"
2
2
  Mime::Type.register "application/vnd.ms-excel", :xls
3
3
  module LolitaReport
4
4
  class Engine < Rails::Engine
5
+ config.autoload_paths << File.expand_path("../../../app/reports", __FILE__)
5
6
  end
6
7
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{lolita-report}
8
- s.version = "0.0.2"
8
+ s.version = "0.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["ITHouse (Latvia)", "Arturs Meisters", "Artjoms Tjangins"]
12
- s.date = %q{2011-04-15}
12
+ s.date = %q{2011-04-19}
13
13
  s.description = %q{Enable configuration and generate HTML view for Lolita resources, and also has ability to export to different formats.}
14
14
  s.email = %q{support@ithouse.lv}
15
15
  s.extra_rdoc_files = [
@@ -24,7 +24,7 @@ Gem::Specification.new do |s|
24
24
  "Rakefile",
25
25
  "VERSION",
26
26
  "app/controllers/lolita/reports_controller.rb",
27
- "app/views/components/lolita/configuration/report/_display.html.erb",
27
+ "app/reports/default_report.rb",
28
28
  "app/views/lolita/reports/show.html.erb",
29
29
  "author",
30
30
  "doc/ActiveSupport.html",
@@ -78,6 +78,8 @@ Gem::Specification.new do |s|
78
78
  "doc/spec/factories/factories_rb.html",
79
79
  "doc/spec/orm/mongoid_rb.html",
80
80
  "doc/spec/spec_helper_rb.html",
81
+ "lib/generators/lolita_report/assets_generator.rb",
82
+ "lib/generators/lolita_report/install_generator.rb",
81
83
  "lib/lolita-report.rb",
82
84
  "lib/lolita-report/configuration/base.rb",
83
85
  "lib/lolita-report/configuration/report.rb",
@@ -86,6 +88,7 @@ Gem::Specification.new do |s|
86
88
  "lib/lolita-report/rails.rb",
87
89
  "lib/lolita-report/routes.rb",
88
90
  "lolita-report.gemspec",
91
+ "public/images/xls.png",
89
92
  "spec/configuration/report_spec.rb",
90
93
  "spec/configuration/reports_spec.rb",
91
94
  "spec/factories/factories.rb",
@@ -109,9 +112,8 @@ Gem::Specification.new do |s|
109
112
  s.specification_version = 3
110
113
 
111
114
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
112
- s.add_runtime_dependency(%q<abstract>, [">= 0"])
115
+ s.add_runtime_dependency(%q<lolita>, ["~> 3.1.4"])
113
116
  s.add_runtime_dependency(%q<ruport>, [">= 0"])
114
- s.add_runtime_dependency(%q<lolita>, ["~> 3.1.0"])
115
117
  s.add_runtime_dependency(%q<spreadsheet>, [">= 0"])
116
118
  s.add_development_dependency(%q<factory_girl_rails>, [">= 0"])
117
119
  s.add_development_dependency(%q<cover_me>, [">= 1.0.0.rc6"])
@@ -121,9 +123,8 @@ Gem::Specification.new do |s|
121
123
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
122
124
  s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
123
125
  else
124
- s.add_dependency(%q<abstract>, [">= 0"])
126
+ s.add_dependency(%q<lolita>, ["~> 3.1.4"])
125
127
  s.add_dependency(%q<ruport>, [">= 0"])
126
- s.add_dependency(%q<lolita>, ["~> 3.1.0"])
127
128
  s.add_dependency(%q<spreadsheet>, [">= 0"])
128
129
  s.add_dependency(%q<factory_girl_rails>, [">= 0"])
129
130
  s.add_dependency(%q<cover_me>, [">= 1.0.0.rc6"])
@@ -134,9 +135,8 @@ Gem::Specification.new do |s|
134
135
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
135
136
  end
136
137
  else
137
- s.add_dependency(%q<abstract>, [">= 0"])
138
+ s.add_dependency(%q<lolita>, ["~> 3.1.4"])
138
139
  s.add_dependency(%q<ruport>, [">= 0"])
139
- s.add_dependency(%q<lolita>, ["~> 3.1.0"])
140
140
  s.add_dependency(%q<spreadsheet>, [">= 0"])
141
141
  s.add_dependency(%q<factory_girl_rails>, [">= 0"])
142
142
  s.add_dependency(%q<cover_me>, [">= 1.0.0.rc6"])
Binary file
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: lolita-report
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.2
5
+ version: 0.1.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - ITHouse (Latvia)
@@ -12,17 +12,17 @@ autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
14
 
15
- date: 2011-04-15 00:00:00 +03:00
15
+ date: 2011-04-19 00:00:00 +03:00
16
16
  default_executable:
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
- name: abstract
19
+ name: lolita
20
20
  requirement: &id001 !ruby/object:Gem::Requirement
21
21
  none: false
22
22
  requirements:
23
- - - ">="
23
+ - - ~>
24
24
  - !ruby/object:Gem::Version
25
- version: "0"
25
+ version: 3.1.4
26
26
  type: :runtime
27
27
  prerelease: false
28
28
  version_requirements: *id001
@@ -37,20 +37,9 @@ dependencies:
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: *id002
40
- - !ruby/object:Gem::Dependency
41
- name: lolita
42
- requirement: &id003 !ruby/object:Gem::Requirement
43
- none: false
44
- requirements:
45
- - - ~>
46
- - !ruby/object:Gem::Version
47
- version: 3.1.0
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: *id003
51
40
  - !ruby/object:Gem::Dependency
52
41
  name: spreadsheet
53
- requirement: &id004 !ruby/object:Gem::Requirement
42
+ requirement: &id003 !ruby/object:Gem::Requirement
54
43
  none: false
55
44
  requirements:
56
45
  - - ">="
@@ -58,10 +47,10 @@ dependencies:
58
47
  version: "0"
59
48
  type: :runtime
60
49
  prerelease: false
61
- version_requirements: *id004
50
+ version_requirements: *id003
62
51
  - !ruby/object:Gem::Dependency
63
52
  name: factory_girl_rails
64
- requirement: &id005 !ruby/object:Gem::Requirement
53
+ requirement: &id004 !ruby/object:Gem::Requirement
65
54
  none: false
66
55
  requirements:
67
56
  - - ">="
@@ -69,10 +58,10 @@ dependencies:
69
58
  version: "0"
70
59
  type: :development
71
60
  prerelease: false
72
- version_requirements: *id005
61
+ version_requirements: *id004
73
62
  - !ruby/object:Gem::Dependency
74
63
  name: cover_me
75
- requirement: &id006 !ruby/object:Gem::Requirement
64
+ requirement: &id005 !ruby/object:Gem::Requirement
76
65
  none: false
77
66
  requirements:
78
67
  - - ">="
@@ -80,10 +69,10 @@ dependencies:
80
69
  version: 1.0.0.rc6
81
70
  type: :development
82
71
  prerelease: false
83
- version_requirements: *id006
72
+ version_requirements: *id005
84
73
  - !ruby/object:Gem::Dependency
85
74
  name: mongoid
86
- requirement: &id007 !ruby/object:Gem::Requirement
75
+ requirement: &id006 !ruby/object:Gem::Requirement
87
76
  none: false
88
77
  requirements:
89
78
  - - ~>
@@ -91,10 +80,10 @@ dependencies:
91
80
  version: 2.0.0.beta
92
81
  type: :development
93
82
  prerelease: false
94
- version_requirements: *id007
83
+ version_requirements: *id006
95
84
  - !ruby/object:Gem::Dependency
96
85
  name: bson_ext
97
- requirement: &id008 !ruby/object:Gem::Requirement
86
+ requirement: &id007 !ruby/object:Gem::Requirement
98
87
  none: false
99
88
  requirements:
100
89
  - - ">="
@@ -102,10 +91,10 @@ dependencies:
102
91
  version: 1.0.9
103
92
  type: :development
104
93
  prerelease: false
105
- version_requirements: *id008
94
+ version_requirements: *id007
106
95
  - !ruby/object:Gem::Dependency
107
96
  name: ruby-debug19
108
- requirement: &id009 !ruby/object:Gem::Requirement
97
+ requirement: &id008 !ruby/object:Gem::Requirement
109
98
  none: false
110
99
  requirements:
111
100
  - - ">="
@@ -113,10 +102,10 @@ dependencies:
113
102
  version: "0"
114
103
  type: :development
115
104
  prerelease: false
116
- version_requirements: *id009
105
+ version_requirements: *id008
117
106
  - !ruby/object:Gem::Dependency
118
107
  name: bundler
119
- requirement: &id010 !ruby/object:Gem::Requirement
108
+ requirement: &id009 !ruby/object:Gem::Requirement
120
109
  none: false
121
110
  requirements:
122
111
  - - ~>
@@ -124,10 +113,10 @@ dependencies:
124
113
  version: 1.0.0
125
114
  type: :development
126
115
  prerelease: false
127
- version_requirements: *id010
116
+ version_requirements: *id009
128
117
  - !ruby/object:Gem::Dependency
129
118
  name: jeweler
130
- requirement: &id011 !ruby/object:Gem::Requirement
119
+ requirement: &id010 !ruby/object:Gem::Requirement
131
120
  none: false
132
121
  requirements:
133
122
  - - ~>
@@ -135,7 +124,7 @@ dependencies:
135
124
  version: 1.5.2
136
125
  type: :development
137
126
  prerelease: false
138
- version_requirements: *id011
127
+ version_requirements: *id010
139
128
  description: Enable configuration and generate HTML view for Lolita resources, and also has ability to export to different formats.
140
129
  email: support@ithouse.lv
141
130
  executables: []
@@ -153,7 +142,7 @@ files:
153
142
  - Rakefile
154
143
  - VERSION
155
144
  - app/controllers/lolita/reports_controller.rb
156
- - app/views/components/lolita/configuration/report/_display.html.erb
145
+ - app/reports/default_report.rb
157
146
  - app/views/lolita/reports/show.html.erb
158
147
  - author
159
148
  - doc/ActiveSupport.html
@@ -207,6 +196,8 @@ files:
207
196
  - doc/spec/factories/factories_rb.html
208
197
  - doc/spec/orm/mongoid_rb.html
209
198
  - doc/spec/spec_helper_rb.html
199
+ - lib/generators/lolita_report/assets_generator.rb
200
+ - lib/generators/lolita_report/install_generator.rb
210
201
  - lib/lolita-report.rb
211
202
  - lib/lolita-report/configuration/base.rb
212
203
  - lib/lolita-report/configuration/report.rb
@@ -215,6 +206,7 @@ files:
215
206
  - lib/lolita-report/rails.rb
216
207
  - lib/lolita-report/routes.rb
217
208
  - lolita-report.gemspec
209
+ - public/images/xls.png
218
210
  - spec/configuration/report_spec.rb
219
211
  - spec/configuration/reports_spec.rb
220
212
  - spec/factories/factories.rb
@@ -234,7 +226,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
234
226
  requirements:
235
227
  - - ">="
236
228
  - !ruby/object:Gem::Version
237
- hash: -493738605
229
+ hash: 1017491887
238
230
  segments:
239
231
  - 0
240
232
  version: "0"
@@ -1 +0,0 @@
1
- <%=raw report.table.to_html%>