interests 0.1.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.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +56 -0
- data/Rakefile +21 -0
- data/lib/generators/interests/config_generator.rb +20 -0
- data/lib/interests/calculator.rb +62 -0
- data/lib/interests/config.rb +73 -0
- data/lib/interests/core_ext/date.rb +10 -0
- data/lib/interests/core_ext/fixnum.rb +6 -0
- data/lib/interests/core_ext/float.rb +6 -0
- data/lib/interests/version.rb +3 -0
- data/lib/interests.rb +10 -0
- data/lib/tasks/interests_tasks.rake +4 -0
- data/rails_generators/interests_config_generator.rb +9 -0
- data/rails_generators/templates/interests.rb +1 -0
- data/rails_generators/templates/interests.yml +41 -0
- metadata +101 -0
    
        checksums.yaml
    ADDED
    
    | @@ -0,0 +1,7 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            SHA1:
         | 
| 3 | 
            +
              metadata.gz: a9be6b2c88262c28c80dcc15a26d0d5cd851db5e
         | 
| 4 | 
            +
              data.tar.gz: 4164f4c6678d69dec248c44f0a0e6bd97448a4a7
         | 
| 5 | 
            +
            SHA512:
         | 
| 6 | 
            +
              metadata.gz: d215cb2d3b8f87afff1a384d218cca84f26a5fa719b7fb8de306436b801e807250d212cf086b96abb8af221e567937bc4fd355e2704fc148c8c086f0e19ff41b
         | 
| 7 | 
            +
              data.tar.gz: a0d653ffb6f2d77d82b6e54b80231d2f101a2e283852d5c08832ffcc9c56056e8fc1e217122af1a5621ff973b9dddf5237e08ab007c602f3b4fa4dafd0b1389e
         | 
    
        data/MIT-LICENSE
    ADDED
    
    | @@ -0,0 +1,20 @@ | |
| 1 | 
            +
            Copyright 2015 Alek Niemczyk
         | 
| 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.md
    ADDED
    
    | @@ -0,0 +1,56 @@ | |
