has_safe_dates 1.0.0 → 2.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.
- checksums.yaml +5 -5
- data/.circleci/config.yml +116 -0
- data/.gitignore +6 -0
- data/Gemfile +3 -3
- data/Rakefile +5 -4
- data/has_safe_dates.gemspec +23 -33
- data/lib/has_safe_dates.rb +3 -1
- data/lib/has_safe_dates/core_ext.rb +23 -22
- data/lib/has_safe_dates/version.rb +3 -1
- data/spec/has_safe_dates_spec.rb +10 -10
- metadata +43 -32
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
             | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 2 | 
            +
            SHA256:
         | 
| 3 | 
            +
              metadata.gz: 195d8193d691b1db2ec7e1225078bff421e67791ebcd3cc5e1f0c1fe1624190e
         | 
| 4 | 
            +
              data.tar.gz: c32c3bb5dd25ca84ee3d3ee3f8ed8a52deea8ce1d54ee51fdedf79d79c953e7f
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 9c04b378bd6c3396db1448244d418acb02c67766b4442ff00e2edd1892f8a586500cc0a09e8ca75b63feeae70dc0ffa3773684947081f6207112b353fba6c7aa
         | 
| 7 | 
            +
              data.tar.gz: d8086a3e2a9989d5629f1477eaec546abca7894b6ee42cdf466001ba49ea8b76307b7df337bb14ebdf056673196cf6db1c5cdcda603a58f1db82592cf26596cc
         | 
| @@ -0,0 +1,116 @@ | |
| 1 | 
            +
            # Ruby CircleCI 2.0 configuration file
         | 
| 2 | 
            +
            #
         | 
| 3 | 
            +
            # Check https://circleci.com/docs/2.0/language-ruby/ for more details
         | 
| 4 | 
            +
            #
         | 
| 5 | 
            +
            defaults: &defaults
         | 
| 6 | 
            +
              working_directory: ~/repo
         | 
| 7 | 
            +
              docker:
         | 
| 8 | 
            +
                - image: circleci/ruby:2.3.6-stretch-node
         | 
| 9 | 
            +
                  environment:
         | 
| 10 | 
            +
                    - RACK_ENV: test
         | 
| 11 | 
            +
                    - RAILS_ENV: test
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            version: 2
         | 
| 14 | 
            +
            jobs:
         | 
| 15 | 
            +
              run_specs:
         | 
| 16 | 
            +
                <<: *defaults
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                steps:
         | 
| 19 | 
            +
                  - run:
         | 
| 20 | 
            +
                      name: Set up environment
         | 
| 21 | 
            +
                      command: |
         | 
| 22 | 
            +
                        sudo apt-get update && sudo apt-get install -y apt-transport-https apt-utils
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                  - checkout
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                  - restore_cache:
         | 
| 27 | 
            +
                      keys:
         | 
| 28 | 
            +
                      - has_safe_dates-dependencies-v1-{{ checksum "has_safe_dates.gemspec" }}
         | 
| 29 | 
            +
                      - has_safe_dates-dependencies-v1-
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                  - run:
         | 
| 32 | 
            +
                      name: Install dependencies
         | 
| 33 | 
            +
                      command: |
         | 
| 34 | 
            +
                        bundle check --path=./vendor/bundle || bundle install --path=./vendor/bundle --jobs=4 --retry=3
         | 
| 35 | 
            +
             | 
| 36 | 
            +
                  - save_cache:
         | 
| 37 | 
            +
                      key: has_safe_dates-dependencies-v1-{{ checksum "has_safe_dates.gemspec" }}
         | 
| 38 | 
            +
                      paths:
         | 
| 39 | 
            +
                        - ./vendor/bundle
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                  - run:
         | 
| 42 | 
            +
                      name: Run tests
         | 
| 43 | 
            +
                      command: |
         | 
| 44 | 
            +
                        mkdir /tmp/test-results
         | 
| 45 | 
            +
                        TEST_FILES="$(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)"
         | 
| 46 | 
            +
                        bundle exec rspec --format progress --format RspecJunitFormatter --out /tmp/test-results/rspec.xml $TEST_FILES
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                  - store_test_results:
         | 
| 49 | 
            +
                      path: /tmp/test-results
         | 
