integrity 0.1.8 → 0.1.9
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +7 -0
- data/Rakefile +59 -132
- data/VERSION.yml +1 -1
- data/config/config.ru +29 -0
- data/config/config.sample.ru +6 -16
- data/config/config.sample.yml +15 -12
- data/config/config.yml +34 -0
- data/lib/integrity.rb +13 -13
- data/lib/integrity/app.rb +138 -0
- data/lib/integrity/author.rb +39 -0
- data/lib/integrity/build.rb +54 -31
- data/lib/integrity/commit.rb +71 -0
- data/lib/integrity/helpers.rb +3 -3
- data/lib/integrity/helpers/authorization.rb +2 -2
- data/lib/integrity/helpers/forms.rb +3 -3
- data/lib/integrity/helpers/pretty_output.rb +1 -1
- data/lib/integrity/helpers/rendering.rb +6 -1
- data/lib/integrity/helpers/resources.rb +9 -3
- data/lib/integrity/helpers/urls.rb +15 -13
- data/lib/integrity/installer.rb +45 -56
- data/lib/integrity/migrations.rb +31 -48
- data/lib/integrity/notifier.rb +14 -16
- data/lib/integrity/notifier/base.rb +29 -19
- data/lib/integrity/notifier/test_helpers.rb +100 -0
- data/lib/integrity/project.rb +69 -33
- data/lib/integrity/project_builder.rb +23 -14
- data/lib/integrity/scm/git.rb +15 -14
- data/lib/integrity/scm/git/uri.rb +9 -9
- data/test/acceptance/api_test.rb +97 -0
- data/test/acceptance/browse_project_builds_test.rb +65 -0
- data/test/acceptance/browse_project_test.rb +95 -0
- data/test/acceptance/build_notifications_test.rb +42 -0
- data/test/acceptance/create_project_test.rb +97 -0
- data/test/acceptance/delete_project_test.rb +53 -0
- data/test/acceptance/edit_project_test.rb +117 -0
- data/test/acceptance/error_page_test.rb +18 -0
- data/test/acceptance/helpers.rb +2 -0
- data/test/acceptance/installer_test.rb +62 -0
- data/test/acceptance/manual_build_project_test.rb +82 -0
- data/test/acceptance/notifier_test.rb +109 -0
- data/test/acceptance/project_syndication_test.rb +30 -0
- data/test/acceptance/stylesheet_test.rb +18 -0
- data/test/helpers.rb +59 -26
- data/test/helpers/acceptance.rb +19 -65
- data/test/helpers/acceptance/email_notifier.rb +55 -0
- data/test/helpers/acceptance/git_helper.rb +15 -15
- data/test/helpers/acceptance/textfile_notifier.rb +3 -3
- data/test/helpers/expectations.rb +0 -1
- data/test/helpers/expectations/be_a.rb +4 -4
- data/test/helpers/expectations/change.rb +5 -5
- data/test/helpers/expectations/have.rb +4 -4
- data/test/helpers/expectations/predicates.rb +4 -4
- data/test/helpers/fixtures.rb +44 -18
- data/test/helpers/initial_migration_fixture.sql +44 -0
- data/test/unit/build_test.rb +51 -0
- data/test/unit/commit_test.rb +83 -0
- data/test/unit/helpers_test.rb +56 -0
- data/test/unit/integrity_test.rb +18 -0
- data/test/unit/migrations_test.rb +56 -0
- data/test/unit/notifier_test.rb +123 -0
- data/test/unit/project_builder_test.rb +108 -0
- data/test/unit/project_test.rb +282 -0
- data/test/unit/scm_test.rb +54 -0
- data/vendor/webrat/History.txt +306 -0
- data/vendor/webrat/MIT-LICENSE.txt +19 -0
- data/vendor/webrat/README.rdoc +85 -0
- data/vendor/webrat/Rakefile +151 -0
- data/vendor/webrat/install.rb +1 -0
- data/vendor/webrat/lib/webrat.rb +34 -0
- data/vendor/webrat/lib/webrat/core.rb +14 -0
- data/vendor/webrat/lib/webrat/core/configuration.rb +98 -0
- data/vendor/webrat/lib/webrat/core/elements/area.rb +31 -0
- data/vendor/webrat/lib/webrat/core/elements/element.rb +33 -0
- data/vendor/webrat/lib/webrat/core/elements/field.rb +403 -0
- data/vendor/webrat/lib/webrat/core/elements/form.rb +103 -0
- data/vendor/webrat/lib/webrat/core/elements/label.rb +31 -0
- data/vendor/webrat/lib/webrat/core/elements/link.rb +90 -0
- data/vendor/webrat/lib/webrat/core/elements/select_option.rb +35 -0
- data/vendor/webrat/lib/webrat/core/locators.rb +20 -0
- data/vendor/webrat/lib/webrat/core/locators/area_locator.rb +38 -0
- data/vendor/webrat/lib/webrat/core/locators/button_locator.rb +54 -0
- data/vendor/webrat/lib/webrat/core/locators/field_by_id_locator.rb +37 -0
- data/vendor/webrat/lib/webrat/core/locators/field_labeled_locator.rb +56 -0
- data/vendor/webrat/lib/webrat/core/locators/field_locator.rb +25 -0
- data/vendor/webrat/lib/webrat/core/locators/field_named_locator.rb +41 -0
- data/vendor/webrat/lib/webrat/core/locators/form_locator.rb +19 -0
- data/vendor/webrat/lib/webrat/core/locators/label_locator.rb +34 -0
- data/vendor/webrat/lib/webrat/core/locators/link_locator.rb +66 -0
- data/vendor/webrat/lib/webrat/core/locators/locator.rb +20 -0
- data/vendor/webrat/lib/webrat/core/locators/select_option_locator.rb +59 -0
- data/vendor/webrat/lib/webrat/core/logging.rb +21 -0
- data/vendor/webrat/lib/webrat/core/matchers.rb +4 -0
- data/vendor/webrat/lib/webrat/core/matchers/have_content.rb +73 -0
- data/vendor/webrat/lib/webrat/core/matchers/have_selector.rb +74 -0
- data/vendor/webrat/lib/webrat/core/matchers/have_tag.rb +21 -0
- data/vendor/webrat/lib/webrat/core/matchers/have_xpath.rb +147 -0
- data/vendor/webrat/lib/webrat/core/methods.rb +61 -0
- data/vendor/webrat/lib/webrat/core/mime.rb +29 -0
- data/vendor/webrat/lib/webrat/core/save_and_open_page.rb +50 -0
- data/vendor/webrat/lib/webrat/core/scope.rb +350 -0
- data/vendor/webrat/lib/webrat/core/session.rb +281 -0
- data/vendor/webrat/lib/webrat/core/xml.rb +115 -0
- data/vendor/webrat/lib/webrat/core/xml/hpricot.rb +19 -0
- data/vendor/webrat/lib/webrat/core/xml/nokogiri.rb +76 -0
- data/vendor/webrat/lib/webrat/core/xml/rexml.rb +24 -0
- data/vendor/webrat/lib/webrat/core_extensions/blank.rb +58 -0
- data/vendor/webrat/lib/webrat/core_extensions/deprecate.rb +8 -0
- data/vendor/webrat/lib/webrat/core_extensions/detect_mapped.rb +12 -0
- data/vendor/webrat/lib/webrat/core_extensions/meta_class.rb +6 -0
- data/vendor/webrat/lib/webrat/core_extensions/nil_to_param.rb +5 -0
- data/vendor/webrat/lib/webrat/mechanize.rb +74 -0
- data/vendor/webrat/lib/webrat/merb.rb +9 -0
- data/vendor/webrat/lib/webrat/merb_session.rb +65 -0
- data/vendor/webrat/lib/webrat/rack.rb +24 -0
- data/vendor/webrat/lib/webrat/rails.rb +105 -0
- data/vendor/webrat/lib/webrat/rspec-rails.rb +13 -0
- data/vendor/webrat/lib/webrat/selenium.rb +154 -0
- data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/button.js +12 -0
- data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/label.js +16 -0
- data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/webrat.js +5 -0
- data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/webratlink.js +9 -0
- data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/webratlinkwithin.js +15 -0
- data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/webratselectwithoption.js +5 -0
- data/vendor/webrat/lib/webrat/selenium/matchers.rb +4 -0
- data/vendor/webrat/lib/webrat/selenium/matchers/have_content.rb +66 -0
- data/vendor/webrat/lib/webrat/selenium/matchers/have_selector.rb +49 -0
- data/vendor/webrat/lib/webrat/selenium/matchers/have_tag.rb +72 -0
- data/vendor/webrat/lib/webrat/selenium/matchers/have_xpath.rb +45 -0
- data/vendor/webrat/lib/webrat/selenium/selenium_extensions.js +6 -0
- data/vendor/webrat/lib/webrat/selenium/selenium_session.rb +247 -0
- data/vendor/webrat/lib/webrat/sinatra.rb +44 -0
- data/vendor/webrat/spec/fakes/test_session.rb +34 -0
- data/vendor/webrat/spec/integration/merb/Rakefile +35 -0
- data/vendor/webrat/spec/integration/merb/app/controllers/application.rb +2 -0
- data/vendor/webrat/spec/integration/merb/app/controllers/exceptions.rb +13 -0
- data/vendor/webrat/spec/integration/merb/app/controllers/testing.rb +18 -0
- data/vendor/webrat/spec/integration/merb/app/views/exceptions/not_acceptable.html.erb +63 -0
- data/vendor/webrat/spec/integration/merb/app/views/exceptions/not_found.html.erb +47 -0
- data/vendor/webrat/spec/integration/merb/app/views/layout/application.html.erb +12 -0
- data/vendor/webrat/spec/integration/merb/app/views/testing/show_form.html.erb +27 -0
- data/vendor/webrat/spec/integration/merb/config/environments/development.rb +15 -0
- data/vendor/webrat/spec/integration/merb/config/environments/rake.rb +11 -0
- data/vendor/webrat/spec/integration/merb/config/environments/test.rb +14 -0
- data/vendor/webrat/spec/integration/merb/config/init.rb +25 -0
- data/vendor/webrat/spec/integration/merb/config/rack.rb +11 -0
- data/vendor/webrat/spec/integration/merb/config/router.rb +33 -0
- data/vendor/webrat/spec/integration/merb/spec/spec.opts +1 -0
- data/vendor/webrat/spec/integration/merb/spec/spec_helper.rb +24 -0
- data/vendor/webrat/spec/integration/merb/spec/webrat_spec.rb +32 -0
- data/vendor/webrat/spec/integration/merb/tasks/merb.thor/app_script.rb +31 -0
- data/vendor/webrat/spec/integration/merb/tasks/merb.thor/common.rb +64 -0
- data/vendor/webrat/spec/integration/merb/tasks/merb.thor/gem_ext.rb +124 -0
- data/vendor/webrat/spec/integration/merb/tasks/merb.thor/main.thor +150 -0
- data/vendor/webrat/spec/integration/merb/tasks/merb.thor/ops.rb +93 -0
- data/vendor/webrat/spec/integration/merb/tasks/merb.thor/utils.rb +40 -0
- data/vendor/webrat/spec/integration/rails/Rakefile +30 -0
- data/vendor/webrat/spec/integration/rails/app/controllers/application.rb +15 -0
- data/vendor/webrat/spec/integration/rails/app/controllers/webrat_controller.rb +39 -0
- data/vendor/webrat/spec/integration/rails/app/views/webrat/before_redirect_form.html.erb +4 -0
- data/vendor/webrat/spec/integration/rails/app/views/webrat/form.html.erb +28 -0
- data/vendor/webrat/spec/integration/rails/config/boot.rb +109 -0
- data/vendor/webrat/spec/integration/rails/config/environment.rb +12 -0
- data/vendor/webrat/spec/integration/rails/config/environments/development.rb +17 -0
- data/vendor/webrat/spec/integration/rails/config/environments/selenium.rb +22 -0
- data/vendor/webrat/spec/integration/rails/config/environments/test.rb +22 -0
- data/vendor/webrat/spec/integration/rails/config/initializers/inflections.rb +10 -0
- data/vendor/webrat/spec/integration/rails/config/initializers/mime_types.rb +5 -0
- data/vendor/webrat/spec/integration/rails/config/initializers/new_rails_defaults.rb +17 -0
- data/vendor/webrat/spec/integration/rails/config/locales/en.yml +5 -0
- data/vendor/webrat/spec/integration/rails/config/routes.rb +14 -0
- data/vendor/webrat/spec/integration/rails/public/404.html +30 -0
- data/vendor/webrat/spec/integration/rails/public/422.html +30 -0
- data/vendor/webrat/spec/integration/rails/public/500.html +33 -0
- data/vendor/webrat/spec/integration/rails/script/about +4 -0
- data/vendor/webrat/spec/integration/rails/script/console +3 -0
- data/vendor/webrat/spec/integration/rails/script/dbconsole +3 -0
- data/vendor/webrat/spec/integration/rails/script/destroy +3 -0
- data/vendor/webrat/spec/integration/rails/script/generate +3 -0
- data/vendor/webrat/spec/integration/rails/script/performance/benchmarker +3 -0
- data/vendor/webrat/spec/integration/rails/script/performance/profiler +3 -0
- data/vendor/webrat/spec/integration/rails/script/performance/request +3 -0
- data/vendor/webrat/spec/integration/rails/script/plugin +3 -0
- data/vendor/webrat/spec/integration/rails/script/process/inspector +3 -0
- data/vendor/webrat/spec/integration/rails/script/process/reaper +3 -0
- data/vendor/webrat/spec/integration/rails/script/process/spawner +3 -0
- data/vendor/webrat/spec/integration/rails/script/runner +3 -0
- data/vendor/webrat/spec/integration/rails/script/server +3 -0
- data/vendor/webrat/spec/integration/rails/test/integration/webrat_test.rb +80 -0
- data/vendor/webrat/spec/integration/rails/test/test_helper.rb +25 -0
- data/vendor/webrat/spec/integration/sinatra/Rakefile +5 -0
- data/vendor/webrat/spec/integration/sinatra/classic_app.rb +64 -0
- data/vendor/webrat/spec/integration/sinatra/modular_app.rb +16 -0
- data/vendor/webrat/spec/integration/sinatra/test/classic_app_test.rb +37 -0
- data/vendor/webrat/spec/integration/sinatra/test/modular_app_test.rb +18 -0
- data/vendor/webrat/spec/integration/sinatra/test/test_helper.rb +16 -0
- data/vendor/webrat/spec/private/core/configuration_spec.rb +104 -0
- data/vendor/webrat/spec/private/core/field_spec.rb +67 -0
- data/vendor/webrat/spec/private/core/link_spec.rb +24 -0
- data/vendor/webrat/spec/private/core/logging_spec.rb +10 -0
- data/vendor/webrat/spec/private/core/session_spec.rb +198 -0
- data/vendor/webrat/spec/private/mechanize/mechanize_session_spec.rb +81 -0
- data/vendor/webrat/spec/private/merb/merb_session_spec.rb +42 -0
- data/vendor/webrat/spec/private/nokogiri_spec.rb +77 -0
- data/vendor/webrat/spec/private/rails/attaches_file_spec.rb +81 -0
- data/vendor/webrat/spec/private/rails/rails_session_spec.rb +110 -0
- data/vendor/webrat/spec/private/selenium/selenium_session_spec.rb +44 -0
- data/vendor/webrat/spec/private/selenium/selenium_spec.rb +109 -0
- data/vendor/webrat/spec/public/basic_auth_spec.rb +24 -0
- data/vendor/webrat/spec/public/check_spec.rb +191 -0
- data/vendor/webrat/spec/public/choose_spec.rb +118 -0
- data/vendor/webrat/spec/public/click_area_spec.rb +106 -0
- data/vendor/webrat/spec/public/click_button_spec.rb +502 -0
- data/vendor/webrat/spec/public/click_link_spec.rb +469 -0
- data/vendor/webrat/spec/public/fill_in_spec.rb +209 -0
- data/vendor/webrat/spec/public/locators/field_by_xpath_spec.rb +19 -0
- data/vendor/webrat/spec/public/locators/field_labeled_spec.rb +157 -0
- data/vendor/webrat/spec/public/locators/field_with_id_spec.rb +16 -0
- data/vendor/webrat/spec/public/matchers/contain_spec.rb +114 -0
- data/vendor/webrat/spec/public/matchers/have_selector_spec.rb +135 -0
- data/vendor/webrat/spec/public/matchers/have_tag_spec.rb +39 -0
- data/vendor/webrat/spec/public/matchers/have_xpath_spec.rb +123 -0
- data/vendor/webrat/spec/public/reload_spec.rb +10 -0
- data/vendor/webrat/spec/public/save_and_open_spec.rb +51 -0
- data/vendor/webrat/spec/public/select_date_spec.rb +88 -0
- data/vendor/webrat/spec/public/select_datetime_spec.rb +106 -0
- data/vendor/webrat/spec/public/select_spec.rb +246 -0
- data/vendor/webrat/spec/public/select_time_spec.rb +79 -0
- data/vendor/webrat/spec/public/set_hidden_field_spec.rb +5 -0
- data/vendor/webrat/spec/public/submit_form_spec.rb +5 -0
- data/vendor/webrat/spec/public/visit_spec.rb +58 -0
- data/vendor/webrat/spec/public/within_spec.rb +177 -0
- data/vendor/webrat/spec/rcov.opts +1 -0
- data/vendor/webrat/spec/spec.opts +2 -0
- data/vendor/webrat/spec/spec_helper.rb +50 -0
- data/vendor/webrat/vendor/selenium-server.jar +0 -0
- data/views/_commit_info.haml +24 -0
- data/views/build.haml +2 -2
- data/views/error.haml +4 -3
- data/views/home.haml +3 -5
- data/views/integrity.sass +19 -6
- data/views/new.haml +6 -6
- data/views/project.builder +9 -9
- data/views/project.haml +14 -12
- metadata +319 -124
- data/app.rb +0 -138
- data/integrity.gemspec +0 -76
- data/lib/integrity/core_ext/string.rb +0 -5
- data/test/helpers/expectations/have_tag.rb +0 -128
- data/views/_build_info.haml +0 -18
data/app.rb
DELETED
@@ -1,138 +0,0 @@
|
|
1
|
-
require "sinatra"
|
2
|
-
|
3
|
-
require File.dirname(__FILE__) + "/lib/integrity"
|
4
|
-
require "integrity/helpers"
|
5
|
-
|
6
|
-
set :root, Integrity.root
|
7
|
-
set :public, Integrity.root / "public"
|
8
|
-
set :views, Integrity.root / "views"
|
9
|
-
|
10
|
-
enable :sessions
|
11
|
-
|
12
|
-
include Integrity
|
13
|
-
|
14
|
-
configure :development do
|
15
|
-
config = Integrity.root / "config" / "config.yml"
|
16
|
-
Integrity.config = config if File.exists? config
|
17
|
-
end
|
18
|
-
|
19
|
-
configure do
|
20
|
-
Integrity.new
|
21
|
-
end
|
22
|
-
|
23
|
-
not_found do
|
24
|
-
status 404
|
25
|
-
show :not_found, :title => "lost, are we?"
|
26
|
-
end
|
27
|
-
|
28
|
-
error do
|
29
|
-
@error = request.env['sinatra.error']
|
30
|
-
status 500
|
31
|
-
show :error, :title => "something has gone terribly wrong"
|
32
|
-
end
|
33
|
-
|
34
|
-
before do
|
35
|
-
# The browser only sends http auth data for requests that are explicitly
|
36
|
-
# required to do so. This way we get the real values of +#logged_in?+ and
|
37
|
-
# +#current_user+
|
38
|
-
login_required if session[:user]
|
39
|
-
end
|
40
|
-
|
41
|
-
get "/" do
|
42
|
-
@projects = Project.only_public_unless(authorized?)
|
43
|
-
show :home, :title => "projects"
|
44
|
-
end
|
45
|
-
|
46
|
-
get "/login" do
|
47
|
-
login_required
|
48
|
-
session[:user] = current_user
|
49
|
-
redirect root_url
|
50
|
-
end
|
51
|
-
|
52
|
-
get "/new" do
|
53
|
-
login_required
|
54
|
-
|
55
|
-
@project = Project.new
|
56
|
-
show :new, :title => ["projects", "new project"]
|
57
|
-
end
|
58
|
-
|
59
|
-
post "/" do
|
60
|
-
login_required
|
61
|
-
|
62
|
-
@project = Project.new(params[:project_data])
|
63
|
-
if @project.save
|
64
|
-
@project.enable_notifiers(params["enabled_notifiers[]"], params["notifiers"])
|
65
|
-
redirect project_url(@project)
|
66
|
-
else
|
67
|
-
show :new, :title => ["projects", "new project"]
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
get "/:project" do
|
72
|
-
login_required unless current_project.public?
|
73
|
-
show :project, :title => ["projects", current_project.name]
|
74
|
-
end
|
75
|
-
|
76
|
-
get "/:project.atom" do
|
77
|
-
login_required unless current_project.public?
|
78
|
-
response["Content-Type"] = "application/rss+xml; charset=utf-8"
|
79
|
-
builder :project
|
80
|
-
end
|
81
|
-
|
82
|
-
put "/:project" do
|
83
|
-
login_required
|
84
|
-
|
85
|
-
if current_project.update_attributes(params[:project_data])
|
86
|
-
current_project.enable_notifiers(params["enabled_notifiers"], params["notifiers"])
|
87
|
-
redirect project_url(current_project)
|
88
|
-
else
|
89
|
-
show :new, :title => ["projects", current_project.permalink, "edit"]
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
delete "/:project" do
|
94
|
-
login_required
|
95
|
-
|
96
|
-
current_project.destroy
|
97
|
-
redirect root_url
|
98
|
-
end
|
99
|
-
|
100
|
-
get "/:project/edit" do
|
101
|
-
login_required
|
102
|
-
|
103
|
-
show :new, :title => ["projects", current_project.permalink, "edit"]
|
104
|
-
end
|
105
|
-
|
106
|
-
post "/:project/push" do
|
107
|
-
login_required
|
108
|
-
|
109
|
-
content_type "text/plain"
|
110
|
-
|
111
|
-
begin
|
112
|
-
current_project.push(params[:payload])
|
113
|
-
"Thanks, build started."
|
114
|
-
rescue JSON::ParserError => exception
|
115
|
-
throw :halt, [422, exception.to_s]
|
116
|
-
end
|
117
|
-
end
|
118
|
-
|
119
|
-
post "/:project/builds" do
|
120
|
-
login_required
|
121
|
-
|
122
|
-
current_project.build
|
123
|
-
redirect project_url(@project)
|
124
|
-
end
|
125
|
-
|
126
|
-
get "/:project/builds/:build" do
|
127
|
-
login_required unless current_project.public?
|
128
|
-
show :build, :title => ["projects", current_project.permalink, current_build.short_commit_identifier]
|
129
|
-
end
|
130
|
-
|
131
|
-
get "/integrity.css" do
|
132
|
-
response["Content-Type"] = "text/css; charset=utf-8"
|
133
|
-
sass :integrity
|
134
|
-
end
|
135
|
-
|
136
|
-
helpers do
|
137
|
-
include Helpers
|
138
|
-
end
|
data/integrity.gemspec
DELETED
@@ -1,76 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
|
3
|
-
Gem::Specification.new do |s|
|
4
|
-
s.name = %q{integrity}
|
5
|
-
s.version = "0.1.8"
|
6
|
-
|
7
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
-
s.authors = ["Nicol\303\241s Sanguinetti", "Simon Rozet"]
|
9
|
-
s.date = %q{2009-02-12}
|
10
|
-
s.default_executable = %q{integrity}
|
11
|
-
s.description = %q{Your Friendly Continuous Integration server. Easy, fun and painless!}
|
12
|
-
s.email = %q{contacto@nicolassanguinetti.info}
|
13
|
-
s.executables = ["integrity"]
|
14
|
-
s.files = ["README.markdown", "Rakefile", "VERSION.yml", "app.rb", "bin/integrity", "config/config.sample.ru", "config/config.sample.yml", "config/thin.sample.yml", "integrity.gemspec", "lib/integrity.rb", "lib/integrity/build.rb", "lib/integrity/core_ext/object.rb", "lib/integrity/core_ext/string.rb", "lib/integrity/helpers.rb", "lib/integrity/helpers/authorization.rb", "lib/integrity/helpers/breadcrumbs.rb", "lib/integrity/helpers/forms.rb", "lib/integrity/helpers/pretty_output.rb", "lib/integrity/helpers/rendering.rb", "lib/integrity/helpers/resources.rb", "lib/integrity/helpers/urls.rb", "lib/integrity/installer.rb", "lib/integrity/migrations.rb", "lib/integrity/notifier.rb", "lib/integrity/notifier/base.rb", "lib/integrity/project.rb", "lib/integrity/project_builder.rb", "lib/integrity/scm.rb", "lib/integrity/scm/git.rb", "lib/integrity/scm/git/uri.rb", "public/buttons.css", "public/reset.css", "public/spinner.gif", "test/helpers.rb", "test/helpers/acceptance.rb", "test/helpers/acceptance/git_helper.rb", "test/helpers/acceptance/textfile_notifier.rb", "test/helpers/expectations.rb", "test/helpers/expectations/be_a.rb", "test/helpers/expectations/change.rb", "test/helpers/expectations/have.rb", "test/helpers/expectations/have_tag.rb", "test/helpers/expectations/predicates.rb", "test/helpers/fixtures.rb", "views/_build_info.haml", "views/build.haml", "views/error.haml", "views/home.haml", "views/integrity.sass", "views/layout.haml", "views/new.haml", "views/not_found.haml", "views/notifier.haml", "views/project.builder", "views/project.haml", "views/unauthorized.haml"]
|
15
|
-
s.homepage = %q{http://integrityapp.com}
|
16
|
-
s.post_install_message = %q{Run `integrity help` for information on how to setup Integrity.}
|
17
|
-
s.require_paths = ["lib"]
|
18
|
-
s.rubyforge_project = %q{integrity}
|
19
|
-
s.rubygems_version = %q{1.3.1}
|
20
|
-
s.summary = %q{The easy and fun Continuous Integration server}
|
21
|
-
|
22
|
-
if s.respond_to? :specification_version then
|
23
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
24
|
-
s.specification_version = 2
|
25
|
-
|
26
|
-
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
27
|
-
s.add_runtime_dependency(%q<sinatra>, [">= 0.9.0.3"])
|
28
|
-
s.add_runtime_dependency(%q<haml>, [">= 2.0.0"])
|
29
|
-
s.add_runtime_dependency(%q<dm-core>, [">= 0.9.5"])
|
30
|
-
s.add_runtime_dependency(%q<dm-validations>, [">= 0.9.5"])
|
31
|
-
s.add_runtime_dependency(%q<dm-types>, [">= 0.9.5"])
|
32
|
-
s.add_runtime_dependency(%q<dm-timestamps>, [">= 0.9.5"])
|
33
|
-
s.add_runtime_dependency(%q<dm-aggregates>, [">= 0.9.5"])
|
34
|
-
s.add_runtime_dependency(%q<dm-migrations>, [">= 0.9.5"])
|
35
|
-
s.add_runtime_dependency(%q<data_objects>, [">= 0.9.5"])
|
36
|
-
s.add_runtime_dependency(%q<do_sqlite3>, [">= 0.9.5"])
|
37
|
-
s.add_runtime_dependency(%q<json>, [">= 0"])
|
38
|
-
s.add_runtime_dependency(%q<foca-sinatra-diddies>, [">= 0.0.2"])
|
39
|
-
s.add_runtime_dependency(%q<thor>, [">= 0"])
|
40
|
-
s.add_runtime_dependency(%q<uuidtools>, [">= 0"])
|
41
|
-
s.add_runtime_dependency(%q<bcrypt-ruby>, [">= 0"])
|
42
|
-
else
|
43
|
-
s.add_dependency(%q<sinatra>, [">= 0.9.0.3"])
|
44
|
-
s.add_dependency(%q<haml>, [">= 2.0.0"])
|
45
|
-
s.add_dependency(%q<dm-core>, [">= 0.9.5"])
|
46
|
-
s.add_dependency(%q<dm-validations>, [">= 0.9.5"])
|
47
|
-
s.add_dependency(%q<dm-types>, [">= 0.9.5"])
|
48
|
-
s.add_dependency(%q<dm-timestamps>, [">= 0.9.5"])
|
49
|
-
s.add_dependency(%q<dm-aggregates>, [">= 0.9.5"])
|
50
|
-
s.add_dependency(%q<dm-migrations>, [">= 0.9.5"])
|
51
|
-
s.add_dependency(%q<data_objects>, [">= 0.9.5"])
|
52
|
-
s.add_dependency(%q<do_sqlite3>, [">= 0.9.5"])
|
53
|
-
s.add_dependency(%q<json>, [">= 0"])
|
54
|
-
s.add_dependency(%q<foca-sinatra-diddies>, [">= 0.0.2"])
|
55
|
-
s.add_dependency(%q<thor>, [">= 0"])
|
56
|
-
s.add_dependency(%q<uuidtools>, [">= 0"])
|
57
|
-
s.add_dependency(%q<bcrypt-ruby>, [">= 0"])
|
58
|
-
end
|
59
|
-
else
|
60
|
-
s.add_dependency(%q<sinatra>, [">= 0.9.0.3"])
|
61
|
-
s.add_dependency(%q<haml>, [">= 2.0.0"])
|
62
|
-
s.add_dependency(%q<dm-core>, [">= 0.9.5"])
|
63
|
-
s.add_dependency(%q<dm-validations>, [">= 0.9.5"])
|
64
|
-
s.add_dependency(%q<dm-types>, [">= 0.9.5"])
|
65
|
-
s.add_dependency(%q<dm-timestamps>, [">= 0.9.5"])
|
66
|
-
s.add_dependency(%q<dm-aggregates>, [">= 0.9.5"])
|
67
|
-
s.add_dependency(%q<dm-migrations>, [">= 0.9.5"])
|
68
|
-
s.add_dependency(%q<data_objects>, [">= 0.9.5"])
|
69
|
-
s.add_dependency(%q<do_sqlite3>, [">= 0.9.5"])
|
70
|
-
s.add_dependency(%q<json>, [">= 0"])
|
71
|
-
s.add_dependency(%q<foca-sinatra-diddies>, [">= 0.0.2"])
|
72
|
-
s.add_dependency(%q<thor>, [">= 0"])
|
73
|
-
s.add_dependency(%q<uuidtools>, [">= 0"])
|
74
|
-
s.add_dependency(%q<bcrypt-ruby>, [">= 0"])
|
75
|
-
end
|
76
|
-
end
|
@@ -1,128 +0,0 @@
|
|
1
|
-
require 'hpricot'
|
2
|
-
|
3
|
-
# evil hack to duck-type CgiResponse so that nested shoulds can use
|
4
|
-
# +rspec_on_rails+ matchers without remembering to call to_s on it
|
5
|
-
#
|
6
|
-
# e.g.
|
7
|
-
#
|
8
|
-
# response.should have_tag("li") do |ul|
|
9
|
-
# ul.should have_text("List Item") # with hack
|
10
|
-
# ul.to_s.should have_text("List Item") # without hack
|
11
|
-
# end
|
12
|
-
class Hpricot::Elem
|
13
|
-
alias body to_s
|
14
|
-
end
|
15
|
-
|
16
|
-
module Matchy::Expectations
|
17
|
-
class HaveTag < Base
|
18
|
-
def initialize(test_case, selector, inner_text_or_options, options, &block)
|
19
|
-
#@expected = expected
|
20
|
-
@test_case = test_case
|
21
|
-
@selector = selector
|
22
|
-
|
23
|
-
if Hash === inner_text_or_options
|
24
|
-
@inner_text = nil
|
25
|
-
@options = inner_text_or_options
|
26
|
-
else
|
27
|
-
@inner_text = inner_text_or_options
|
28
|
-
@options = options
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
def matches?(actual, &block)
|
33
|
-
@actual = actual
|
34
|
-
@doc = hpricot_document(@actual)
|
35
|
-
|
36
|
-
matched_elements = @doc.search(@selector)
|
37
|
-
|
38
|
-
return @options[:count] == 0 if matched_elements.empty?
|
39
|
-
|
40
|
-
matched_elements = filter_on_inner_text(matched_elements) if @inner_text
|
41
|
-
matched_elements = filter_on_nested_expectations(matched_elements, block) if block
|
42
|
-
|
43
|
-
@actual_count = matched_elements.length
|
44
|
-
|
45
|
-
return false unless acceptable_count?(@actual_count)
|
46
|
-
|
47
|
-
!matched_elements.empty?
|
48
|
-
end
|
49
|
-
|
50
|
-
def failure_message
|
51
|
-
explanation = @actual_count ? "but found #{@actual_count}" : "but did not"
|
52
|
-
"expected\n#{@doc.to_s}\nto have #{failure_count_phrase} #{failure_selector_phrase}, #{explanation}"
|
53
|
-
end
|
54
|
-
|
55
|
-
def negative_failure_message
|
56
|
-
explanation = @actual_count ? "but found #{@actual_count}" : "but did"
|
57
|
-
"expected\n#{@doc.to_s}\nnot to have #{failure_count_phrase} #{failure_selector_phrase}, #{explanation}"
|
58
|
-
end
|
59
|
-
|
60
|
-
private
|
61
|
-
def hpricot_document(input)
|
62
|
-
if Hpricot === input
|
63
|
-
input
|
64
|
-
elsif input.respond_to?(:body)
|
65
|
-
Hpricot(input.body)
|
66
|
-
else
|
67
|
-
Hpricot(input.to_s)
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
def filter_on_inner_text(elements)
|
72
|
-
elements.select do |element|
|
73
|
-
next(element.inner_text =~ @inner_text) if @inner_text.is_a?(Regexp)
|
74
|
-
element.inner_text == @inner_text
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
def filter_on_nested_expectations(elements, block)
|
79
|
-
elements.select do |el|
|
80
|
-
begin
|
81
|
-
block.call(el)
|
82
|
-
rescue NoMethodError
|
83
|
-
false
|
84
|
-
else
|
85
|
-
true
|
86
|
-
end
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
def acceptable_count?(actual_count)
|
91
|
-
if @options[:count]
|
92
|
-
return false unless @options[:count] === actual_count
|
93
|
-
end
|
94
|
-
if @options[:minimum]
|
95
|
-
return false unless actual_count >= @options[:minimum]
|
96
|
-
end
|
97
|
-
if @options[:maximum]
|
98
|
-
return false unless actual_count <= @options[:maximum]
|
99
|
-
end
|
100
|
-
|
101
|
-
true
|
102
|
-
end
|
103
|
-
|
104
|
-
def failure_count_phrase
|
105
|
-
if @options[:count]
|
106
|
-
"#{@options[:count]} elements matching"
|
107
|
-
elsif @options[:minimum] || @options[:maximum]
|
108
|
-
count_explanations = []
|
109
|
-
count_explanations << "at least #{@options[:minimum]}" if @options[:minimum]
|
110
|
-
count_explanations << "at most #{@options[:maximum]}" if @options[:maximum]
|
111
|
-
"#{count_explanations.join(' and ')} elements matching"
|
112
|
-
else
|
113
|
-
"an element matching"
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
def failure_selector_phrase
|
118
|
-
phrase = @selector.inspect
|
119
|
-
phrase << (@inner_text ? " with inner text #{@inner_text.inspect}" : "")
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
module TestCaseExtensions
|
124
|
-
def have_tag(selector, inner_text_or_options = nil, options = {}, &block)
|
125
|
-
Matchy::Expectations::HaveTag.new(self, selector, inner_text_or_options, options, &block)
|
126
|
-
end
|
127
|
-
end
|
128
|
-
end
|
data/views/_build_info.haml
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
%h1<
|
2
|
-
&== Built #{build.short_commit_identifier} #{build.successful? ? "successfully" : "and failed"}
|
3
|
-
%blockquote
|
4
|
-
%p&= build.commit_message
|
5
|
-
%p.meta<
|
6
|
-
%span.who<
|
7
|
-
&== by: #{build.commit_author.name}
|
8
|
-
|
|
9
|
-
%span.when{ :title => build.commited_at.iso8601 }<
|
10
|
-
&= pretty_date build.commited_at
|
11
|
-
|
|
12
|
-
%span.what<
|
13
|
-
&== commit: #{build.commit_identifier}
|
14
|
-
|
15
|
-
%h2 Build Output:
|
16
|
-
%pre.output
|
17
|
-
:preserve
|
18
|
-
#{bash_color_codes h(build.output)}
|