acts_as_xlsx 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/CHANGELOG.md +0 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +32 -0
- data/LICENSE +22 -0
- data/README.md +95 -0
- data/Rakefile +18 -0
- data/acts_as_xlsx.gemspec +38 -0
- data/doc/Axlsx.html +124 -0
- data/doc/Axlsx/Ar.html +199 -0
- data/doc/Axlsx/Ar/ClassMethods.html +259 -0
- data/doc/Axlsx/Ar/InstanceMethods.html +188 -0
- data/doc/Axlsx/Ar/SingletonMethods.html +348 -0
- data/doc/_index.html +146 -0
- data/doc/class_list.html +47 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +55 -0
- data/doc/css/style.css +322 -0
- data/doc/file.LICENSE.html +86 -0
- data/doc/file.README.html +166 -0
- data/doc/file_list.html +52 -0
- data/doc/frames.html +13 -0
- data/doc/index.html +166 -0
- data/doc/js/app.js +205 -0
- data/doc/js/full_list.js +167 -0
- data/doc/js/jquery.js +16 -0
- data/doc/method_list.html +70 -0
- data/doc/top-level-namespace.html +103 -0
- data/lib/axlsx/acts_as_xlsx.rb +87 -0
- data/test/acts_as_xlsx.sqlite3.db +0 -0
- data/test/database.yml +3 -0
- data/test/helper.rb +72 -0
- data/test/tc_acts_as_xlsx.rb +49 -0
- metadata +157 -0
| @@ -0,0 +1,103 @@ | |
| 1 | 
            +
            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
         | 
| 2 | 
            +
              "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
         | 
| 3 | 
            +
            <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
         | 
| 4 | 
            +
              <head>
         | 
| 5 | 
            +
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
         | 
| 6 | 
            +
            <title>
         | 
| 7 | 
            +
              Top Level Namespace
         | 
| 8 | 
            +
              
         | 
| 9 | 
            +
                — Acts As Xlsx (Axlsx)
         | 
| 10 | 
            +
              
         | 
| 11 | 
            +
            </title>
         | 
| 12 | 
            +
             | 
| 13 | 
            +
              <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
         | 
| 14 | 
            +
             | 
| 15 | 
            +
              <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            <script type="text/javascript" charset="utf-8">
         | 
| 18 | 
            +
              relpath = '';
         | 
| 19 | 
            +
              if (relpath != '') relpath += '/';
         | 
| 20 | 
            +
            </script>
         | 
| 21 | 
            +
             | 
| 22 | 
            +
              <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
         | 
| 23 | 
            +
             | 
| 24 | 
            +
              <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
         | 
| 25 | 
            +
             | 
| 26 | 
            +
             | 
| 27 | 
            +
              </head>
         | 
| 28 | 
            +
              <body>
         | 
| 29 | 
            +
                <script type="text/javascript" charset="utf-8">
         | 
| 30 | 
            +
                  if (window.top.frames.main) document.body.className = 'frames';
         | 
| 31 | 
            +
                </script>
         | 
| 32 | 
            +
                
         | 
| 33 | 
            +
                <div id="header">
         | 
| 34 | 
            +
                  <div id="menu">
         | 
| 35 | 
            +
              
         | 
| 36 | 
            +
                <a href="_index.html">Index</a> » 
         | 
| 37 | 
            +
                
         | 
| 38 | 
            +
                
         | 
| 39 | 
            +
                <span class="title">Top Level Namespace</span>
         | 
| 40 | 
            +
              
         | 
| 41 | 
            +
              
         | 
| 42 | 
            +
              <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
         | 
| 43 | 
            +
            </div>
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                  <div id="search">
         | 
| 46 | 
            +
              
         | 
| 47 | 
            +
                <a id="class_list_link" href="#">Class List</a>
         | 
| 48 | 
            +
              
         | 
| 49 | 
            +
                <a id="method_list_link" href="#">Method List</a>
         | 
| 50 | 
            +
              
         | 
| 51 | 
            +
                <a id="file_list_link" href="#">File List</a>
         | 
| 52 | 
            +
              
         | 
| 53 | 
            +
            </div>
         | 
| 54 | 
            +
                  <div class="clear"></div>
         | 
