active_scaffold_export_vho 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/.document ADDED
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ -
4
+ features/**/*.feature
5
+ LICENSE.txt
data/LICENSE.txt ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2011 vhochstein
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README ADDED
@@ -0,0 +1,5 @@
1
+ This is my version of the active_scaffold_export plugin.
2
+
3
+ It works with Rails 2.3 and both rails-2.3 and master branches of ActiveScaffold.
4
+
5
+ I have renamed the old activescaffoldexport plugin to follow the same pattern as the other ActiveScaffold related plugins.
data/Rakefile ADDED
@@ -0,0 +1,55 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ begin
4
+ Bundler.setup(:default, :development)
5
+ rescue Bundler::BundlerError => e
6
+ $stderr.puts e.message
7
+ $stderr.puts "Run `bundle install` to install missing gems"
8
+ exit e.status_code
9
+ end
10
+ require 'rake'
11
+
12
+ require 'jeweler'
13
+ require './lib/active_scaffold_export/version.rb'
14
+
15
+ Jeweler::Tasks.new do |gem|
16
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
+ gem.name = "active_scaffold_export_vho"
18
+ gem.version = ActiveScaffoldExport::Version::STRING
19
+ gem.homepage = "http://github.com/vhochstein/active_scaffold_export"
20
+ gem.license = "MIT"
21
+ gem.summary = %Q{Exporting Records with ActiveScaffold}
22
+ gem.description = %Q{Exporting Records with ActiveScaffold}
23
+ gem.email = "activescaffold@googlegroups.com"
24
+ gem.authors = ["Volker Hochstein"]
25
+ gem.add_runtime_dependency 'active_scaffold_vho', '~> 3.0'
26
+ # Include your dependencies below. Runtime dependencies are required when using your gem,
27
+ # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
28
+ # gem.add_runtime_dependency 'jabber4r', '> 0.1'
29
+ # gem.add_development_dependency 'rspec', '> 1.2.3'
30
+ end
31
+ Jeweler::RubygemsDotOrgTasks.new
32
+
33
+ require 'rake/testtask'
34
+ Rake::TestTask.new(:test) do |test|
35
+ test.libs << 'lib' << 'test'
36
+ test.pattern = 'test/**/test_*.rb'
37
+ test.verbose = true
38
+ end
39
+
40
+ require 'rcov/rcovtask'
41
+ Rcov::RcovTask.new do |test|
42
+ test.libs << 'test'
43
+ test.pattern = 'test/**/test_*.rb'
44
+ test.verbose = true
45
+ end
46
+
47
+ task :default => :test
48
+
49
+ require 'rake/rdoctask'
50
+ Rake::RDocTask.new do |rdoc|
51
+ rdoc.rdoc_dir = 'rdoc'
52
+ rdoc.title = "active_scaffold_export #{ActiveScaffoldExport::Version::STRING}"
53
+ rdoc.rdoc_files.include('README*')
54
+ rdoc.rdoc_files.include('lib/**/*.rb')
55
+ end
Binary file
@@ -0,0 +1,6 @@
1
+ /* IE hacks
2
+ ==================================== */
3
+ .active-scaffold-header div.actions a.export {
4
+ background-image: none;
5
+ filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../images/active_scaffold/default/export.png', sizingMethod='crop');
6
+ }
@@ -0,0 +1,27 @@
1
+ .active-scaffold-header div.actions a.show_export {
2
+ background-image: url(../../../images/active_scaffold/default/export.png);
3
+ background-position: 1px 50%;
4
+ background-repeat: no-repeat;
5
+ padding-left: 19px;
6
+ }
7
+ .active-scaffold div.show_export-view h3 {
8
+ font-weight: bold;
9
+ }
10
+ .active-scaffold div.show_export-view div.separator {
11
+ clear: both;
12
+ padding: .5em;
13
+ }
14
+ .active-scaffold div.show_export-view div.options div.separator {
15
+ padding: 0;
16
+ }
17
+ .active-scaffold div.show_export-view div.options div.checkbox-wrapper {
18
+ margin-bottom: .5em;
19
+ }
20
+ .active-scaffold div.show_export-view div div.checkbox-wrapper {
21
+ min-width: 20%;
22
+ margin-bottom: .25em;
23
+ float: left;
24
+ }
25
+ .active-scaffold div.show_export-view label #delimiter {
26
+ font-family: monospace;
27
+ }
@@ -0,0 +1,17 @@
1
+ <%
2
+ fcsv_options = {
3
+ :row_sep => "\n",
4
+ :col_sep => params[:delimiter],
5
+ :force_quotes => @export_config.force_quotes,
6
+ :headers => @export_columns.collect { |column| format_export_column_header_name(column) }
7
+ }
8
+
9
+ data = FasterCSV.generate(fcsv_options) do |csv|
10
+ csv << fcsv_options[:headers] unless params[:skip_header] == 'true'
11
+ @records.each do |record|
12
+ csv << @export_columns.collect { |column|
13
+ get_export_column_value(record, column)
14
+ }
15
+ end
16
+ end
17
+ -%><%= data.html_safe -%>
@@ -0,0 +1,28 @@
1
+ <% export_config = active_scaffold_config.export %>
2
+ <div class="columns checkbox-list">
3
+ <% export_config.columns.each do |column| -%>
4
+ <div class="column checkbox-wrapper">
5
+ <%= content_tag(:label, check_box_tag("export_columns[#{column.name}]", 1, !export_config.default_deselected_columns.include?(column.name)) + "&nbsp;#{column.label}".html_safe) %>
6
+ </div>
7
+ <% end -%>
8
+ &nbsp;
9
+ </div>
10
+ <div class="separator"></div>
11
+ <h3><%=as_('Options')%></h3>
12
+ <div class="options checkbox-list">
13
+ <div class="option checkbox-wrapper">
14
+ <%= content_tag(:label, check_box_tag('skip_header', 1, export_config.default_skip_header) + " #{as_('Omit Header')}".html_safe) %>
15
+ </div>
16
+ <div class="option checkbox-wrapper">
17
+ <%= content_tag(:label, text_field_tag('delimiter', export_config.default_delimiter, :size => 1, :maxlength => 1) + " #{as_('Delimiter')}".html_safe) %>
18
+ </div>
19
+ <div class="separator"></div>
20
+ <div class="option checkbox-wrapper">
21
+ <%= content_tag(:label, radio_button_tag('full_download', false, !export_config.default_full_download) + " #{as_('This Page')}".html_safe) if export_config.allow_full_download %>
22
+ </div>
23
+ <div class="option checkbox-wrapper">
24
+ <%= content_tag(:label, radio_button_tag('full_download', true, export_config.default_full_download) + " #{as_('All Pages')}".html_safe) if export_config.allow_full_download %>
25
+ </div>
26
+ &nbsp;
27
+ </div>
28
+ <div class="separator"></div>
@@ -0,0 +1,7 @@
1
+ <%= render :partial => "base_form", :locals => {:xhr => false,
2
+ :form_action => :export,
3
+ :url_options => params_for(:action => :export, :format => 'csv'),
4
+ :method => :get,
5
+ :cancel_link => true,
6
+ :headline => as_('Columns to Export'),
7
+ :body_partial => 'export_form_body'} %>
@@ -0,0 +1,5 @@
1
+ <div class="active-scaffold">
2
+ <div class="show-export view">
3
+ <%= render :partial => 'show_export' -%>
4
+ </div>
5
+ </div>
data/init.rb ADDED
@@ -0,0 +1,9 @@
1
+ ACTIVE_SCAFFOLD_EXPORT_INSTALLED = :plugin
2
+
3
+ require 'active_scaffold_export'
4
+
5
+ begin
6
+ ActiveScaffoldAssets.copy_to_public(ActiveScaffoldExport.root)
7
+ rescue
8
+ raise $! unless Rails.env == 'production'
9
+ end
@@ -0,0 +1,91 @@
1
+ module ActiveScaffold::Actions
2
+ module Export
3
+ def self.included(base)
4
+ base.before_filter :export_authorized?, :only => [:export]
5
+ base.before_filter :init_session_var
6
+
7
+ as_export_plugin_path = File.join(ActiveScaffold::Config::Export.plugin_directory, 'frontends', 'default' , 'views')
8
+
9
+ base.add_active_scaffold_path as_export_plugin_path
10
+ end
11
+
12
+ def init_session_var
13
+ session[:search] = params[:search] if !params[:search].nil? || params[:commit] == as_('Search')
14
+ end
15
+
16
+ # display the customization form or skip directly to export
17
+ def show_export
18
+ export_config = active_scaffold_config.export
19
+ respond_to do |wants|
20
+ wants.html do
21
+ render(:partial => 'show_export', :layout => true)
22
+ end
23
+ wants.js do
24
+ render(:partial => 'show_export', :layout => false)
25
+ end
26
+ end
27
+ end
28
+
29
+ # if invoked directly, will use default configuration
30
+ def export
31
+ export_config = active_scaffold_config.export
32
+ if params[:export_columns].nil?
33
+ export_columns = {}
34
+ export_config.columns.each { |col|
35
+ export_columns[col.name.to_sym] = 1
36
+ }
37
+ options = {
38
+ :export_columns => export_columns,
39
+ :full_download => export_config.default_full_download.to_s,
40
+ :delimiter => export_config.default_delimiter,
41
+ :skip_header => export_config.default_skip_header.to_s
42
+ }
43
+ params.merge!(options)
44
+ end
45
+
46
+ find_items_for_export
47
+
48
+ response.headers['Content-Disposition'] = "attachment; filename=#{export_file_name}"
49
+ render :partial => 'export', :layout => false, :content_type => Mime::CSV, :status => response_status
50
+ end
51
+
52
+ protected
53
+
54
+ # The actual algorithm to do the export
55
+ def find_items_for_export
56
+ export_config = active_scaffold_config.export
57
+ export_columns = export_config.columns.reject { |col| params[:export_columns][col.name.to_sym].nil? }
58
+
59
+ includes_for_export_columns = export_columns.collect{ |col| col.includes }.flatten.uniq.compact
60
+ self.active_scaffold_includes.concat includes_for_export_columns
61
+
62
+ find_options = { :sorting => active_scaffold_config.list.user.sorting }
63
+ params[:search] = session[:search]
64
+ do_search rescue nil
65
+ params[:segment_id] = session[:segment_id]
66
+ do_segment_search rescue nil
67
+ unless params[:full_download] == 'true'
68
+ find_options.merge!({
69
+ :per_page => active_scaffold_config.list.user.per_page,
70
+ :page => active_scaffold_config.list.user.page
71
+ })
72
+ end
73
+
74
+ @export_config = export_config
75
+ @export_columns = export_columns
76
+ @records = find_page(find_options).items
77
+ end
78
+
79
+ # The default name of the downloaded file.
80
+ # You may override the method to specify your own file name generation.
81
+ def export_file_name
82
+ "#{self.controller_name}.csv"
83
+ end
84
+
85
+ # The default security delegates to ActiveRecordPermissions.
86
+ # You may override the method to customize.
87
+ def export_authorized?
88
+ authorized_for?(:action => :read)
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,76 @@
1
+ module ActiveScaffold::Config
2
+ class Export < ActiveScaffold::Config::Form
3
+ self.crud_type = :read
4
+
5
+ def initialize(core_config)
6
+ @core = core_config
7
+ end
8
+
9
+ # global level configuration
10
+ # --------------------------
11
+ # the ActionLink for this action
12
+ cattr_accessor :link
13
+ @@link = ActiveScaffold::DataStructures::ActionLink.new('show_export', :label => :export, :type => :collection, :security_method => :export_authorized?)
14
+
15
+ # configures where the plugin itself is located. there is no instance version of this.
16
+ cattr_accessor :plugin_directory
17
+ @@plugin_directory = File.expand_path(__FILE__).match(%{(^.*)/lib/active_scaffold/config/export.rb})[1]
18
+
19
+
20
+ # instance-level configuration
21
+ # ----------------------------
22
+
23
+ attr_writer :link
24
+ def link
25
+ @link ||= if show_form
26
+ self.class.link.clone
27
+ else
28
+ ActiveScaffold::DataStructures::ActionLink.new('export', :label => :export, :type => :collection, :inline => false, :security_method => :export_authorized?)
29
+ end
30
+ end
31
+
32
+ attr_writer :show_form, :allow_full_download, :force_quotes, :default_full_download, :default_delimiter, :default_skip_header, :default_deselected_columns
33
+ def show_form
34
+ self.show_form = @core.export_show_form if @show_form.nil?
35
+ @show_form
36
+ end
37
+ def allow_full_download
38
+ self.allow_full_download = @core.export_allow_full_download if @allow_full_download.nil?
39
+ @allow_full_download
40
+ end
41
+ def force_quotes
42
+ self.force_quotes = @core.export_force_quotes if @force_quotes.nil?
43
+ @force_quotes
44
+ end
45
+ def default_full_download
46
+ self.default_full_download = @core.export_default_full_download if @default_full_download.nil?
47
+ @default_full_download
48
+ end
49
+ def default_delimiter
50
+ self.default_delimiter = @core.export_default_delimiter if @default_delimiter.nil?
51
+ @default_delimiter
52
+ end
53
+ def default_skip_header
54
+ self.default_skip_header = @core.export_default_skip_header if @default_skip_header.nil?
55
+ @default_skip_header
56
+ end
57
+ def default_deselected_columns
58
+ self.default_deselected_columns = [] if @default_deselected_columns.nil?
59
+ @default_deselected_columns
60
+ end
61
+
62
+ # provides access to the list of columns specifically meant for this action to use
63
+ def columns
64
+ self.columns = @core.columns._inheritable unless @columns
65
+ @columns
66
+ end
67
+ def columns=(val)
68
+ @columns = ActiveScaffold::DataStructures::ActionColumns.new(*val)
69
+ @columns.action = self
70
+ end
71
+
72
+ def multipart?
73
+ false
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,76 @@
1
+ module ActiveScaffold
2
+ module Helpers
3
+ # Helpers that assist with the rendering of a Export Column
4
+ module ExportHelpers
5
+ def self.included(base)
6
+ base.alias_method_chain :active_scaffold_stylesheets, :export
7
+ base.alias_method_chain :active_scaffold_ie_stylesheets, :export
8
+ end
9
+
10
+ # Provides stylesheets to include with +stylesheet_link_tag+
11
+ def active_scaffold_stylesheets_with_export(frontend = :default)
12
+ active_scaffold_stylesheets_without_export.to_a << ActiveScaffold::Config::Core.asset_path("export-stylesheet.css", frontend)
13
+ end
14
+
15
+
16
+ # Provides stylesheets for IE to include with +stylesheet_link_tag+
17
+ def active_scaffold_ie_stylesheets_with_export(frontend = :default)
18
+ active_scaffold_ie_stylesheets_without_export.to_a << ActiveScaffold::Config::Core.asset_path("export-stylesheet-ie.css", frontend)
19
+ end
20
+
21
+ ## individual columns can be overridden by defining
22
+ # a helper method <column_name>_export_column(record)
23
+ # You can customize the output of all columns by
24
+ # overriding the following helper methods:
25
+ # format_export_column(raw_value)
26
+ # format_singular_association_export_column(association_record)
27
+ # format_plural_association_export_column(association_records)
28
+ def get_export_column_value(record, column)
29
+ if export_column_override? column
30
+ send(export_column_override(column), record)
31
+ else
32
+ raw_value = record.send(column.name)
33
+
34
+ if column.association.nil? or column_empty?(raw_value)
35
+ format_export_column(raw_value)
36
+ else
37
+ case column.association.macro
38
+ when :has_one, :belongs_to
39
+ format_singular_association_export_column(raw_value)
40
+ when :has_many, :has_and_belongs_to_many
41
+ format_plural_association_export_column(raw_value)
42
+ end
43
+ end
44
+ end
45
+ end
46
+
47
+ def export_column_override(column)
48
+ "#{column.name.to_s.gsub('?', '')}_export_column" # parse out any question marks (see issue 227)
49
+ end
50
+
51
+ def export_column_override?(column)
52
+ respond_to?(export_column_override(column))
53
+ end
54
+
55
+ def format_export_column(raw_value)
56
+ format_value(raw_value)
57
+ end
58
+
59
+ def format_singular_association_export_column(association_record)
60
+ format_value(association_record.to_label)
61
+ end
62
+
63
+ def format_plural_association_export_column(association_records)
64
+ firsts = association_records.first(4).collect { |v| v.to_label }
65
+ firsts[3] = ' ' if firsts.length == 4
66
+ format_value(firsts.join(','))
67
+ end
68
+
69
+ ## This helper can be overridden to change the way that the headers
70
+ # are formatted. For instance, you might want column.name.to_s.humanize
71
+ def format_export_column_header_name(column)
72
+ column.name.to_s
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,17 @@
1
+ # Need to open the AS module carefully due to Rails 2.3 lazy loading
2
+ ActiveScaffold::Config::Core.class_eval do
3
+ # For some note obvious reasons, the class variables need to be defined
4
+ # *before* the cattr !!
5
+ @@export_show_form = true
6
+ @@export_allow_full_download = true
7
+ @@export_default_full_download = true
8
+ @@export_force_quotes = false
9
+ @@export_default_skip_header = false
10
+ @@export_default_delimiter = ','
11
+ cattr_accessor :export_show_form, :export_allow_full_download,
12
+ :export_force_quotes, :export_default_full_download,
13
+ :export_default_delimiter, :export_default_skip_header
14
+
15
+ ActionDispatch::Routing::ACTIVE_SCAFFOLD_CORE_ROUTING[:collection][:show_export] = :get
16
+ ActionDispatch::Routing::ACTIVE_SCAFFOLD_CORE_ROUTING[:collection][:export] = :get
17
+ end
@@ -0,0 +1,9 @@
1
+ module ActiveScaffoldExport
2
+ module Version
3
+ MAJOR = 3
4
+ MINOR = 0
5
+ PATCH = 0
6
+
7
+ STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
+ end
9
+ end
@@ -0,0 +1,39 @@
1
+ ActiveScaffold rescue throw "should have included ActiveScaffold plug in first. Please make sure that this plug-in comes alphabetically after the ActiveScaffold plug-in"
2
+
3
+ # Load our overrides
4
+ require "#{File.dirname(__FILE__)}/active_scaffold_export/config/core.rb"
5
+
6
+ module ActiveScaffoldExport
7
+ def self.root
8
+ File.dirname(__FILE__) + "/.."
9
+ end
10
+ end
11
+
12
+ module ActiveScaffold
13
+ module Actions
14
+ ActiveScaffold.autoload_subdir('actions', self, File.dirname(__FILE__))
15
+ end
16
+
17
+ module Config
18
+ ActiveScaffold.autoload_subdir('config', self, File.dirname(__FILE__))
19
+ end
20
+
21
+ module Helpers
22
+ ActiveScaffold.autoload_subdir('helpers', self, File.dirname(__FILE__))
23
+ end
24
+ end
25
+
26
+ ActionView::Base.send(:include, ActiveScaffold::Helpers::ExportHelpers)
27
+
28
+
29
+ ##
30
+ ## Run the install assets script, too, just to make sure
31
+ ## But at least rescue the action in production
32
+ ##
33
+ Rails::Application.initializer("active_scaffold_export.install_assets", :after => "active_scaffold.install_assets") do
34
+ begin
35
+ ActiveScaffoldAssets.copy_to_public(ActiveScaffoldExport.root)
36
+ rescue
37
+ raise $! unless Rails.env == 'production'
38
+ end
39
+ end unless defined?(ACTIVE_SCAFFOLD_EXPORT_INSTALLED) && ACTIVE_SCAFFOLD_EXPORT_INSTALLED == :plugin
@@ -0,0 +1,2 @@
1
+ ACTIVE_SCAFFOLD_EXPORT_INSTALLED = :gem
2
+ require 'active_scaffold_export'
metadata ADDED
@@ -0,0 +1,160 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: active_scaffold_export_vho
3
+ version: !ruby/object:Gem::Version
4
+ hash: 7
5
+ prerelease: false
6
+ segments:
7
+ - 3
8
+ - 0
9
+ - 0
10
+ version: 3.0.0
11
+ platform: ruby
12
+ authors:
13
+ - Volker Hochstein
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-01-26 00:00:00 +01:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ prerelease: false
23
+ name: shoulda
24
+ version_requirements: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
32
+ version: "0"
33
+ requirement: *id001
34
+ type: :development
35
+ - !ruby/object:Gem::Dependency
36
+ prerelease: false
37
+ name: bundler
38
+ version_requirements: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ hash: 23
44
+ segments:
45
+ - 1
46
+ - 0
47
+ - 0
48
+ version: 1.0.0
49
+ requirement: *id002
50
+ type: :development
51
+ - !ruby/object:Gem::Dependency
52
+ prerelease: false
53
+ name: jeweler
54
+ version_requirements: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ~>
58
+ - !ruby/object:Gem::Version
59
+ hash: 7
60
+ segments:
61
+ - 1
62
+ - 5
63
+ - 2
64
+ version: 1.5.2
65
+ requirement: *id003
66
+ type: :development
67
+ - !ruby/object:Gem::Dependency
68
+ prerelease: false
69
+ name: rcov
70
+ version_requirements: &id004 !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ hash: 3
76
+ segments:
77
+ - 0
78
+ version: "0"
79
+ requirement: *id004
80
+ type: :development
81
+ - !ruby/object:Gem::Dependency
82
+ prerelease: false
83
+ name: active_scaffold_vho
84
+ version_requirements: &id005 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ hash: 7
90
+ segments:
91
+ - 3
92
+ - 0
93
+ version: "3.0"
94
+ requirement: *id005
95
+ type: :runtime
96
+ description: Exporting Records with ActiveScaffold
97
+ email: activescaffold@googlegroups.com
98
+ executables: []
99
+
100
+ extensions: []
101
+
102
+ extra_rdoc_files:
103
+ - LICENSE.txt
104
+ - README
105
+ files:
106
+ - .document
107
+ - LICENSE.txt
108
+ - README
109
+ - Rakefile
110
+ - frontends/default/images/export.png
111
+ - frontends/default/stylesheets/export-stylesheet-ie.css
112
+ - frontends/default/stylesheets/export-stylesheet.css
113
+ - frontends/default/views/_export.csv.erb
114
+ - frontends/default/views/_export_form_body.html.erb
115
+ - frontends/default/views/_show_export.html.erb
116
+ - frontends/default/views/show_export.html.erb
117
+ - init.rb
118
+ - lib/active_scaffold/actions/export.rb
119
+ - lib/active_scaffold/config/export.rb
120
+ - lib/active_scaffold/helpers/export_helpers.rb
121
+ - lib/active_scaffold_export.rb
122
+ - lib/active_scaffold_export/config/core.rb
123
+ - lib/active_scaffold_export/version.rb
124
+ - lib/active_scaffold_export_vho.rb
125
+ has_rdoc: true
126
+ homepage: http://github.com/vhochstein/active_scaffold_export
127
+ licenses:
128
+ - MIT
129
+ post_install_message:
130
+ rdoc_options: []
131
+
132
+ require_paths:
133
+ - lib
134
+ required_ruby_version: !ruby/object:Gem::Requirement
135
+ none: false
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ hash: 3
140
+ segments:
141
+ - 0
142
+ version: "0"
143
+ required_rubygems_version: !ruby/object:Gem::Requirement
144
+ none: false
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ hash: 3
149
+ segments:
150
+ - 0
151
+ version: "0"
152
+ requirements: []
153
+
154
+ rubyforge_project:
155
+ rubygems_version: 1.3.7
156
+ signing_key:
157
+ specification_version: 3
158
+ summary: Exporting Records with ActiveScaffold
159
+ test_files: []
160
+