diff --git a/.autotest b/.autotest new file mode 100644 index 0000000..95cc903 --- /dev/null +++ b/.autotest @@ -0,0 +1,12 @@ +Autotest.add_hook(:initialize) {|at| + at.add_exception %r{^\.git} # ignore Version Control System + at.add_exception %r{^./tmp} # ignore temp files, lest autotest will run again, and again... + at.clear_mappings # take out the default (test/test*rb) + at.add_mapping(%r{^(lib)|(util)/.*\.rb$}) {|f, _| + Dir['spec/**/*.rb'] + } + at.add_mapping(%r%^spec/.*\.rb$%) {|filename, _| + filename + } + nil +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4040c6c --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*.gem +.bundle +Gemfile.lock +pkg/* diff --git a/.rspec b/.rspec new file mode 100644 index 0000000..c29a202 --- /dev/null +++ b/.rspec @@ -0,0 +1 @@ +-c -f d diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..704ad71 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,10 @@ +rvm: + - 1.8.7 + - 1.9.2 + - 1.9.3 + - rbx + - rbx-2.0 + - jruby + - ruby-head + - ree + diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..6a2cbf2 --- /dev/null +++ b/Gemfile @@ -0,0 +1,6 @@ +source "http://rubygems.org" + +# Specify your gem's dependencies in sirup.gemspec +gemspec +gem 'rspec' +gem 'cucumber' diff --git a/Rakefile b/Rakefile new file mode 100644 index 0000000..8748038 --- /dev/null +++ b/Rakefile @@ -0,0 +1,43 @@ +require "bundler/gem_tasks" + +# BDD section + +# RSpec part +require 'rspec/core/rake_task' +desc "Run specs" +RSpec::Core::RakeTask.new(:spec) do |t| + t.rspec_opts = %w(--color) +end +namespace :spec do + desc "Run specs with output in documentation format" + RSpec::Core::RakeTask.new(:doc) do |t| + t.rspec_opts = ["--color", "--format d"] + end +end + +unless ENV['TRAVIS'] + desc "Start Autotest CI" + task :autotest => [".autotest", ".rspec"] do + system "bundle exec autotest" + end +end + + +# Cucumber part +require 'cucumber/rake/task' +Cucumber::Rake::Task.new(:features) do |features| + features.cucumber_opts = "features --tags ~@wip --format progress" +end +namespace :features do + Cucumber::Rake::Task.new(:pretty, "Run Cucumber features with output in pretty format") do |features| + features.cucumber_opts = "features --tags ~@wip --format pretty" + end + Cucumber::Rake::Task.new(:wip, "Run @wip (Work In Progress) Cucumber features") do |features| + features.cucumber_opts = "features --tags @wip --format progress" + end +end + +# Default task +desc "Defaul task" +task :default => :spec + diff --git a/features/step_definitions/sirup_steps.rb b/features/step_definitions/sirup_steps.rb new file mode 100644 index 0000000..e69de29 diff --git a/features/support/env.rb b/features/support/env.rb new file mode 100644 index 0000000..ece1b59 --- /dev/null +++ b/features/support/env.rb @@ -0,0 +1,2 @@ +require 'rubygems' +require 'bundler/setup' \ No newline at end of file diff --git a/features/support/helpers.rb b/features/support/helpers.rb new file mode 100644 index 0000000..1c696ef --- /dev/null +++ b/features/support/helpers.rb @@ -0,0 +1,6 @@ +module Sirup + module CucumberHelpers + end +end + +World(Sirup::CucumberHelpers) diff --git a/lib/sirup.rb b/lib/sirup.rb new file mode 100644 index 0000000..4001d1c --- /dev/null +++ b/lib/sirup.rb @@ -0,0 +1,5 @@ +require "sirup/version" + +module Sirup + # Your code goes here... +end diff --git a/lib/sirup/version.rb b/lib/sirup/version.rb new file mode 100644 index 0000000..688f7ef --- /dev/null +++ b/lib/sirup/version.rb @@ -0,0 +1,3 @@ +module Sirup + VERSION = "0.0.0" +end diff --git a/sirup.gemspec b/sirup.gemspec new file mode 100644 index 0000000..6210e45 --- /dev/null +++ b/sirup.gemspec @@ -0,0 +1,27 @@ +# -*- encoding: utf-8 -*- +$:.push File.expand_path("../lib", __FILE__) +require "sirup/version" + +Gem::Specification.new do |s| + s.name = "sirup" + s.version = Sirup::VERSION + s.authors = ["Pavel Argentov"] + s.email = ["argentoff@gmail.com"] + s.homepage = "https://github.com/argent-smith" + s.summary = %q{SIruP: pure ruby SIP implementation} + s.description = %q{At this moment this library/script are only intended for testing/pinging/checking the remote SIP server. You are welcome to extend it if you wish!} + + s.files = `git ls-files`.split("\n") + s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n") + s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) } + s.require_paths = ["lib"] + + # specify any dependencies here; for example: + s.add_development_dependency "rspec" + s.add_development_dependency "cucumber" + s.add_development_dependency "bddgen" + s.add_development_dependency "ZenTest" + s.add_development_dependency "test-unit" + s.add_development_dependency "redgreen" +end + diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb new file mode 100644 index 0000000..b5d8529 --- /dev/null +++ b/spec/spec_helper.rb @@ -0,0 +1,13 @@ +$LOAD_PATH.unshift(File.dirname(__FILE__)) +$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) + +require "rubygems" +require "bundler/setup" + +require 'rspec' + +require 'sirup' + +RSpec.configure do |config| + config.fail_fast = true +end