| 55 | 
            +
                </div>
         | 
| 56 | 
            +
                
         | 
| 57 | 
            +
                <iframe id="search_frame"></iframe>
         | 
| 58 | 
            +
                
         | 
| 59 | 
            +
                <div id="content"><h1>Top Level Namespace
         | 
| 60 | 
            +
              
         | 
| 61 | 
            +
              
         | 
| 62 | 
            +
              
         | 
| 63 | 
            +
            </h1>
         | 
| 64 | 
            +
             | 
| 65 | 
            +
            <dl class="box">
         | 
| 66 | 
            +
              
         | 
| 67 | 
            +
              
         | 
| 68 | 
            +
                
         | 
| 69 | 
            +
              
         | 
| 70 | 
            +
                
         | 
| 71 | 
            +
              
         | 
| 72 | 
            +
              
         | 
| 73 | 
            +
              
         | 
| 74 | 
            +
            </dl>
         | 
| 75 | 
            +
            <div class="clear"></div>
         | 
| 76 | 
            +
             | 
| 77 | 
            +
            <h2>Defined Under Namespace</h2>
         | 
| 78 | 
            +
            <p class="children">
         | 
| 79 | 
            +
               
         | 
| 80 | 
            +
                
         | 
| 81 | 
            +
                  <strong class="modules">Modules:</strong> <span class='object_link'><a href="Axlsx.html" title="Axlsx (module)">Axlsx</a></span>
         | 
| 82 | 
            +
                
         | 
| 83 | 
            +
               
         | 
| 84 | 
            +
                
         | 
| 85 | 
            +
              
         | 
| 86 | 
            +
            </p>
         | 
| 87 | 
            +
             | 
| 88 | 
            +
             | 
| 89 | 
            +
             | 
| 90 | 
            +
             | 
| 91 | 
            +
             | 
| 92 | 
            +
             | 
| 93 | 
            +
             | 
| 94 | 
            +
            </div>
         | 
| 95 | 
            +
                
         | 
| 96 | 
            +
                <div id="footer">
         | 
| 97 | 
            +
              Generated on Thu Dec  1 00:04:39 2011 by 
         | 
| 98 | 
            +
              <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
         | 
| 99 | 
            +
              0.7.3 (ruby-1.9.3).
         | 
| 100 | 
            +
            </div>
         | 
| 101 | 
            +
             | 
| 102 | 
            +
              </body>
         | 
| 103 | 
            +
            </html>
         | 
| @@ -0,0 +1,87 @@ | |
| 1 | 
            +
            # Axlsx is a gem or generating excel spreadsheets with charts, images and many other features. 
         | 
| 2 | 
            +
            # 
         | 
| 3 | 
            +
            # acts_as_xlsx provides integration into active_record for Axlsx.
         | 
| 4 | 
            +
            # 
         | 
| 5 | 
            +
            require 'axlsx'
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            # Adding to the Axlsx module 
         | 
| 8 | 
            +
            # @see http://github.com/randym/axlsx
         | 
| 9 | 
            +
            module Axlsx
         | 
| 10 | 
            +
              # === Overview
         | 
| 11 | 
            +
              # This module defines the acts_as_xlsx class method and provides to_xlsx support to both AR classes and instances
         | 
| 12 | 
            +
              module Ar
         | 
| 13 | 
            +
                
         | 
| 14 | 
            +
                def self.included(base) # :nodoc:
         | 
| 15 | 
            +
                  base.send :extend, ClassMethods
         | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
                
         | 
| 18 | 
            +
                # Class methods for the mixin
         | 
| 19 | 
            +
                module ClassMethods
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                  # defines the class method to inject to_xlsx
         | 
| 22 | 
            +
                  # @option options [Array, Symbol] columns an array of symbols defining the columns and methods to call in generating sheet data for each row.
         | 
| 23 | 
            +
                  # @option options [String] i18n (default nil) The path to search for localization. When this is specified your i18n.t will be used to determine the labels for columns.
         | 
| 24 | 
            +
                  # @example
         | 
| 25 | 
            +
                  #       class MyModel < ActiveRecord::Base
         | 