| 1 | 
            +
            ## Interests
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            [](http://badge.fury.io/rb/interests)
         | 
| 4 | 
            +
            [](https://travis-ci.org/logicorg/interests)
         | 
| 5 | 
            +
            [](https://codeclimate.com/github/logicorg/interests)
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            Factory shift methods collection by [RubyLogic, PL](http://rubylogic.eu)
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            ## Installation
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            Add it to your Gemfile with:
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            ```ruby
         | 
| 14 | 
            +
            gem 'interests'
         | 
| 15 | 
            +
            ```
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            Run the bundle command to install it.
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            Run generator if needed with:
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            ```console
         | 
| 22 | 
            +
            rails generate interests:config
         | 
| 23 | 
            +
            ```
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            ### Basic usage
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            Interests gem allows to calculate total interests between two dates
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            ```ruby
         | 
| 30 | 
            +
            Interests::Calculator.total_interests(1000, Date.new(2014, 1, 1), Date.new(2014, 12, 31))
         | 
| 31 | 
            +
            ````
         | 
| 32 | 
            +
             | 
| 33 | 
            +
            Moreover the gem provides access to the following extensions.
         | 
| 34 | 
            +
             | 
| 35 | 
            +
            ### Date class exts
         | 
| 36 | 
            +
             | 
| 37 | 
            +
            ```ruby
         | 
| 38 | 
            +
            Date.new(2014, 1, 1).total_interests_till(1000, Date.new(2014, 12, 31))
         | 
| 39 | 
            +
            # returns total interests from the 1st of January 2014 till 31st of December of 2014
         | 
| 40 | 
            +
             | 
| 41 | 
            +
            Date.new(2014, 12, 31).total_interests_from(1000, Date.new(2014, 1, 1))
         | 
| 42 | 
            +
            # returns total interests from the 1st of January 2014 till 31st of December of 2014
         | 
| 43 | 
            +
            ```
         | 
| 44 | 
            +
             | 
| 45 | 
            +
            ### Fixnum and Float class exts
         | 
| 46 | 
            +
             | 
| 47 | 
            +
            ```ruby
         | 
| 48 | 
            +
            1000.total_interests(Date.new(2014, 1, 1), Date.new(2014, 12, 31))
         | 
| 49 | 
            +
            # returns total interests from the 1st of January 2014 till 31st of December of 2014
         | 
| 50 | 
            +
             | 
| 51 | 
            +
            12.99.total_interests(Date.new(2014, 1, 1), Date.new(2014, 12, 31))
         | 
| 52 | 
            +
            # returns total interests from the 1st of January 2014 till 31st of December of 2014
         | 
| 53 | 
            +
            ```
         | 
| 54 | 
            +
             | 
| 55 | 
            +
            ## License
         | 
| 56 | 
            +
            Copyright © 2012 - 2015 Ruby Logic, released under the MIT license
         | 
    
        data/Rakefile
    ADDED
    
    | @@ -0,0 +1,21 @@ | |
| 1 | 
            +
            begin
         | 
| 2 | 
            +
              require 'bundler/setup'
         | 
| 3 | 
            +
            rescue LoadError
         | 
| 4 | 
            +
              puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
         | 
| 5 | 
            +
            end
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            require 'rdoc/task'
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            RDoc::Task.new(:rdoc) do |rdoc|
         | 
| 10 | 
            +
              rdoc.rdoc_dir = 'rdoc'
         | 
| 11 | 
            +
              rdoc.title    = 'Interests'
         | 
| 12 | 
            +
              rdoc.options << '--line-numbers'
         | 
| 13 | 
            +
              rdoc.rdoc_files.include('README.md')
         | 
| 14 | 
            +
              rdoc.rdoc_files.include('lib/**/*.rb')
         | 
| 15 | 
            +
            end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            task(:default).clear
         | 
| 18 | 
            +
            task :default => :spec
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            Bundler::GemHelper.install_tasks
         | 
| 21 | 
            +
             | 
| @@ -0,0 +1,20 @@ | |
| 1 | 
            +
            module Interests
         | 
| 2 | 
            +
              module Generators
         | 
| 3 | 
            +
                class ConfigGenerator < Rails::Generators::Base # :nodoc:
         | 
| 4 | 
            +
             | 
| 5 | 
            +
                  def self.gem_root
         | 
| 6 | 
            +
                    File.expand_path("../../../..", __FILE__)
         | 
| 7 | 
            +
                  end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                  def self.source_root
         | 
| 10 | 
            +
                    # Use the templates from the 2.3.x generator
         | 
| 11 | 
            +
                    File.join(gem_root, 'rails_generators', 'templates')
         | 
| 12 | 
            +
                  end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                  def generate
         | 
| 15 | 
            +
                    template 'interests.rb', File.join('config', 'initializers', 'interests.rb')
         | 
| 16 | 
            +
                    template 'interests.yml', File.join('config', 'interests.yml')
         | 
| 17 | 
            +
                  end
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
              end
         | 
| 20 | 
            +
            end
         | 
| @@ -0,0 +1,62 @@ | |
| 1 | 
            +
            require 'ostruct'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Interests
         | 
| 4 | 
            +
             | 
| 5 | 
            +
              BEGINNING_OF_COMPUTER_ERA = Date.new(1970, 1, 1)
         | 
| 6 | 
            +
             | 
| 7 | 
            +
              class Calculator
         | 
| 8 | 
            +
                class << self
         | 
| 9 | 
            +
                  def config_rates(scope = :default)
         | 
| 10 | 
            +
                    Interests::Config.send(scope).map{ |cfg| OpenStruct.new(date: Date.parse(cfg[:date]), rate: cfg[:rate]) }
         | 
| 11 | 
            +
                  end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                  def rates(till = Date.today)
         | 
| 14 | 
            +
                    @rates = []
         | 
| 15 | 
            +
                    return @rates if config_rates.none? || !starts_in_computers_era?
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                    prev_rate = nil
         | 
| 18 | 
            +
                    config_rates.sort!{ |x, y| x.date <=> y.date }
         | 
| 19 | 
            +
                    ([blank_rate] + config_rates + [blank_rate(till + 1.day, config_rates.last.rate)]).each_with_index do |rate, i|
         | 
| 20 | 
            +
                      if i > 0
         | 
| 21 | 
            +
                        from_date = prev_rate.date
         | 
| 22 | 
            +
                        to_date = rate.date - 1.day
         | 
| 23 | 
            +
                        days = (to_date - from_date).to_i
         | 
| 24 | 
            +
                        day_rate = prev_rate.rate.to_f / 365
         | 
| 25 | 
            +
                        @rates << OpenStruct.new(from_date: from_date, to_date: to_date, days: days, rate: prev_rate.rate, day_rate: day_rate)
         | 
| 26 | 
            +
                      end
         | 
| 27 | 
            +
                      prev_rate = rate
         | 
| 28 | 
            +
                    end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                    @rates
         | 
| 31 | 
            +
                  end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                  def interests(amount = 0.0, from_date = BEGINNING_OF_COMPUTER_ERA, to_date = Date.today)
         | 
| 34 | 
            +
                    rates(to_date).select{ |rate| rate.to_date >= from_date && rate.from_date <= to_date }.map do |rate|
         | 
| 35 | 
            +
                      date_beg = [from_date + 1.day, rate.from_date].max
         | 
| 36 | 
            +
                      date_end = [to_date, rate.to_date].min
         | 
| 37 | 
            +
                      OpenStruct.new(
         | 
| 38 | 
            +
                        date_beg: date_beg,
         | 
| 39 | 
            +
                        date_end: date_end,
         | 
| 40 | 
            +
                        days: (date_beg..date_end).count,
         | 
| 41 | 
            +
                        day_rate: rate.day_rate,
         | 
| 42 | 
            +
                        interests: amount * (date_beg..date_end).count * rate.day_rate
         | 
| 43 | 
            +
                      )
         | 
| 44 | 
            +
                    end
         | 
| 45 | 
            +
                  end
         | 
| 46 | 
            +
             | 
| 47 | 
            +
                  def total_interests(amount = 0.0, from_date = BEGINNING_OF_COMPUTER_ERA, to_date = Date.today)
         | 
| 48 | 
            +
                    interests(amount, from_date, to_date).map(&:interests).inject(0, :+)
         | 
| 49 | 
            +
                  end
         | 
| 50 | 
            +
             | 
| 51 | 
            +
                  private
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                  def starts_in_computers_era?
         | 
| 54 | 
            +
                    config_rates.map(&:date).min > BEGINNING_OF_COMPUTER_ERA
         | 
| 55 | 
            +
                  end
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                  def blank_rate(date = BEGINNING_OF_COMPUTER_ERA, rate = 0.0)
         | 
| 58 | 
            +
                    OpenStruct.new(date: date, rate: rate)
         | 
| 59 | 
            +
                  end
         | 
| 60 | 
            +
                end
         | 
| 61 | 
            +
              end
         | 
| 62 | 
            +
            end
         | 
| @@ -0,0 +1,73 @@ | |
| 1 | 
            +
            module Interests
         | 
| 2 | 
            +
              class Config
         | 
| 3 | 
            +
                DEFAULT_CONFIG = {
         | 
| 4 | 
            +
                  default: [
         | 
| 5 | 
            +
                    { date: '1997-01-01', rate: 0.35 },
         | 
| 6 | 
            +
                    { date: '1998-04-15', rate: 0.33 },
         | 
| 7 | 
            +
                    { date: '1999-02-01', rate: 0.24 },
         | 
| 8 | 
            +
                    { date: '1999-05-15', rate: 0.21 },
         | 
| 9 | 
            +
                    { date: '2000-11-01', rate: 0.30 },
         | 
| 10 | 
            +
                    { date: '2001-12-15', rate: 0.20 },
         | 
| 11 | 
            +
                    { date: '2002-07-25', rate: 0.16 },
         | 
| 12 | 
            +
                    { date: '2003-02-01', rate: 0.13 },
         | 
| 13 | 
            +
                    { date: '2003-09-25', rate: 0.1225 },
         | 
| 14 | 
            +
                    { date: '2005-01-10', rate: 0.135 },
         | 
| 15 | 
            +
                    { date: '2005-10-15', rate: 0.115 },
         | 
| 16 | 
            +
                    { date: '2008-12-15', rate: 0.13 },
         | 
| 17 | 
            +
                    { date: '2014-12-23', rate: 0.08 }
         | 
| 18 | 
            +
                  ]
         | 
| 19 | 
            +
                }
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                class << self
         | 
| 22 | 
            +
                  private
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                  def config
         | 
| 25 | 
            +
                    Thread.main[:interests_config] ||= default_config
         | 
| 26 | 
            +
                  end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                  def config=(config)
         | 
| 29 | 
            +
                    Thread.main[:interests_config] = config
         | 
| 30 | 
            +
                  end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                  def threadsafe_cattr_accessor(name)
         | 
| 33 | 
            +
                    define_singleton_method name do
         | 
| 34 | 
            +
                      config[name]
         | 
| 35 | 
            +
                    end
         | 
| 36 | 
            +
                    define_singleton_method "#{name}=" do |value|
         | 
| 37 | 
            +
                      config[name] = value
         | 
| 38 | 
            +
                    end
         | 
| 39 | 
            +
                  end
         | 
| 40 | 
            +
                end
         | 
| 41 | 
            +
             | 
| 42 | 
            +
                threadsafe_cattr_accessor :default
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                class << self
         | 
| 45 | 
            +
                  def load(file)
         | 
| 46 | 
            +
                    reset
         | 
| 47 | 
            +
                    data = YAML::load(file.respond_to?(:read) ? file : File.open(file))
         | 
| 48 | 
            +
                    config = (data['interests'] || {})
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                    config_vars = %w(default)
         | 
| 51 | 
            +
                    config_vars.each do |var|
         | 
| 52 | 
            +
                      send("#{var}=", config[var]) if config[var] && respond_to?("#{var}=")
         | 
| 53 | 
            +
                    end
         | 
| 54 | 
            +
                  end
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                  def default_config
         | 
| 57 | 
            +
                    deep_dup(DEFAULT_CONFIG)
         | 
| 58 | 
            +
                  end
         | 
| 59 | 
            +
             | 
| 60 | 
            +
                  private
         | 
| 61 | 
            +
             | 
| 62 | 
            +
                  def reset
         | 
| 63 | 
            +
                    self.config = default_config
         | 
| 64 | 
            +
                  end
         | 
| 65 | 
            +
             | 
| 66 | 
            +
                  def deep_dup(object)
         | 
| 67 | 
            +
                    Marshal.load(Marshal.dump(object))
         | 
| 68 | 
            +
                  end
         | 
| 69 | 
            +
                end
         | 
| 70 | 
            +
             | 
| 71 | 
            +
                reset
         | 
| 72 | 
            +
              end
         | 
| 73 | 
            +
            end
         | 
    
        data/lib/interests.rb
    ADDED
    
    | @@ -0,0 +1,10 @@ | |
| 1 | 
            +
            require 'thread'
         | 
| 2 | 
            +
            require 'active_support'
         | 
| 3 | 
            +
            require 'active_support/time'
         | 
| 4 | 
            +
            require 'yaml'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            require 'interests/config'
         | 
| 7 | 
            +
            require 'interests/calculator'
         | 
| 8 | 
            +
            require 'interests/core_ext/date'
         | 
| 9 | 
            +
            require 'interests/core_ext/float'
         | 
| 10 | 
            +
            require 'interests/core_ext/fixnum'
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            Interests::Config.load("#{Rails.root}/config/interests.yml")
         | 
| @@ -0,0 +1,41 @@ | |
| 1 | 
            +
            interests:
         | 
| 2 | 
            +
              base:
         | 
| 3 | 
            +
                -
         | 
| 4 | 
            +
                  date: '1997-01-01'
         | 
| 5 | 
            +
                  rate: 0.35
         | 
| 6 | 
            +
                -
         | 
| 7 | 
            +
                  date: '1998-04-15'
         | 
| 8 | 
            +
                  rate: 0.33
         | 
| 9 | 
            +
                -
         | 
| 10 | 
            +
                  date: '1999-02-01'
         | 
| 11 | 
            +
                  rate: 0.24
         | 
| 12 | 
            +
                -
         | 
| 13 | 
            +
                  date: '1999-05-15'
         | 
| 14 | 
            +
                  rate: 0.21
         | 
| 15 | 
            +
                -
         | 
| 16 | 
            +
                  date: '2000-11-01'
         | 
| 17 | 
            +
                  rate: 0.30
         | 
| 18 | 
            +
                -
         | 
| 19 | 
            +
                  date: '2001-12-15'
         | 
| 20 | 
            +
                  rate: 0.20
         | 
| 21 | 
            +
                -
         | 
| 22 | 
            +
                  date: '2002-07-25'
         | 
| 23 | 
            +
                  rate: 0.16
         | 
| 24 | 
            +
                -
         | 
| 25 | 
            +
                  date: '2003-02-01'
         | 
| 26 | 
            +
                  rate: 0.13
         | 
| 27 | 
            +
                -
         | 
| 28 | 
            +
                  date: '2003-09-25'
         | 
| 29 | 
            +
                  rate: 0.1225
         | 
| 30 | 
            +
                -
         | 
| 31 | 
            +
                  date: '2005-01-10'
         | 
| 32 | 
            +
                  rate: 0.135
         | 
| 33 | 
            +
                -
         | 
| 34 | 
            +
                  date: '2005-10-15'
         | 
| 35 | 
            +
                  rate: 0.115
         | 
| 36 | 
            +
                -
         | 
| 37 | 
            +
                  date: '2008-12-15'
         | 
| 38 | 
            +
                  rate: 0.13
         | 
| 39 | 
            +
                -
         | 
| 40 | 
            +
                  date: '2014-12-23'
         | 
| 41 | 
            +
                  rate: 0.08
         | 
    
        metadata
    ADDED
    
    | @@ -0,0 +1,101 @@ | |
| 1 | 
            +
            --- !ruby/object:Gem::Specification
         | 
| 2 | 
            +
            name: interests
         | 
| 3 | 
            +
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            +
              version: 0.1.0
         | 
| 5 | 
            +
            platform: ruby
         | 
| 6 | 
            +
            authors:
         | 
| 7 | 
            +
            - Alek Niemczyk
         | 
| 8 | 
            +
            autorequire: 
         | 
| 9 | 
            +
            bindir: bin
         | 
| 10 | 
            +
            cert_chain: []
         | 
| 11 | 
            +
            date: 2015-01-25 00:00:00.000000000 Z
         | 
| 12 | 
            +
            dependencies:
         | 
| 13 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            +
              name: rails
         | 
| 15 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            +
                requirements:
         | 
| 17 | 
            +
                - - ">="
         | 
| 18 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            +
                    version: '0'
         | 
| 20 | 
            +
              type: :development
         | 
| 21 | 
            +
              prerelease: false
         | 
| 22 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            +
                requirements:
         | 
| 24 | 
            +
                - - ">="
         | 
| 25 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            +
                    version: '0'
         | 
| 27 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            +
              name: sqlite3
         | 
| 29 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            +
                requirements:
         | 
| 31 | 
            +
                - - ">="
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            +
                    version: '0'
         | 
| 34 | 
            +
              type: :development
         | 
| 35 | 
            +
              prerelease: false
         | 
| 36 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            +
                requirements:
         | 
| 38 | 
            +
                - - ">="
         | 
| 39 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            +
                    version: '0'
         | 
| 41 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            +
              name: rspec-rails
         | 
| 43 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 | 
            +
                requirements:
         | 
| 45 | 
            +
                - - ">="
         | 
| 46 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            +
                    version: '0'
         | 
| 48 | 
            +
              type: :development
         | 
| 49 | 
            +
              prerelease: false
         | 
| 50 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 | 
            +
                requirements:
         | 
| 52 | 
            +
                - - ">="
         | 
| 53 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            +
                    version: '0'
         | 
| 55 | 
            +
            description: Interests calculator
         | 
| 56 | 
            +
            email:
         | 
| 57 | 
            +
            - alek@rubylogic.pl
         | 
| 58 | 
            +
            executables: []
         | 
| 59 | 
            +
            extensions: []
         | 
| 60 | 
            +
            extra_rdoc_files: []
         | 
| 61 | 
            +
            files:
         | 
| 62 | 
            +
            - lib/generators/interests/config_generator.rb
         | 
| 63 | 
            +
            - lib/interests.rb
         | 
| 64 | 
            +
            - lib/interests/calculator.rb
         | 
| 65 | 
            +
            - lib/interests/core_ext/fixnum.rb
         | 
| 66 | 
            +
            - lib/interests/core_ext/date.rb
         | 
| 67 | 
            +
            - lib/interests/core_ext/float.rb
         | 
| 68 | 
            +
            - lib/interests/config.rb
         | 
| 69 | 
            +
            - lib/interests/version.rb
         | 
| 70 | 
            +
            - lib/tasks/interests_tasks.rake
         | 
| 71 | 
            +
            - rails_generators/templates/interests.rb
         | 
| 72 | 
            +
            - rails_generators/templates/interests.yml
         | 
| 73 | 
            +
            - rails_generators/interests_config_generator.rb
         | 
| 74 | 
            +
            - MIT-LICENSE
         | 
| 75 | 
            +
            - Rakefile
         | 
| 76 | 
            +
            - README.md
         | 
| 77 | 
            +
            homepage: https://github.com/logicorg/interests
         | 
| 78 | 
            +
            licenses:
         | 
| 79 | 
            +
            - MIT
         | 
| 80 | 
            +
            metadata: {}
         | 
| 81 | 
            +
            post_install_message: 
         | 
| 82 | 
            +
            rdoc_options: []
         | 
| 83 | 
            +
            require_paths:
         | 
| 84 | 
            +
            - lib
         | 
| 85 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 86 | 
            +
              requirements:
         | 
| 87 | 
            +
              - - ">="
         | 
| 88 | 
            +
                - !ruby/object:Gem::Version
         | 
| 89 | 
            +
                  version: '0'
         | 
| 90 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 91 | 
            +
              requirements:
         | 
| 92 | 
            +
              - - ">="
         | 
| 93 | 
            +
                - !ruby/object:Gem::Version
         | 
| 94 | 
            +
                  version: '0'
         | 
| 95 | 
            +
            requirements: []
         | 
| 96 | 
            +
            rubyforge_project: 
         | 
| 97 | 
            +
            rubygems_version: 2.1.11
         | 
| 98 | 
            +
            signing_key: 
         | 
| 99 | 
            +
            specification_version: 4
         | 
| 100 | 
            +
            summary: Interests calculator
         | 
| 101 | 
            +
            test_files: []
         |