diff --git a/.gitignore b/.gitignore index b6db9ec..604e863 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ gemfiles/*.lock gemfiles/.bundle/ tmp/ .rubocop-* +/coverage/ diff --git a/.pryrc b/.pryrc new file mode 100644 index 0000000..68b1922 --- /dev/null +++ b/.pryrc @@ -0,0 +1,7 @@ +# Alieases for debugger. +if defined?(PryByebug) || defined?(PryDebugger) + Pry.commands.alias_command 'c', 'continue' + Pry.commands.alias_command 's', 'step' + Pry.commands.alias_command 'n', 'next' + Pry.commands.alias_command 'f', 'finish' +end diff --git a/Gemfile b/Gemfile index 7700f4f..73e4987 100644 --- a/Gemfile +++ b/Gemfile @@ -15,6 +15,7 @@ gem 'rails' gem 'sidekiq' gem 'test-unit' +gem 'simplecov', require: false gem 'mocha' gem 'thoughtbot-shoulda', '>= 2.9.0' diff --git a/Rakefile b/Rakefile index 3582859..12a4fe0 100644 --- a/Rakefile +++ b/Rakefile @@ -3,7 +3,6 @@ require 'rake/testtask' require 'rdoc/task' $LOAD_PATH << File.join(File.dirname(__FILE__), 'lib') -require 'paperclip' import 'lib/tasks/paperclip_tasks.rake' @@ -19,7 +18,7 @@ Rake::TestTask.new(:test) do |t| end desc 'Start an IRB session with all necessary files required.' -task :shell do +task :shell => :load_paperclip do chdir File.dirname(__FILE__) exec 'irb -I lib/ -I lib/paperclip -r rubygems -r active_record -r tempfile -r init' end @@ -62,23 +61,28 @@ exclude_file_globs = ["test/s3.yml", "test/pkg/*", "test/tmp", "test/tmp/*"] -spec = Gem::Specification.new do |s| - s.name = "paperclip" - s.version = Paperclip::VERSION - s.author = "Jon Yurek" - s.email = "jyurek@thoughtbot.com" - s.homepage = "http://www.thoughtbot.com/projects/paperclip" - s.platform = Gem::Platform::RUBY - s.summary = "File attachments as attributes for ActiveRecord" - s.files = FileList[include_file_globs].to_a - FileList[exclude_file_globs].to_a - s.require_path = "lib" - s.test_files = FileList["test/**/test_*.rb"].to_a - s.rubyforge_project = "paperclip" - s.extra_rdoc_files = FileList["README*"].to_a - s.rdoc_options << '--line-numbers' << '--inline-source' - s.requirements << "ImageMagick" - s.add_development_dependency 'thoughtbot-shoulda' - s.add_development_dependency 'mocha' + +def spec + # TODO: require 'paperclip/version' + require 'paperclip' + Gem::Specification.new do |s| + s.name = "paperclip" + s.version = Paperclip::VERSION + s.author = "Jon Yurek" + s.email = "jyurek@thoughtbot.com" + s.homepage = "http://www.thoughtbot.com/projects/paperclip" + s.platform = Gem::Platform::RUBY + s.summary = "File attachments as attributes for ActiveRecord" + s.files = FileList[include_file_globs].to_a - FileList[exclude_file_globs].to_a + s.require_path = "lib" + s.test_files = FileList["test/**/test_*.rb"].to_a + s.rubyforge_project = "paperclip" + s.extra_rdoc_files = FileList["README*"].to_a + s.rdoc_options << '--line-numbers' << '--inline-source' + s.requirements << "ImageMagick" + s.add_development_dependency 'thoughtbot-shoulda' + s.add_development_dependency 'mocha' + end end desc "Print a list of the files to be put into the gem" diff --git a/test/test_helper.rb b/test/test_helper.rb index 3e4684e..5e8c15b 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true require 'rubygems' +require 'bundler/setup' + require 'test/unit' require 'shoulda' require 'mocha/test_unit' @@ -13,6 +15,24 @@ require 'active_record' require 'active_support' require 'rails' +if ENV['COVERAGE'] + require 'simplecov' + + SimpleCov.external_at_exit = true + Test::Unit.at_exit do + SimpleCov.at_exit_behavior + end + SimpleCov.command_name 'test:units' + SimpleCov.start do + load_profile "test_frameworks" + + add_group "Storage", "lib/paperclip/storage/" + add_group "Libraries", "lib/" + + track_files "{lib}/**/*.rb" + end +end + ROOT = File.expand_path('../', __dir__) ENV['RAILS_ENV'] = 'test' @@ -20,9 +40,10 @@ class TestRailsApp < Rails::Application; end Rails.application.config.root = "#{ROOT}/tmp/rails" $LOAD_PATH << File.join(ROOT, 'lib') -$LOAD_PATH << File.join(ROOT, 'lib', 'paperclip') +$LOAD_PATH << File.join(ROOT, 'lib/paperclip') # ?? -require File.join(ROOT, 'lib', 'paperclip.rb') +require 'paperclip' +# require File.join(ROOT, 'lib/paperclip.rb') require 'shoulda_macros/paperclip'