| 26 | 
            +
                  #          acts_as_xlsx :columns=> [:id, :created_at, :updated_at], :i18n => 'activerecord.attributes'
         | 
| 27 | 
            +
                  def acts_as_xlsx(options={})
         | 
| 28 | 
            +
                    cattr_accessor :xlsx_i18n, :xlsx_columns
         | 
| 29 | 
            +
                    self.xlsx_i18n = options.delete(:i18n) || false
         | 
| 30 | 
            +
                    self.xlsx_columns = options.delete(:columns) ||  self.column_names.map { |c| c = c.to_sym }
         | 
| 31 | 
            +
                    extend Axlsx::Ar::SingletonMethods
         | 
| 32 | 
            +
                  end
         | 
| 33 | 
            +
                end
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                # Singleton methods for the mixin
         | 
| 36 | 
            +
                module SingletonMethods
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                  # Maps the AR class to an Axlsx package
         | 
| 39 | 
            +
                  # options are passed into AR find
         | 
| 40 | 
            +
                  # @param [Array, Array] columns as an array of symbols or a symbol that defines the attributes or methods to render in the sheet.
         | 
| 41 | 
            +
                  # @option options [Integer] header_style to apply to the first row of field names
         | 
| 42 | 
            +
                  # @option options [Array, Symbol] an array of Axlsx types for each cell in data rows or a single type that will be applied to all types.
         | 
| 43 | 
            +
                  # @option options [Integer, Array] style The style to pass to Worksheet#add_row
         | 
| 44 | 
            +
                  # @option options [String] i18n The path to i18n attributes. (usually activerecord.attributes)
         | 
| 45 | 
            +
                  # @see Worksheet#add_row
         | 
| 46 | 
            +
                  def to_xlsx(options = {})
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                    row_style = options.delete(:style)
         | 
| 49 | 
            +
                    header_style = options.delete(:header_style) || row_style
         | 
| 50 | 
            +
                    types = [options.delete(:types) || []].flatten
         | 
| 51 | 
            +
             | 
| 52 | 
            +
                    i18n = options.delete(:i18n) || self.xlsx_i18n
         | 
| 53 | 
            +
                    columns = options.delete(:columns) || self.xlsx_columns
         | 
| 54 | 
            +
             | 
| 55 | 
            +
                    p = Package.new
         | 
| 56 | 
            +
                    row_style = p.workbook.styles.add_style(row_style) unless row_style.nil?
         | 
| 57 | 
            +
                    header_style = p.workbook.styles.add_style(header_style) unless header_style.nil?
         | 
| 58 | 
            +
             | 
| 59 | 
            +
                    data = [*find(:all, options)]
         | 
| 60 | 
            +
                    data.compact!
         | 
| 61 | 
            +
                    data.flatten!
         | 
| 62 | 
            +
             | 
| 63 | 
            +
                    return p if data.empty?
         | 
| 64 | 
            +
                    p.workbook.add_worksheet(:name=>table_name.humanize) do |sheet|
         | 
| 65 | 
            +
                      
         | 
| 66 | 
            +
                      col_labels = if i18n
         | 
| 67 | 
            +
                                     columns.map { |c| I18n.t("#{i18n}.#{self.name.underscore}.#{c}") }                         
         | 
| 68 | 
            +
                                   else
         | 
| 69 | 
            +
                                     columns.map { |c| c.to_s.humanize }
         | 
| 70 | 
            +
                                   end
         | 
| 71 | 
            +
                      
         | 
| 72 | 
            +
                      sheet.add_row col_labels, :style=>header_style
         | 
| 73 | 
            +
                      
         | 
| 74 | 
            +
                      data.each do |r|
         | 
| 75 | 
            +
                        sheet.add_row columns.map { |c| r.send(c) }, :style=>row_style, :types=>types
         | 
| 76 | 
            +
                      end
         | 
| 77 | 
            +
                    end
         | 
| 78 | 
            +
                    p
         | 
| 79 | 
            +
                  end
         | 
| 80 | 
            +
                end
         | 
| 81 | 
            +
              end
         | 
| 82 | 
            +
            end
         | 
| 83 | 
            +
             | 
| 84 | 
            +
            require 'active_record'
         | 
