make_exportable 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.
- data/Gemfile +12 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +187 -0
- data/Rakefile +50 -0
- data/VERSION +1 -0
- data/lib/make_exportable.rb +19 -0
- data/lib/make_exportable/core.rb +309 -0
- data/lib/make_exportable/errors.rb +7 -0
- data/lib/make_exportable/exportable_format.rb +33 -0
- data/lib/make_exportable/exportable_formats/csv.rb +34 -0
- data/lib/make_exportable/exportable_formats/excel.rb +39 -0
- data/lib/make_exportable/exportable_formats/html.rb +39 -0
- data/lib/make_exportable/exportable_formats/json.rb +36 -0
- data/lib/make_exportable/exportable_formats/tsv.rb +34 -0
- data/lib/make_exportable/exportable_formats/xml.rb +43 -0
- data/lib/make_exportable/make_exportable_helper.rb +27 -0
- data/lib/make_exportable/version.rb +9 -0
- data/rails/init.rb +1 -0
- data/spec/database.yml +10 -0
- data/spec/database.yml.sample +10 -0
- data/spec/make_exportable/formats_spec.rb +81 -0
- data/spec/make_exportable/make_exportable_helper_spec.rb +31 -0
- data/spec/make_exportable/make_exportable_spec.rb +510 -0
- data/spec/models.rb +44 -0
- data/spec/schema.rb +16 -0
- data/spec/spec_helper.rb +55 -0
- metadata +98 -0
data/spec/models.rb
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
class User < ActiveRecord::Base
|
2
|
+
|
3
|
+
has_many :posts
|
4
|
+
|
5
|
+
def self.nonsense_method_for_test
|
6
|
+
end
|
7
|
+
|
8
|
+
def full_name
|
9
|
+
"#{first_name} #{last_name}"
|
10
|
+
end
|
11
|
+
|
12
|
+
def is_admin
|
13
|
+
false
|
14
|
+
end
|
15
|
+
|
16
|
+
def admin_export
|
17
|
+
unless is_admin
|
18
|
+
"monkey"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
if ActiveRecord::VERSION::MAJOR >= 3
|
23
|
+
scope :a_limiter, :limit => 1
|
24
|
+
scope :order_by, :order => "ID DESC"
|
25
|
+
scope :nothing, :conditions => {:first_name => "unfound"}
|
26
|
+
else
|
27
|
+
named_scope :a_limiter, :limit => 1
|
28
|
+
named_scope :order_by, :order => "ID DESC"
|
29
|
+
named_scope :nothing, :conditions => {:first_name => "unfound"}
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
class Post < ActiveRecord::Base
|
35
|
+
|
36
|
+
belongs_to :user
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
class Unexportable < ActiveRecord::Base
|
41
|
+
|
42
|
+
belongs_to :user
|
43
|
+
|
44
|
+
end
|
data/spec/schema.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
ActiveRecord::Schema.define :version => 0 do
|
2
|
+
|
3
|
+
create_table :users, :force => true do |t|
|
4
|
+
t.string :first_name, :last_name, :password, :email
|
5
|
+
t.boolean :is_admin
|
6
|
+
t.timestamps
|
7
|
+
end
|
8
|
+
|
9
|
+
create_table :posts, :force => true do |t|
|
10
|
+
t.string :title
|
11
|
+
t.text :content
|
12
|
+
t.boolean :approved
|
13
|
+
t.timestamps
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
$LOAD_PATH << "." unless $LOAD_PATH.include?(".")
|
2
|
+
|
3
|
+
begin
|
4
|
+
require "rubygems"
|
5
|
+
require "bundler"
|
6
|
+
require "active_record"
|
7
|
+
require "fastercsv" unless ActiveRecord::VERSION::MAJOR >= 3
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
if Gem::Version.new(Bundler::VERSION) <= Gem::Version.new("0.9.5")
|
12
|
+
raise RuntimeError, "Your bundler version is too old." +
|
13
|
+
"Run `gem install bundler` to upgrade."
|
14
|
+
end
|
15
|
+
|
16
|
+
# Set up load paths for all bundled gems
|
17
|
+
Bundler.setup
|
18
|
+
rescue Bundler::GemNotFound
|
19
|
+
raise RuntimeError, "Bundler couldn't find some gems." +
|
20
|
+
"Did you run `bundle install`?"
|
21
|
+
end
|
22
|
+
|
23
|
+
Bundler.require(:default, :test)
|
24
|
+
|
25
|
+
require File.expand_path('../../lib/make_exportable', __FILE__)
|
26
|
+
Date::DATE_FORMATS[:default] = '%d/%m/%Y'
|
27
|
+
Time::DATE_FORMATS[:default] = '%A %B %d %Y at %I:%M%p'
|
28
|
+
|
29
|
+
ENV['DB'] ||= 'sqlite3'
|
30
|
+
|
31
|
+
database_yml = File.expand_path('../database.yml', __FILE__)
|
32
|
+
if File.exists?(database_yml)
|
33
|
+
active_record_configuration = YAML.load_file(database_yml)[ENV['DB']]
|
34
|
+
|
35
|
+
ActiveRecord::Base.establish_connection(active_record_configuration)
|
36
|
+
ActiveRecord::Base.logger = Logger.new(File.join(File.dirname(__FILE__), "debug.log"))
|
37
|
+
|
38
|
+
ActiveRecord::Base.silence do
|
39
|
+
ActiveRecord::Migration.verbose = false
|
40
|
+
|
41
|
+
load(File.dirname(__FILE__) + '/schema.rb')
|
42
|
+
load(File.dirname(__FILE__) + '/models.rb')
|
43
|
+
end
|
44
|
+
|
45
|
+
else
|
46
|
+
raise "Please create #{database_yml} first to configure your database. Take a look at: #{database_yml}.sample"
|
47
|
+
end
|
48
|
+
|
49
|
+
def clean_database!
|
50
|
+
models = [User, Post]
|
51
|
+
models.each do |model|
|
52
|
+
ActiveRecord::Base.connection.execute "DELETE FROM #{model.table_name}"
|
53
|
+
ActiveRecord::Base.connection.execute "delete from sqlite_sequence where name='#{model.table_name}'"
|
54
|
+
end
|
55
|
+
end
|
metadata
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: make_exportable
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 23
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 0
|
9
|
+
- 0
|
10
|
+
version: 1.0.0
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Kevin Skoglund
|
14
|
+
- Matthew Bergman
|
15
|
+
autorequire:
|
16
|
+
bindir: bin
|
17
|
+
cert_chain: []
|
18
|
+
|
19
|
+
date: 2010-06-21 00:00:00 -04:00
|
20
|
+
default_executable:
|
21
|
+
dependencies: []
|
22
|
+
|
23
|
+
description: MakeExportable is a Rails gem/plugin to assist in exporting application data as CSV, TSV, JSON, HTML, XML or Excel. Filter and limit the data exported using ActiveRecord. Export returned values from instance methods as easily as database columns.
|
24
|
+
email: kevin@novafabrica.com
|
25
|
+
executables: []
|
26
|
+
|
27
|
+
extensions: []
|
28
|
+
|
29
|
+
extra_rdoc_files:
|
30
|
+
- README.rdoc
|
31
|
+
files:
|
32
|
+
- Gemfile
|
33
|
+
- MIT-LICENSE
|
34
|
+
- README.rdoc
|
35
|
+
- Rakefile
|
36
|
+
- VERSION
|
37
|
+
- lib/make_exportable.rb
|
38
|
+
- lib/make_exportable/core.rb
|
39
|
+
- lib/make_exportable/errors.rb
|
40
|
+
- lib/make_exportable/exportable_format.rb
|
41
|
+
- lib/make_exportable/exportable_formats/csv.rb
|
42
|
+
- lib/make_exportable/exportable_formats/excel.rb
|
43
|
+
- lib/make_exportable/exportable_formats/html.rb
|
44
|
+
- lib/make_exportable/exportable_formats/json.rb
|
45
|
+
- lib/make_exportable/exportable_formats/tsv.rb
|
46
|
+
- lib/make_exportable/exportable_formats/xml.rb
|
47
|
+
- lib/make_exportable/make_exportable_helper.rb
|
48
|
+
- lib/make_exportable/version.rb
|
49
|
+
- rails/init.rb
|
50
|
+
- spec/database.yml
|
51
|
+
- spec/database.yml.sample
|
52
|
+
- spec/make_exportable/formats_spec.rb
|
53
|
+
- spec/make_exportable/make_exportable_helper_spec.rb
|
54
|
+
- spec/make_exportable/make_exportable_spec.rb
|
55
|
+
- spec/models.rb
|
56
|
+
- spec/schema.rb
|
57
|
+
- spec/spec_helper.rb
|
58
|
+
has_rdoc: true
|
59
|
+
homepage: http://github.com/novafabrica/make_exportable
|
60
|
+
licenses: []
|
61
|
+
|
62
|
+
post_install_message:
|
63
|
+
rdoc_options:
|
64
|
+
- --charset=UTF-8
|
65
|
+
require_paths:
|
66
|
+
- lib
|
67
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
68
|
+
none: false
|
69
|
+
requirements:
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
hash: 3
|
73
|
+
segments:
|
74
|
+
- 0
|
75
|
+
version: "0"
|
76
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
77
|
+
none: false
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
hash: 3
|
82
|
+
segments:
|
83
|
+
- 0
|
84
|
+
version: "0"
|
85
|
+
requirements: []
|
86
|
+
|
87
|
+
rubyforge_project:
|
88
|
+
rubygems_version: 1.3.7
|
89
|
+
signing_key:
|
90
|
+
specification_version: 3
|
91
|
+
summary: Makes any Rails model easily exportable
|
92
|
+
test_files:
|
93
|
+
- spec/make_exportable/formats_spec.rb
|
94
|
+
- spec/make_exportable/make_exportable_helper_spec.rb
|
95
|
+
- spec/make_exportable/make_exportable_spec.rb
|
96
|
+
- spec/models.rb
|
97
|
+
- spec/schema.rb
|
98
|
+
- spec/spec_helper.rb
|