| 50 | 
            +
             | 
| 51 | 
            +
                  - store_artifacts:
         | 
| 52 | 
            +
                      path: /tmp/test-results
         | 
| 53 | 
            +
                      destination: test-results
         | 
| 54 | 
            +
             | 
| 55 | 
            +
              build_gem:
         | 
| 56 | 
            +
                <<: *defaults
         | 
| 57 | 
            +
             | 
| 58 | 
            +
                steps:
         | 
| 59 | 
            +
                  - run:
         | 
| 60 | 
            +
                      name: Set up environment
         | 
| 61 | 
            +
                      command: |
         | 
| 62 | 
            +
                        sudo apt-get update && sudo apt-get install -y apt-transport-https apt-utils
         | 
| 63 | 
            +
             | 
| 64 | 
            +
                  - checkout
         | 
| 65 | 
            +
             | 
| 66 | 
            +
                  - restore_cache:
         | 
| 67 | 
            +
                      keys:
         | 
| 68 | 
            +
                      - has_safe_dates-dependencies-v1-{{ checksum "has_safe_dates.gemspec" }}
         | 
| 69 | 
            +
                      - has_safe_dates-dependencies-v1-
         | 
| 70 | 
            +
             | 
| 71 | 
            +
                  - run:
         | 
| 72 | 
            +
                      name: Install dependencies
         | 
| 73 | 
            +
                      command: |
         | 
| 74 | 
            +
                        gem install gemfury
         | 
| 75 | 
            +
                        bundle check --path=./vendor/bundle || bundle install --path=./vendor/bundle --jobs=4 --retry=3
         | 
| 76 | 
            +
             | 
| 77 | 
            +
                  - save_cache:
         | 
| 78 | 
            +
                      key: has_safe_dates-dependencies-v1-{{ checksum "has_safe_dates.gemspec" }}
         | 
| 79 | 
            +
                      paths:
         | 
| 80 | 
            +
                        - ./vendor/bundle
         | 
| 81 | 
            +
             | 
| 82 | 
            +
                  - run:
         | 
| 83 | 
            +
                      name: Build gem
         | 
| 84 | 
            +
                      command: |
         | 
| 85 | 
            +
                        gem build has_safe_dates.gemspec
         | 
| 86 | 
            +
             | 
| 87 | 
            +
                  - run:
         | 
| 88 | 
            +
                      name: Push gem
         | 
| 89 | 
            +
                      command: |
         | 
| 90 | 
            +
                        if [[ "${CIRCLE_PROJECT_USERNAME}" == "OneHQ" && "${CIRCLE_BRANCH}" == "master" && -n "${GEMFURY_USERNAME}" && -n "${GEMFURY_PASSWORD}" ]]; then
         | 
| 91 | 
            +
                          echo -e "machine api.fury.io\n  login ${GEMFURY_USERNAME}\n  password ${GEMFURY_PASSWORD}" >> ~/.netrc
         | 
| 92 | 
            +
                          chmod 600 ~/.netrc
         | 
| 93 | 
            +
                          version=$(ruby -e 'load "lib/has_safe_dates/version.rb"; puts HasSafeDates::VERSION')
         | 
| 94 | 
            +
                          grep -q "${version}" <(fury versions has_safe_dates) || EXIT_CODE=$? && true
         | 
| 95 | 
            +
                          if [[ $EXIT_CODE == 1 ]]; then
         | 
| 96 | 
            +
                            fury push has_safe_dates-${version}.gem
         | 
| 97 | 
            +
                            git tag ${version}
         | 
| 98 | 
            +
                            git push --tags
         | 
| 99 | 
            +
             | 
| 100 | 
            +
                            [[ -n "$SLACK_TOKEN" ]] && curl -s -d "has_safe_dates ($version) released." "https://onehq.slack.com/services/hooks/slackbot?token=${SLACK_TOKEN}&channel=%23machines"
         | 
| 101 | 
            +
                          fi
         | 
| 102 | 
            +
                        fi
         | 
| 103 | 
            +
             | 
| 104 | 
            +
            workflows:
         | 
| 105 | 
            +
              version: 2
         | 
| 106 | 
            +
              build-deploy:
         | 
| 107 | 
            +
                jobs:
         | 