| 85 | 
            +
            ActiveRecord::Base.send :include, Axlsx::Ar
         | 
| 86 | 
            +
             | 
| 87 | 
            +
             | 
| Binary file | 
    
        data/test/database.yml
    ADDED
    
    
    
        data/test/helper.rb
    ADDED
    
    | @@ -0,0 +1,72 @@ | |
| 1 | 
            +
              config = YAML::load(IO.read(File.dirname(__FILE__) + '/database.yml'))
         | 
| 2 | 
            +
              ActiveRecord::Base.establish_connection(config['sqlite3'])
         | 
| 3 | 
            +
              ActiveRecord::Schema.define(:version => 0) do
         | 
| 4 | 
            +
                begin
         | 
| 5 | 
            +
                drop_table :author, :force => true
         | 
| 6 | 
            +
                drop_table :authors, :force => true
         | 
| 7 | 
            +
                drop_table :comments, :force => true
         | 
| 8 | 
            +
                drop_table :posts, :force => true
         | 
| 9 | 
            +
                rescue
         | 
| 10 | 
            +
                  #dont really care if the tables are not dropped
         | 
| 11 | 
            +
                end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                create_table(:authors, :force => true) do |t|
         | 
| 14 | 
            +
                  t.string :name
         | 
| 15 | 
            +
                end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                create_table(:comments, :force => true) do |t|
         | 
| 18 | 
            +
                  t.text :content
         | 
| 19 | 
            +
                  t.integer :post_id
         | 
| 20 | 
            +
                  t.integer :author_id
         | 
| 21 | 
            +
                  t.timestamps
         | 
| 22 | 
            +
                end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                 create_table(:posts, :force => true) do |t|
         | 
| 25 | 
            +
                  t.string :name
         | 
| 26 | 
            +
                  t.string :title
         | 
| 27 | 
            +
                  t.text :content
         | 
| 28 | 
            +
                  t.integer :votes
         | 
| 29 | 
            +
                  t.timestamps
         | 
| 30 | 
            +
                end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
              end
         | 
| 33 | 
            +
              
         | 
| 34 | 
            +
            class Author < ActiveRecord::Base
         | 
| 35 | 
            +
              acts_as_xlsx
         | 
| 36 | 
            +
              has_many :comments
         | 
| 37 | 
            +
            end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
            class Comment < ActiveRecord::Base
         | 
| 40 | 
            +
              acts_as_xlsx
         | 
| 41 | 
            +
              belongs_to :post
         | 
| 42 | 
            +
              belongs_to :author
         | 
| 43 | 
            +
            end
         | 
| 44 | 
            +
             | 
| 45 | 
            +
            class Post < ActiveRecord::Base
         | 
| 46 | 
            +
              acts_as_xlsx
         | 
| 47 | 
            +
              has_many :comments
         | 
| 48 | 
            +
              def ranking
         | 
| 49 | 
            +
                a = Post.find(:all, :order =>"votes desc")      
         | 
| 50 | 
            +
                a.index(self) + 1
         | 
| 51 | 
            +
              end  
         | 
| 52 | 
            +
              def last_comment
         | 
| 53 | 
            +
                self.comments.last.content
         | 
| 54 | 
            +
              end
         | 
| 55 | 
            +
            end
         | 
| 56 | 
            +
             | 
| 57 | 
            +
              posts = []
         | 
| 58 | 
            +
              posts << Post.new(:name => "first post", :title => "This is the first post", :content=> "I am a very good first post!", :votes => 1)
         | 
| 59 | 
            +
              posts << Post.new(:name => "second post", :title => "This is the second post", :content=> "I am the best post!", :votes => 7)
         | 
| 60 | 
            +
              posts.each { |p| p.save! }
         | 
| 61 | 
            +
             | 
| 62 | 
            +
              authors = []
         | 
| 63 | 
            +
              authors << Author.new(:name => 'bob')
         | 
| 64 | 
            +
              authors << Author.new(:name => 'joe')
         | 
| 65 | 
            +
             | 
| 66 | 
            +
              comments = []
         | 
| 67 | 
            +
              comments << Comment.new(:post => posts[0], :content => "wow, that was a nice post!", :author=>authors[1])
         | 
| 68 | 
            +
              comments << Comment.new(:content => "Are you really the best post?", :post => posts[1], :author=>authors[0])
         | 
| 69 | 
            +
              comments << Comment.new(:content => "Only until someone posts better!", :post => posts[1], :author=>authors[0])
         | 
| 70 | 
            +
              comments.each { |c| c.save }
         | 
| 71 | 
            +
             | 
| 72 | 
            +
             | 
| @@ -0,0 +1,49 @@ | |
| 1 | 
            +
            #!/usr/bin/env ruby -w
         | 
| 2 | 
            +
            require 'test/unit'
         | 
| 3 | 
            +
            require "axlsx/acts_as_xlsx"
         | 
| 4 | 
            +
            require 'active_record'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            class TestActsAsXlsx < Test::Unit::TestCase
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              class Post < ActiveRecord::Base
         | 
| 11 | 
            +
                acts_as_xlsx :columns=>[:name, :title, :content, :votes, :ranking], :i18n => 'activerecord.attributes'
         | 
| 12 | 
            +
              end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
              def test_xlsx_options
         | 
| 15 | 
            +
                assert_equal([:name, :title, :content, :votes, :ranking], Post.xlsx_columns)
         | 
| 16 | 
            +
                assert_equal('activerecord.attributes', Post.xlsx_i18n)
         | 
| 17 | 
            +
              end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            class TestToXlsx < Test::Unit::TestCase
         | 
| 22 | 
            +
             | 
| 23 | 
            +
              def test_xlsx_columns
         | 
| 24 | 
            +
                assert_equal( Post.xlsx_columns, Post.column_names.map {|c| c.to_sym})
         | 
| 25 | 
            +
              end
         | 
| 26 | 
            +
             | 
| 27 | 
            +
              def test_to_xslx_vanilla
         | 
| 28 | 
            +
                p = Post.to_xlsx
         | 
| 29 | 
            +
                assert_equal("Id",p.workbook.worksheets.first.rows.first.cells.first.value)
         | 
| 30 | 
            +
                assert_equal(2,p.workbook.worksheets.first.rows.last.cells.first.value)
         | 
| 31 | 
            +
              end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
              def test_columns
         | 
| 34 | 
            +
                p = Post.to_xlsx :columns => [:name, :title, :content, :votes]
         | 
| 35 | 
            +
                sheet = p.workbook.worksheets.first
         | 
| 36 | 
            +
                assert_equal(sheet.rows.first.cells.size, Post.xlsx_columns.size - 3)
         | 
| 37 | 
            +
                assert_equal("Name",sheet.rows.first.cells.first.value)
         | 
| 38 | 
            +
                assert_equal(7,sheet.rows.last.cells.last.value)
         | 
| 39 | 
            +
              end
         | 
| 40 | 
            +
             | 
| 41 | 
            +
              def test_method_in_columns
         | 
| 42 | 
            +
                p = Post.to_xlsx :columns=>[:name, :votes, :content, :ranking]
         | 
| 43 | 
            +
                sheet = p.workbook.worksheets.first
         | 
| 44 | 
            +
                assert_equal("Name", sheet.rows.first.cells.first.value)
         | 
| 45 | 
            +
                assert_equal(Post.last.ranking, sheet.rows.last.cells.last.value)
         | 
| 46 | 
            +
              end
         | 
| 47 | 
            +
            end
         | 
| 48 | 
            +
             | 
| 49 | 
            +
             | 
    
        metadata
    ADDED
    
    | @@ -0,0 +1,157 @@ | |
| 1 | 
            +
            --- !ruby/object:Gem::Specification
         | 
| 2 | 
            +
            name: acts_as_xlsx
         | 
| 3 | 
            +
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            +
              version: 1.0.0
         | 
| 5 | 
            +
              prerelease: 
         | 
| 6 | 
            +
            platform: ruby
         | 
| 7 | 
            +
            authors:
         | 
| 8 | 
            +
            - Randy Morgan
         | 
| 9 | 
            +
            autorequire: 
         | 
| 10 | 
            +
            bindir: bin
         | 
| 11 | 
            +
            cert_chain: []
         | 