| 108 | 
            +
                  - run_specs
         | 
| 109 | 
            +
                  - build_gem:
         | 
| 110 | 
            +
                      requires:
         | 
| 111 | 
            +
                        - run_specs
         | 
| 112 | 
            +
                      filters:
         | 
| 113 | 
            +
                        branches:
         | 
| 114 | 
            +
                          only:
         | 
| 115 | 
            +
                            - master
         | 
| 116 | 
            +
                            - staging
         | 
    
        data/.gitignore
    ADDED
    
    
    
        data/Gemfile
    CHANGED
    
    
    
        data/Rakefile
    CHANGED
    
    | @@ -1,8 +1,9 @@ | |
| 1 1 | 
             
            # encoding: utf-8
         | 
| 2 | 
            +
            # frozen_string_literal: true
         | 
| 2 3 |  | 
| 3 | 
            -
            require  | 
| 4 | 
            -
            require  | 
| 5 | 
            -
            require  | 
| 4 | 
            +
            require "rubygems"
         | 
| 5 | 
            +
            require "rake"
         | 
| 6 | 
            +
            require "bundler"
         | 
| 6 7 |  | 
| 7 8 | 
             
            begin
         | 
| 8 9 | 
             
              Bundler.setup(:default, :development)
         | 
| @@ -16,4 +17,4 @@ task :spec do | |
| 16 17 | 
             
              sh("bundle exec rspec spec") { |ok, res| }
         | 
| 17 18 | 
             
            end
         | 
| 18 19 |  | 
| 19 | 
            -
            task : | 
| 20 | 
            +
            task default: :spec
         | 
    
        data/has_safe_dates.gemspec
    CHANGED
    
    | @@ -1,3 +1,5 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            $:.push File.expand_path("../lib", __FILE__)
         | 
| 2 4 |  | 
| 3 5 | 
             
            # Maintain your gem's version:
         | 
| @@ -8,57 +10,45 @@ Gem::Specification.new do |s| | |
| 8 10 | 
             
              s.name        = "has_safe_dates"
         | 
| 9 11 | 
             
              s.version     = HasSafeDates::VERSION
         | 
| 10 12 | 
             
              s.authors     = ["kylejginavan"]
         | 
| 11 | 
            -
              s.date        =  | 
| 12 | 
            -
              s.description =  | 
| 13 | 
            -
              s.email       =  | 
| 13 | 
            +
              s.date        = "2012-02-24"
         | 
| 14 | 
            +
              s.description = "Uses Chronic to parse incoming dates and does not raise errors on invalid multi parameter settings"
         | 
| 15 | 
            +
              s.email       = "kylejginavan@gmail.com"
         | 
| 14 16 |  | 
| 15 17 | 
             
              s.extra_rdoc_files = [
         | 
| 16 18 | 
             
                "MIT-LICENSE.txt",
         | 
| 17 19 | 
             
                "README.md"
         | 
| 18 20 | 
             
              ]
         | 
| 19 | 
            -
              s.files =  | 
| 20 | 
            -
             | 
| 21 | 
            -
                "Rakefile",
         | 
| 22 | 
            -
                "MIT-LICENSE.txt",
         | 
| 23 | 
            -
                "README.md",
         | 
| 24 | 
            -
                "Rakefile",
         | 
| 25 | 
            -
                "has_safe_dates.gemspec",
         | 
| 26 | 
            -
                "lib/has_safe_dates/core_ext.rb",
         | 
| 27 | 
            -
                "lib/has_safe_dates/version.rb",
         | 
| 28 | 
            -
                "lib/has_safe_dates.rb",
         | 
| 29 | 
            -
                "spec/db/database.yml",
         | 
| 30 | 
            -
                "spec/db/schema.rb",
         | 
| 31 | 
            -
                "spec/has_safe_dates_spec.rb",
         | 
| 32 | 
            -
                "spec/spec_helper.rb"
         | 
| 33 | 
            -
              ]
         | 