| 12 | 
            +
            date: 2011-12-01 00:00:00.000000000 Z
         | 
| 13 | 
            +
            dependencies:
         | 
| 14 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 15 | 
            +
              name: axlsx
         | 
| 16 | 
            +
              requirement: &2153137140 !ruby/object:Gem::Requirement
         | 
| 17 | 
            +
                none: false
         | 
| 18 | 
            +
                requirements:
         | 
| 19 | 
            +
                - - ! '>='
         | 
| 20 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 21 | 
            +
                    version: 1.0.10
         | 
| 22 | 
            +
              type: :runtime
         | 
| 23 | 
            +
              prerelease: false
         | 
| 24 | 
            +
              version_requirements: *2153137140
         | 
| 25 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 26 | 
            +
              name: activerecord
         | 
| 27 | 
            +
              requirement: &2153136660 !ruby/object:Gem::Requirement
         | 
| 28 | 
            +
                none: false
         | 
| 29 | 
            +
                requirements:
         | 
| 30 | 
            +
                - - ! '>='
         | 
| 31 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 32 | 
            +
                    version: 2.3.9
         | 
| 33 | 
            +
              type: :runtime
         | 
| 34 | 
            +
              prerelease: false
         | 
| 35 | 
            +
              version_requirements: *2153136660
         | 
| 36 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 37 | 
            +
              name: i18n
         | 
| 38 | 
            +
              requirement: &2153135840 !ruby/object:Gem::Requirement
         | 
| 39 | 
            +
                none: false
         | 
| 40 | 
            +
                requirements:
         | 
| 41 | 
            +
                - - ! '>='
         | 
| 42 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 43 | 
            +
                    version: 0.6.0
         | 
| 44 | 
            +
              type: :runtime
         | 
| 45 | 
            +
              prerelease: false
         | 
| 46 | 
            +
              version_requirements: *2153135840
         | 
| 47 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 48 | 
            +
              name: yard
         | 
| 49 | 
            +
              requirement: &2153135180 !ruby/object:Gem::Requirement
         | 
| 50 | 
            +
                none: false
         | 
| 51 | 
            +
                requirements:
         | 
| 52 | 
            +
                - - ! '>='
         | 
| 53 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            +
                    version: '0'
         | 
| 55 | 
            +
              type: :runtime
         | 
| 56 | 
            +
              prerelease: false
         | 
| 57 | 
            +
              version_requirements: *2153135180
         | 
| 58 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 59 | 
            +
              name: rdiscount
         | 
| 60 | 
            +
              requirement: &2153134060 !ruby/object:Gem::Requirement
         | 
| 61 | 
            +
                none: false
         | 
| 62 | 
            +
                requirements:
         | 
| 63 | 
            +
                - - ! '>='
         | 
| 64 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 65 | 
            +
                    version: '0'
         | 
| 66 | 
            +
              type: :runtime
         | 
| 67 | 
            +
              prerelease: false
         | 
| 68 | 
            +
              version_requirements: *2153134060
         | 
| 69 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 70 | 
            +
              name: sqlite3
         | 
| 71 | 
            +
              requirement: &2153133120 !ruby/object:Gem::Requirement
         | 
| 72 | 
            +
                none: false
         | 
| 73 | 
            +
                requirements:
         | 
| 74 | 
            +
                - - ! '>='
         | 
| 75 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 76 | 
            +
                    version: '0'
         | 
| 77 | 
            +
              type: :development
         | 
| 78 | 
            +
              prerelease: false
         | 
| 79 | 
            +
              version_requirements: *2153133120
         | 
| 80 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 81 | 
            +
              name: rake
         | 
| 82 | 
            +
              requirement: &2153132140 !ruby/object:Gem::Requirement
         | 
| 83 | 
            +
                none: false
         | 
| 84 | 
            +
                requirements:
         | 
| 85 | 
            +
                - - ! '>='
         | 
| 86 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 87 | 
            +
                    version: 0.9.2
         | 
| 88 | 
            +
              type: :development
         | 
| 89 | 
            +
              prerelease: false
         | 
| 90 | 
            +
              version_requirements: *2153132140
         | 
| 91 | 
            +
            description: ! '    acts_as_xlsx lets you turn any ActiveRecord::Base inheriting class
         | 