| 34 | 
            -
              s.homepage = %q{http://github.com/kylejginavan/has_safe_dates}
         | 
| 21 | 
            +
              s.files = `git ls-files`.split("\n")
         | 
| 22 | 
            +
              s.homepage = "http://github.com/kylejginavan/has_safe_dates"
         | 
| 35 23 | 
             
              s.require_paths = ["lib"]
         | 
| 36 | 
            -
              s. | 
| 24 | 
            +
              s.test_files    = `git ls-files -- {test,spec,features}/*`.split("\n")
         | 
| 25 | 
            +
              s.executables   = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
         | 
| 26 | 
            +
              s.summary = "Chronic based date setting for ActiveRecord models"
         | 
| 37 27 |  | 
| 38 28 | 
             
              if s.respond_to? :specification_version then
         | 
| 39 29 | 
             
                s.specification_version = 3
         | 
| 40 30 |  | 
| 41 | 
            -
                if Gem::Version.new(Gem::VERSION) >= Gem::Version.new( | 
| 42 | 
            -
                  s.add_development_dependency("activerecord", [ | 
| 31 | 
            +
                if Gem::Version.new(Gem::VERSION) >= Gem::Version.new("1.2.0") then
         | 
| 32 | 
            +
                  s.add_development_dependency("activerecord", ["~> 6.0"])
         | 
| 33 | 
            +
                  s.add_development_dependency("bundler", ["~> 1.0"])
         | 
| 43 34 | 
             
                  s.add_dependency("chronic")
         | 
| 44 | 
            -
                  s.add_development_dependency(" | 
| 35 | 
            +
                  s.add_development_dependency("database_cleaner")
         | 
| 45 36 | 
             
                  s.add_development_dependency("rdoc", ["~> 3.12"])
         | 
| 46 | 
            -
                  s.add_development_dependency(" | 
| 37 | 
            +
                  s.add_development_dependency("rspec", [">= 0", "< 3"])
         | 
| 38 | 
            +
                  s.add_development_dependency("rspec_junit_formatter", ["~> 0.3", ">= 0.3.0"])
         | 
| 47 39 | 
             
                  s.add_development_dependency("sqlite3")
         | 
| 48 | 
            -
                  s.add_development_dependency('database_cleaner')
         | 
| 49 | 
            -
                  s.add_development_dependency('debugger')
         | 
| 50 40 | 
             
                else
         | 
| 51 | 
            -
                  s.add_dependency("activerecord", [ | 
| 41 | 
            +
                  s.add_dependency("activerecord", [">= 3.1.0"])
         | 
| 42 | 
            +
                  s.add_dependency("bundler", ["~> 1.0.0"])
         | 
| 52 43 | 
             
                  s.add_dependency("chronic")
         | 
| 53 | 
            -
                  s.add_dependency("rspec", [">= 0"])
         | 
| 54 44 | 
             
                  s.add_dependency("rdoc", ["~> 3.12"])
         | 
| 55 | 
            -
                  s.add_dependency(" | 
| 45 | 
            +
                  s.add_dependency("rspec", [">= 0"])
         | 
| 56 46 | 
             
                end
         | 
| 57 47 | 
             
              else
         | 
| 58 | 
            -
                s.add_dependency( | 
| 59 | 
            -
                s.add_dependency('chronic')
         | 
| 60 | 
            -
                s.add_dependency("rspec", [">= 0"])
         | 
| 61 | 
            -
                s.add_dependency("rdoc", ["~> 3.12"])
         | 
| 48 | 
            +
                s.add_dependency("activerecord", [">= 3.1.0"])
         | 
| 62 49 | 
             
                s.add_dependency("bundler", ["~> 1.0.0"])
         | 
| 50 | 
            +
                s.add_dependency("chronic")
         | 
| 51 | 
            +
                s.add_dependency("rdoc", ["~> 3.12"])
         | 
| 52 | 
            +
                s.add_dependency("rspec", [">= 0"])
         | 
| 63 53 | 
             
              end
         | 
| 64 54 | 
             
            end
         | 
    
        data/lib/has_safe_dates.rb
    CHANGED
    
    
| @@ -1,7 +1,8 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 2 |  | 
| 3 | 
            -
             | 
| 3 | 
            +
            require "chronic"
         | 
| 4 4 |  | 
| 5 | 
            +
            module HasSafeDates
         | 
| 5 6 | 
             
              module CoreExt
         | 
| 6 7 | 
             
                extend ActiveSupport::Concern
         | 
| 7 8 |  | 
| @@ -17,7 +18,7 @@ module HasSafeDates | |
| 17 18 | 
             
                    if options[:error_message].present?
         | 
| 18 19 | 
             
                      has_safe_fields_config[self][:error_message] = options[:error_message]
         | 
| 19 20 | 
             
                    else
         | 
| 20 | 
            -
                      has_safe_fields_config[self][:error_message] = I18n.translate( | 
| 21 | 
            +
                      has_safe_fields_config[self][:error_message] = I18n.translate("activerecord.errors.messages")[:invalid] || "is invalid"
         | 
| 21 22 | 
             
                    end
         | 
| 22 23 |  | 
| 23 24 | 
             
                    if args.blank?
         | 
| @@ -26,7 +27,7 @@ module HasSafeDates | |
| 26 27 | 
             
                    has_safe_fields_config[self][:fields] = args.map(&:to_s)
         | 
| 27 28 |  | 
| 28 29 | 
             
                    has_safe_fields_config[self][:fields].each do |field|
         | 
| 29 | 
            -
                      define_method "#{field | 
| 30 | 
            +
                      define_method "#{field}=" do |value|
         | 
| 30 31 | 
             
                        if value.present?
         | 
| 31 32 | 
             
                          value = Chronic.parse(value.to_s)
         | 
| 32 33 | 
             
                          if value.blank? && self.class.has_safe_fields_config[self.class.base_class][:error_message].present?
         | 
| @@ -54,28 +55,28 @@ module HasSafeDates | |
| 54 55 | 
             
                end
         | 
| 55 56 | 
             
              end
         | 
| 56 57 |  | 
| 57 | 
            -
              module  | 
| 58 | 
            -
                 | 
| 59 | 
            -
             | 
| 60 | 
            -
             | 
| 61 | 
            -
             | 
| 62 | 
            -
             | 
| 63 | 
            -
             | 
| 64 | 
            -
             | 
| 65 | 
            -
                  end
         | 
| 66 | 
            -
                end
         | 
| 58 | 
            +
              module DateTimeExt
         | 
| 59 | 
            +
                def execute_callstack_for_multiparameter_attributes(callstack)
         | 
| 60 | 
            +
                  if ::ActiveRecord::Base.has_safe_fields_config[self.class.base_class]
         | 
| 61 | 
            +
                    callstack.each do |name, values_with_empty_parameters|
         | 
| 62 | 
            +
                      if ActiveRecord::Base.has_safe_fields_config[self.class.base_class][:fields].include?(name)
         | 
| 63 | 
            +
                        date = values_with_empty_parameters.values_at(1, 2, 3).join("-")
         | 
| 64 | 
            +
                        time = values_with_empty_parameters.values_at(4, 5).join(":")
         | 
| 65 | 
            +
                        datetime_string = "#{date}#{time.blank? ? "" : " #{time}"}"
         | 
| 67 66 |  | 
| 68 | 
            -
             | 
| 69 | 
            -
             | 
| 70 | 
            -
             | 
| 71 | 
            -
             | 
| 72 | 
            -
             | 
| 67 | 
            +
                        # Convert multiparameter parts into a Date string, e.g. "2011-4-23",
         | 
| 68 | 
            +
                        # and pass it through so that CoreExt methods handle the result.
         | 
| 69 | 
            +
                        send("#{name}=", datetime_string)
         | 
| 70 | 
            +
                      else
         | 
| 71 | 
            +
                        super({ name => values_with_empty_parameters })
         | 
| 72 | 
            +
                      end
         | 
| 73 | 
            +
                    end
         | 
| 73 74 | 
             
                  else
         | 
| 74 | 
            -
                    super  # has_safe_dates is not enabled for the current field, so invoke the super method | 
| 75 | 
            +
                    super(callstack)  # has_safe_dates is not enabled for the current field, so invoke the super method
         | 
| 75 76 | 
             
                  end
         | 
| 76 77 | 
             
                end
         | 
| 77 78 | 
             
              end
         | 
| 78 79 | 
             
            end
         | 
| 79 80 |  | 
| 80 | 
            -
            ActiveRecord::Base.send :include, HasSafeDates::CoreExt
         | 
| 81 | 
            -
            ActiveRecord:: | 
| 81 | 
            +
            ::ActiveRecord::Base.send :include, ::HasSafeDates::CoreExt
         | 
| 82 | 
            +
            ::ActiveRecord::Base.send :prepend, ::HasSafeDates::DateTimeExt
         | 
    
        data/spec/has_safe_dates_spec.rb
    CHANGED
    
    | @@ -78,21 +78,21 @@ describe "HasSafeDates" do | |
| 78 78 | 
             
                  invalid_post_attributes = {'published_date(1i)' => "2001", 'published_date(2i)' => "12", 'published_date(3i)' => "abc"}
         | 
| 79 79 | 
             
                  invalid_comment_attributes = {'approved_at(1i)' => "2001", 'approved_at(2i)' => "15", 'approved_at(3i)' => "17"}
         | 
| 80 80 | 
             
                  expect {
         | 
| 81 | 
            -
                    @post. | 
| 82 | 
            -
                    @comment. | 
| 81 | 
            +
                    @post.update(invalid_post_attributes)
         | 
| 82 | 
            +
                    @comment.update(invalid_comment_attributes)
         | 
| 83 83 | 
             
                  }.to_not raise_error
         | 
| 84 84 | 
             
                end
         | 
| 85 85 |  | 
| 86 86 | 
             
                it "does not interfere with a date column that it has not been told to make safe" do
         | 
| 87 87 | 
             
                  invalid_attributes = {'unsafe_date(1i)' => "2001", 'unsafe_date(2i)' => "12", 'unsafe_date(3i)' => "abc"}
         | 
| 88 88 | 
             
                  expect {
         | 
| 89 | 
            -
                    @post. | 
| 89 | 
            +
                    @post.update(invalid_attributes)
         | 
| 90 90 | 
             
                  }.to raise_error(ActiveRecord::MultiparameterAssignmentErrors)
         | 
| 91 91 | 
             
                end
         | 
| 92 92 |  | 
| 93 93 | 
             
                it "adds an error when Chronic returns nil" do
         | 
| 94 94 | 
             
                  invalid_post_attributes = {'published_date(1i)' => "2014", 'published_date(2i)' => "12", 'published_date(3i)' => "abc"}
         | 
| 95 | 
            -
                  @post. | 
| 95 | 
            +
                  @post.update(invalid_post_attributes)
         | 
| 96 96 | 
             
                  @post.errors[:published_date].should == ['is not a real date']
         | 
| 97 97 | 
             
                end
         | 
| 98 98 |  | 
| @@ -100,7 +100,7 @@ describe "HasSafeDates" do | |
| 100 100 | 
             
                  it "works" do
         | 
| 101 101 | 
             
                    invalid_comment_attributes = {'published_at(1i)' => "2014", 'published_at(2i)' => "12", 'published_at(3i)' => "22", 'published_at(4i)' => "12", 'published_at(5i)' => "34"}
         | 
| 102 102 | 
             
                    expect {
         | 
| 103 | 
            -
                      @comment. | 
| 103 | 
            +
                      @comment.update(invalid_comment_attributes)
         | 
| 104 104 | 
             
                    }.to_not raise_error
         | 
| 105 105 | 
             
                    expect(@comment.published_at.utc.strftime("%FT%T%:z")).to eq(Time.new(2014, 12, 22, 12, 34).utc.strftime("%FT%T%:z"))
         | 
| 106 106 | 
             
                  end
         | 
| @@ -109,24 +109,24 @@ describe "HasSafeDates" do | |
| 109 109 | 
             
                    invalid_post_attributes = {'published_date(1i)' => "2001", 'published_date(2i)' => "12", 'published_date(3i)' => "17", 'published_date(4i)' => "12", 'published_date(5i)' => "34"}
         | 
| 110 110 | 
             
                    invalid_comment_attributes = {'published_at(1i)' => "2001", 'published_at(2i)' => "15", 'published_at(3i)' => "17", 'published_at(4i)' => "12", 'published_at(5i)' => "34"}
         | 
| 111 111 | 
             
                    expect {
         | 
| 112 | 
            -
                      @post. | 
| 113 | 
            -
                      @comment. | 
| 112 | 
            +
                      @post.update(invalid_post_attributes)
         | 
| 113 | 
            +
                      @comment.update(invalid_comment_attributes)
         | 
| 114 114 | 
             
                    }.to_not raise_error
         | 
| 115 115 | 
             
                  end
         | 
| 116 116 |  | 
| 117 117 | 
             
                  it "does not interfere with a date column that it has not been told to make safe" do
         | 
| 118 118 | 
             
                    invalid_attributes = {'unsafe_date(1i)' => "2011", 'unsafe_date(2i)' => "9", 'unsafe_date(3i)' => "83", 'unsafe_date(4i)' => "12", 'unsafe_date(5i)' => "34"}
         | 
| 119 119 | 
             
                    expect {
         | 
| 120 | 
            -
                      @post. | 
| 120 | 
            +
                      @post.update(invalid_attributes)
         | 
| 121 121 | 
             
                    }.to raise_error(ActiveRecord::MultiparameterAssignmentErrors)
         | 
| 122 122 | 
             
                  end
         | 
| 123 123 |  | 
| 124 124 | 
             
                  it "adds an error when Chronic returns nil" do
         | 
| 125 125 | 
             
                    invalid_comment_attributes = {'published_at(1i)' => "2009", 'published_at(2i)' => "12", 'published_at(3i)' => "90", 'published_at(4i)' => "12", 'published_at(5i)' => "34"}
         | 
| 126 | 
            -
                    @comment. | 
| 126 | 
            +
                    @comment.update(invalid_comment_attributes)
         | 
| 127 127 | 
             
                    @comment.errors[:published_at].should == ['is not a real date']
         | 
| 128 128 | 
             
                  end
         | 
| 129 129 | 
             
                end
         | 
| 130 130 | 
             
              end
         | 
| 131 131 |  | 
| 132 | 
            -
            end
         | 
| 132 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: has_safe_dates
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version:  | 
| 4 | 
            +
              version: 2.0.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - kylejginavan
         | 
| @@ -16,14 +16,28 @@ dependencies: | |
| 16 16 | 
             
                requirements:
         | 
| 17 17 | 
             
                - - "~>"
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version:  | 
| 19 | 
            +
                    version: '6.0'
         | 
| 20 20 | 
             
              type: :development
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 24 | 
             
                - - "~>"
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version:  | 
| 26 | 
            +
                    version: '6.0'
         | 
| 27 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            +
              name: bundler
         | 
| 29 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            +
                requirements:
         | 
| 31 | 
            +
                - - "~>"
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            +
                    version: '1.0'
         | 
| 34 | 
            +
              type: :development
         | 
| 35 | 
            +
              prerelease: false
         | 
| 36 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            +
                requirements:
         | 
| 38 | 
            +
                - - "~>"
         | 
| 39 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            +
                    version: '1.0'
         | 
| 27 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 42 | 
             
              name: chronic
         | 
| 29 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -39,15 +53,12 @@ dependencies: | |
| 39 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 54 | 
             
                    version: '0'
         | 
| 41 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            -
              name:  | 
| 56 | 
            +
              name: database_cleaner
         | 
| 43 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 58 | 
             
                requirements:
         | 
| 45 59 | 
             
                - - ">="
         | 
| 46 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 61 | 
             
                    version: '0'
         | 
| 48 | 
            -
                - - "<"
         | 
| 49 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 50 | 
            -
                    version: '3'
         | 
| 51 62 | 
             
              type: :development
         | 
| 52 63 | 
             
              prerelease: false
         | 
| 53 64 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| @@ -55,9 +66,6 @@ dependencies: | |
| 55 66 | 
             
                - - ">="
         | 
| 56 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| 57 68 | 
             
                    version: '0'
         | 
| 58 | 
            -
                - - "<"
         | 
| 59 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 60 | 
            -
                    version: '3'
         | 
| 61 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 62 70 | 
             
              name: rdoc
         | 
| 63 71 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -73,26 +81,15 @@ dependencies: | |
| 73 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 74 82 | 
             
                    version: '3.12'
         | 
| 75 83 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 76 | 
            -
              name:  | 
| 77 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 78 | 
            -
                requirements:
         | 
| 79 | 
            -
                - - "~>"
         | 
| 80 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 81 | 
            -
                    version: '1.0'
         | 
| 82 | 
            -
              type: :development
         | 
| 83 | 
            -
              prerelease: false
         | 
| 84 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 85 | 
            -
                requirements:
         | 
| 86 | 
            -
                - - "~>"
         | 
| 87 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 88 | 
            -
                    version: '1.0'
         | 
| 89 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 90 | 
            -
              name: sqlite3
         | 
| 84 | 
            +
              name: rspec
         | 
| 91 85 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 92 86 | 
             
                requirements:
         | 
| 93 87 | 
             
                - - ">="
         | 
| 94 88 | 
             
                  - !ruby/object:Gem::Version
         | 
| 95 89 | 
             
                    version: '0'
         | 
| 90 | 
            +
                - - "<"
         | 
| 91 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 92 | 
            +
                    version: '3'
         | 
| 96 93 | 
             
              type: :development
         | 
| 97 94 | 
             
              prerelease: false
         | 
| 98 95 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| @@ -100,22 +97,31 @@ dependencies: | |
| 100 97 | 
             
                - - ">="
         | 
| 101 98 | 
             
                  - !ruby/object:Gem::Version
         | 
| 102 99 | 
             
                    version: '0'
         | 
| 100 | 
            +
                - - "<"
         | 
| 101 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 102 | 
            +
                    version: '3'
         | 
| 103 103 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 104 | 
            -
              name:  | 
| 104 | 
            +
              name: rspec_junit_formatter
         | 
| 105 105 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 106 106 | 
             
                requirements:
         | 
| 107 107 | 
             
                - - ">="
         | 
| 108 108 | 
             
                  - !ruby/object:Gem::Version
         | 
| 109 | 
            -
                    version:  | 
| 109 | 
            +
                    version: 0.3.0
         | 
| 110 | 
            +
                - - "~>"
         | 
| 111 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 112 | 
            +
                    version: '0.3'
         | 
| 110 113 | 
             
              type: :development
         | 
| 111 114 | 
             
              prerelease: false
         | 
| 112 115 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 113 116 | 
             
                requirements:
         | 
| 114 117 | 
             
                - - ">="
         | 
| 115 118 | 
             
                  - !ruby/object:Gem::Version
         | 
| 116 | 
            -
                    version:  | 
| 119 | 
            +
                    version: 0.3.0
         | 
| 120 | 
            +
                - - "~>"
         | 
| 121 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 122 | 
            +
                    version: '0.3'
         | 
| 117 123 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 118 | 
            -
              name:  | 
| 124 | 
            +
              name: sqlite3
         | 
| 119 125 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 120 126 | 
             
                requirements:
         | 
| 121 127 | 
             
                - - ">="
         | 
| @@ -137,6 +143,8 @@ extra_rdoc_files: | |
| 137 143 | 
             
            - MIT-LICENSE.txt
         | 
| 138 144 | 
             
            - README.md
         | 
| 139 145 | 
             
            files:
         | 
| 146 | 
            +
            - ".circleci/config.yml"
         | 
| 147 | 
            +
            - ".gitignore"
         | 
| 140 148 | 
             
            - Gemfile
         | 
| 141 149 | 
             
            - MIT-LICENSE.txt
         | 
| 142 150 | 
             
            - README.md
         | 
| @@ -167,9 +175,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 167 175 | 
             
                - !ruby/object:Gem::Version
         | 
| 168 176 | 
             
                  version: '0'
         | 
| 169 177 | 
             
            requirements: []
         | 
| 170 | 
            -
             | 
| 171 | 
            -
            rubygems_version: 2.5.1
         | 
| 178 | 
            +
            rubygems_version: 3.0.3
         | 
| 172 179 | 
             
            signing_key: 
         | 
| 173 180 | 
             
            specification_version: 3
         | 
| 174 181 | 
             
            summary: Chronic based date setting for ActiveRecord models
         | 
| 175 | 
            -
            test_files: | 
| 182 | 
            +
            test_files:
         | 
| 183 | 
            +
            - spec/db/database.yml
         | 
| 184 | 
            +
            - spec/db/schema.rb
         | 
| 185 | 
            +
            - spec/has_safe_dates_spec.rb
         | 
| 186 | 
            +
            - spec/spec_helper.rb
         |