| 92 | 
            +
              into an excel spreadsheet.
         | 
| 93 | 
            +
             | 
| 94 | 
            +
            '
         | 
| 95 | 
            +
            email: digital.ipseity@gmail.com
         | 
| 96 | 
            +
            executables: []
         | 
| 97 | 
            +
            extensions: []
         | 
| 98 | 
            +
            extra_rdoc_files: []
         | 
| 99 | 
            +
            files:
         | 
| 100 | 
            +
            - acts_as_xlsx.gemspec
         | 
| 101 | 
            +
            - CHANGELOG.md
         | 
| 102 | 
            +
            - Gemfile
         | 
| 103 | 
            +
            - Gemfile.lock
         | 
| 104 | 
            +
            - LICENSE
         | 
| 105 | 
            +
            - Rakefile
         | 
| 106 | 
            +
            - README.md
         | 
| 107 | 
            +
            - lib/axlsx/acts_as_xlsx.rb
         | 
| 108 | 
            +
            - doc/_index.html
         | 
| 109 | 
            +
            - doc/Axlsx/Ar/ClassMethods.html
         | 
| 110 | 
            +
            - doc/Axlsx/Ar/InstanceMethods.html
         | 
| 111 | 
            +
            - doc/Axlsx/Ar/SingletonMethods.html
         | 
| 112 | 
            +
            - doc/Axlsx/Ar.html
         | 
| 113 | 
            +
            - doc/Axlsx.html
         | 
| 114 | 
            +
            - doc/class_list.html
         | 
| 115 | 
            +
            - doc/css/common.css
         | 
| 116 | 
            +
            - doc/css/full_list.css
         | 
| 117 | 
            +
            - doc/css/style.css
         | 
| 118 | 
            +
            - doc/file.LICENSE.html
         | 
| 119 | 
            +
            - doc/file.README.html
         | 
| 120 | 
            +
            - doc/file_list.html
         | 
| 121 | 
            +
            - doc/frames.html
         | 
| 122 | 
            +
            - doc/index.html
         | 
| 123 | 
            +
            - doc/js/app.js
         | 
| 124 | 
            +
            - doc/js/full_list.js
         | 
| 125 | 
            +
            - doc/js/jquery.js
         | 
| 126 | 
            +
            - doc/method_list.html
         | 
| 127 | 
            +
            - doc/top-level-namespace.html
         | 
| 128 | 
            +
            - test/acts_as_xlsx.sqlite3.db
         | 
| 129 | 
            +
            - test/database.yml
         | 
| 130 | 
            +
            - test/helper.rb
         | 
| 131 | 
            +
            - test/tc_acts_as_xlsx.rb
         | 
| 132 | 
            +
            homepage: https://github.com/randym/acts_as_xlsx
         | 
| 133 | 
            +
            licenses: []
         | 
| 134 | 
            +
            post_install_message: 
         | 
| 135 | 
            +
            rdoc_options: []
         | 
| 136 | 
            +
            require_paths:
         | 
| 137 | 
            +
            - lib
         | 
| 138 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 139 | 
            +
              none: false
         | 
| 140 | 
            +
              requirements:
         | 
| 141 | 
            +
              - - ! '>='
         | 
| 142 | 
            +
                - !ruby/object:Gem::Version
         | 
| 143 | 
            +
                  version: '0'
         | 
| 144 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 145 | 
            +
              none: false
         | 
| 146 | 
            +
              requirements:
         | 
| 147 | 
            +
              - - ! '>='
         | 
| 148 | 
            +
                - !ruby/object:Gem::Version
         | 
| 149 | 
            +
                  version: '0'
         | 
| 150 | 
            +
            requirements: []
         | 
| 151 | 
            +
            rubyforge_project: 
         | 
| 152 | 
            +
            rubygems_version: 1.8.10
         | 
| 153 | 
            +
            signing_key: 
         | 
| 154 | 
            +
            specification_version: 3
         | 
| 155 | 
            +
            summary: ActiveRecord support for Axlsx
         | 
| 156 | 
            +
            test_files: []
         | 
| 157 | 
            +
            has_rdoc: acts_as_xlsx
         |