qcourses 0.1.2 → 0.1.3

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.3
data/bin/autospec ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'autospec' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('rspec-core', 'autospec')
data/bin/autotest ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'autotest' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('ZenTest', 'autotest')
data/bin/haml ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'haml' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('haml', 'haml')
data/bin/html2haml ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'html2haml' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('haml', 'html2haml')
data/bin/htmldiff ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'htmldiff' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('diff-lcs', 'htmldiff')
data/bin/jeweler ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'jeweler' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('jeweler', 'jeweler')
data/bin/ldiff ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'ldiff' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('diff-lcs', 'ldiff')
data/bin/multigem ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'multigem' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('ZenTest', 'multigem')
data/bin/multiruby ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'multiruby' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('ZenTest', 'multiruby')
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'multiruby_setup' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('ZenTest', 'multiruby_setup')
data/bin/nokogiri ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'nokogiri' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('nokogiri', 'nokogiri')
data/bin/rackup ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'rackup' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('rack', 'rackup')
data/bin/rake ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'rake' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('rake', 'rake')
data/bin/ri ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'ri' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('rdoc', 'ri')
data/bin/rspec ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'rspec' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('rspec-core', 'rspec')
data/bin/sequel ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'sequel' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('sequel', 'sequel')
data/bin/tilt ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'tilt' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('tilt', 'tilt')
data/bin/unit_diff ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'unit_diff' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('ZenTest', 'unit_diff')
data/bin/zentest ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'zentest' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('ZenTest', 'zentest')
@@ -32,6 +32,15 @@ module Qcourses
32
32
  end
33
33
  end
34
34
 
35
+ get admin_edit_request_url(:id) do
36
+ begin
37
+ @event = Event.find(params[:id])
38
+ haml :'events/edit', layout: :admin
39
+ rescue Exception => e
40
+ haml :'trainings/error', locals: { message: e.message }
41
+ end
42
+ end
43
+
35
44
  post admin_request_url do
36
45
  @event = Event.create(event_params)
37
46
  redirect admin_new_request_url
@@ -19,12 +19,18 @@ module Qcourses
19
19
  def new_request_url(param = nil)
20
20
  [request_url, 'new', param_symbol(param)].compact.join('/')
21
21
  end
22
+ def edit_request_url(param = nil)
23
+ [basepath,'edit', param_symbol(param)].compact.join('/')
24
+ end
22
25
  def admin_request_url
23
26
  adminprefix + request_url
24
27
  end
25
28
  def admin_new_request_url
26
29
  adminprefix + new_request_url
27
30
  end
31
+ def admin_edit_request_url(param)
32
+ adminprefix + edit_request_url(param)
33
+ end
28
34
  private
29
35
  def param_symbol(param)
30
36
  param && param.inspect || param
@@ -1,13 +1,18 @@
1
1
  module Qcourses
2
2
  module ViewHelpers
3
- def options_for_select options
4
- options.collect {|option| haml "%option(value='#{option[0]}') #{option[1]}", :layout => false}.join
3
+ def options_for_select options, value
4
+ return '' unless options
5
+ options.collect do |option|
6
+ tag_attributes = {:value => option[0]}
7
+ tag_attributes[:selected] = "selected" if value == option[0]
8
+ haml "%option#{tag_attributes.inspect} #{option[1]}", :layout => false
9
+ end.join
5
10
  end
6
11
  def course_options
7
- options_for_select CourseRepository.all.collect { |course| [course.identification, course.name] }
12
+ CourseRepository.all.collect { |course| [course.identification, course.name] }
8
13
  end
9
14
  def location_options
10
- options_for_select(Location.all.collect { |location| [location.id, location.name] } + [['0', 'new location']])
15
+ Location.all.collect { |location| [location.id, location.name] } + [['0', 'new location']]
11
16
  end
12
17
  def display_if_locations
13
18
  Location.all.empty? && "display:none;" || "display:block"
@@ -29,14 +34,18 @@ module Qcourses
29
34
  def input_for(object, attribute_name, options={})
30
35
  object = instance_variable_get("@#{object}") if object.is_a?(Symbol)
31
36
  return '' unless object
32
- tag_attributes = {:type => 'text', :name => input_name(object, attribute_name, options[:array_element])}
33
- tag_attributes[:value] = object.send(attribute_name) || ''
37
+ array_element = options.delete :array_element
38
+ klass = options.delete :class
39
+ suppress_error_messages = options.delete :suppress_error_messages
40
+ date_format = options.delete :time_format
41
+ tag_attributes = {:type => 'text', :name => input_name(object, attribute_name, array_element)}
42
+ tag_attributes[:value] = format_value(object.send(attribute_name), date_format)
34
43
  tag_classes = []
35
44
  tag_classes << 'error' if object.errors.on(attribute_name)
36
- tag_classes << options[:class] if options[:class]
45
+ tag_classes << klass if klass
37
46
  tag_attributes[:class] = tag_classes.join(' ') unless tag_classes.empty?
38
47
  result = haml("%input#{tag_attributes.inspect}")
39
- result += haml("%span{:class => 'error'} #{object.errors.on(attribute_name).first}" ) if object.errors.on(attribute_name) && !options[:suppress_error_messages]
48
+ result += haml("%span{:class => 'error'} #{object.errors.on(attribute_name).first}" ) if object.errors.on(attribute_name) && !suppress_error_messages
40
49
  result
41
50
  end
42
51
 
@@ -52,7 +61,28 @@ module Qcourses
52
61
  "<textarea #{text_hash(tag_attributes)}>#{value}</textarea>"
53
62
  end
54
63
 
64
+ def select_for(object, attribute_name, opts_for_select=[], options={})
65
+ object = instance_variable_get("@#{object}") if object.is_a?(Symbol)
66
+ return '' unless object
67
+ array_element = options.delete :array_element
68
+ klass = options.delete :class
69
+ tag_classes = []
70
+ tag_classes << 'error' if object.errors.on(attribute_name)
71
+ tag_classes << klass if klass
72
+ tag_attributes = {:name => input_name(object, attribute_name, array_element)}
73
+ tag_attributes[:class] = tag_classes.join(' ') unless tag_classes.empty?
74
+
75
+ %Q{<select #{text_hash(tag_attributes)}>
76
+ #{options_for_select(opts_for_select, object.send(attribute_name).to_s)}
77
+ </select>}
78
+ end
79
+
55
80
  private
81
+ def format_value(value, date_format)
82
+ return '' unless value
83
+ return value.strftime(date_format) if date_format && (value.is_a?(Time) || value.is_a?(Date))
84
+ return value.to_s
85
+ end
56
86
  def text_hash(hash)
57
87
  hash.to_a.map {|e| "#{e[0]}=\"#{e[1]}\"" }.join(' ')
58
88
  end
@@ -58,7 +58,8 @@ module Qcourses
58
58
  it "should render a form" do
59
59
  get url
60
60
  last_response.should be_ok
61
- last_body.should have_selector("form#events[@method='post'][@action='/admin/events']")
61
+ last_body.should have_selector("form#events[@method='post']")
62
+ last_body.find("form#events")['action'].should match('/admin/events')
62
63
  last_body.should have_selector("form#events select[@name='event[course_id]']")
63
64
  last_body.should have_selector("form#events input[@name='event[from]']")
64
65
  last_body.should have_selector("form#events input[@name='event[to]']")
@@ -66,6 +67,23 @@ module Qcourses
66
67
  it_should_behave_like "an_event_lister"
67
68
  end
68
69
 
70
+ describe 'get admin edit' do
71
+ let!(:course1) { courses.create_course identification: 'agile_engineering', name: 'Agile Engineering' }
72
+ let (:event) { Rubory.create :event }
73
+ let (:url) { "/admin/events/edit/#{event.id}" }
74
+
75
+ it "should render a form" do
76
+ event.update :course_id => course1.identification
77
+ get url
78
+ last_response.should be_ok
79
+ last_body.should have_selector("form#events[@method='put']")
80
+ last_body.find("form#events")['action'].should match("/admin/events/#{event.id}")
81
+ last_body.should have_selector("form#events input[@name='event[from]'][@value='#{event.from.strftime("%d-%m-%Y")}']")
82
+ last_body.should have_selector("form#events input[@name='event[to]'][@value='#{event.to.strftime("%d-%m-%Y")}']")
83
+ last_body.should have_selector("form#events select[@name='event[course_id]'] option[@value='#{event.course_id}']")
84
+ end
85
+ end
86
+
69
87
  describe 'post admin' do
70
88
  let (:url) { '/admin/events' }
71
89
  let (:last_body) { last_response.body }
@@ -1,38 +1,40 @@
1
1
  require 'spec_helper'
2
2
  require 'capybara/rspec'
3
-
4
3
  module Qcourses
5
4
 
6
5
  describe RegistrationsController, :type => :request do
6
+ include Sinatra::Helpers
7
7
  let(:app) { Capybara.app = RegistrationsController }
8
8
  let(:event) { Rubory.create :event }
9
+ let!(:courses) { CourseRepository.in_memory }
9
10
 
10
11
  describe 'get new' do
11
- def url(id)
12
+ def get_url(id)
12
13
  "/registrations/new/#{id}"
13
14
  end
14
15
 
15
16
  it "should render a form" do
16
- get url(event.id)
17
+ get get_url(event.id)
17
18
  last_response.should be_ok
18
- last_body.should have_selector("form#registrations[@method='post'][@action='/registrations/#{event.id}']")
19
+ last_body.should have_selector("form#registrations[@method='post']")
20
+ last_body.find("form#registrations")['action'].should match("/registrations/#{event.id}")
19
21
  end
20
22
 
21
23
  it "should return a 404 when event is not available" do
22
- get url(event.id + 33334)
24
+ get get_url(event.id + 33334)
23
25
  last_response.should be_not_found
24
26
  end
25
27
 
26
28
  it "should return a 404 when event is in the past" do
27
29
  event.update :from => Date.today
28
- get url(event.id)
30
+ get get_url(event.id)
29
31
  last_response.should be_not_found
30
32
  end
31
33
 
32
34
  end
33
35
 
34
36
  describe 'post registration' do
35
- def url(id)
37
+ def post_url(id)
36
38
  "/registrations/#{id}"
37
39
  end
38
40
 
@@ -43,43 +45,43 @@ module Qcourses
43
45
 
44
46
  context "on valid attributes" do
45
47
  it "redirects to thank you" do
46
- post url(event.id), valid_registration
48
+ post post_url(event.id), valid_registration
47
49
  last_response.should be_redirect
48
50
  follow_redirect!
49
51
  last_body.should have_selector(".thanks")
50
52
  end
51
53
  it "creates a registration" do
52
- expect { post url(event.id), valid_registration }.to change { Registration.count }.by(1)
54
+ expect { post post_url(event.id), valid_registration }.to change { Registration.count }.by(1)
53
55
  end
54
56
  it "creates a company" do
55
- expect { post url(event.id), valid_registration }.to change { Company.count }.by(1)
57
+ expect { post post_url(event.id), valid_registration }.to change { Company.count }.by(1)
56
58
  end
57
59
  it "creates an employee" do
58
- expect { post url(event.id), valid_registration }.to change { Employee.count }.by(1)
60
+ expect { post post_url(event.id), valid_registration }.to change { Employee.count }.by(1)
59
61
  end
60
62
  context "with more employees" do
61
63
  let!(:another_participant) { Rubory.attributes_for :employee }
62
64
  let(:participants) { [valid_participant, another_participant] }
63
65
  it "creates more registrations" do
64
- expect { post url(event.id), valid_registration }.to change { Registration.count }.by(2)
66
+ expect { post post_url(event.id), valid_registration }.to change { Registration.count }.by(2)
65
67
  end
66
68
  it "creates a company" do
67
- expect { post url(event.id), valid_registration }.to change { Company.count }.by(1)
69
+ expect { post post_url(event.id), valid_registration }.to change { Company.count }.by(1)
68
70
  end
69
71
  it "creates more employees" do
70
- expect { post url(event.id), valid_registration }.to change { Employee.count }.by(2)
72
+ expect { post post_url(event.id), valid_registration }.to change { Employee.count }.by(2)
71
73
  end
72
74
  end
73
75
  end
74
76
  context "problems with event" do
75
77
  it "should return a 404 when event is not available" do
76
- post url(event.id + 33334)
78
+ post post_url(event.id + 33334)
77
79
  last_response.should be_not_found
78
80
  end
79
81
 
80
82
  it "should return a 404 when event is in the past" do
81
83
  event.update :from => Date.today
82
- post url(event.id)
84
+ post post_url(event.id)
83
85
  last_response.should be_not_found
84
86
  end
85
87
  end
@@ -87,7 +89,7 @@ module Qcourses
87
89
  context "participant invalid" do
88
90
  it "shows error on attribute" do
89
91
  valid_participant[:email] = ''
90
- post url(event.id), valid_registration
92
+ post post_url(event.id), valid_registration
91
93
  last_response.should be_ok
92
94
  last_body.should have_selector("form input.error[name='employee[][email]']")
93
95
  end
@@ -86,5 +86,34 @@ module Qcourses
86
86
  end
87
87
  end
88
88
  end
89
+ describe "select_for" do
90
+ def html_for(result)
91
+ Capybara.string(result)
92
+ end
93
+ before do
94
+ @employee = Rubory.build :employee
95
+ @employee.valid?
96
+ end
97
+ describe "on an existing object" do
98
+ it 'creates a select tag' do
99
+ html_for(select_for(:employee, :company_id)).should have_selector("select[name='employee[company_id]']")
100
+ html_for(select_for(@employee, :company_id)).should have_selector("select[name='employee[company_id]']")
101
+ end
102
+ it 'creates a options' do
103
+ options = [["99", "Other Company"]]
104
+ options << [@employee.company_id.to_s, "Company"]
105
+ html_for(select_for(:employee, :company_id, options)).should have_selector("select[name='employee[company_id]'] option[value='99']", :text => "Other Company")
106
+ html_for(select_for(:employee, :company_id, options)).should have_selector("select[name='employee[company_id]'] option[value='#{@employee.company_id}'][selected='selected']", :text => "Company")
107
+ end
108
+ it 'can have a class' do
109
+ html_for(select_for(:employee, :company_id, nil, :class => 'short')).should have_selector("select[name='employee[company_id]'][class='short']")
110
+ end
111
+ end
112
+ describe "on an array object" do
113
+ it "creates an input tag with an extra [] inthe name" do
114
+ html_for(select_for(:employee, :company_id, nil, :array_element=>true)).should have_selector("select[name='employee[][company_id]']")
115
+ end
116
+ end
117
+ end
89
118
  end
90
119
  end
@@ -1,4 +1,4 @@
1
1
  shared_context "for request specs", :type => :request do
2
- let (:last_body) { last_response.body }
2
+ let (:last_body) { Capybara.string last_response.body }
3
3
  end
4
4
 
@@ -0,0 +1,30 @@
1
+ %section.form
2
+ %form(id='events' action= "#{url admin_request_url}/#{@event.id}" method ='put')
3
+ .label
4
+ %label(for="event[course_id]") Course:
5
+ .input
6
+ = select_for :event, :course_id, course_options
7
+ .label
8
+ %label(for="event[from]") From:
9
+ .input
10
+ = input_for :event, :from, :time_format => "%d-%m-%Y", :class => "date"
11
+ .label
12
+ %label(for="event[to]") To:
13
+ .input
14
+ = input_for :event, :to, :time_format => "%d-%m-%Y", :class => "date"
15
+ #location_selector{ :style => display_if_locations }
16
+ .label
17
+ %label(for="event[location_id]") Where
18
+ .input
19
+ = select_for :event, :location_id, location_options
20
+ #location_name{ :style => display_unless_locations }
21
+ .label
22
+ %label(for="event[location]") New location name
23
+ .input
24
+ %input{:type => "text", :name => "event[location]"}
25
+
26
+ .label
27
+ .input
28
+ %input{:type => "submit", :value => "plan event" }
29
+ %span.clear
30
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qcourses
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -205,7 +205,26 @@ dependencies:
205
205
  version: '0'
206
206
  description: Course management module for QWAN nesta site
207
207
  email: rob.westgeest@gmail.com
208
- executables: []
208
+ executables:
209
+ - autospec
210
+ - autotest
211
+ - haml
212
+ - html2haml
213
+ - htmldiff
214
+ - jeweler
215
+ - ldiff
216
+ - multigem
217
+ - multiruby
218
+ - multiruby_setup
219
+ - nokogiri
220
+ - rackup
221
+ - rake
222
+ - ri
223
+ - rspec
224
+ - sequel
225
+ - tilt
226
+ - unit_diff
227
+ - zentest
209
228
  extensions: []
210
229
  extra_rdoc_files:
211
230
  - LICENSE.txt
@@ -265,6 +284,7 @@ files:
265
284
  - spec/support/request_specs.rb
266
285
  - spec/support/test_files.rb
267
286
  - views/admin.haml
287
+ - views/events/edit.haml
268
288
  - views/events/index.haml
269
289
  - views/events/new.haml
270
290
  - views/layout.haml
@@ -275,6 +295,25 @@ files:
275
295
  - views/trainings/error.haml
276
296
  - views/trainings/index.haml
277
297
  - LICENSE.txt
298
+ - bin/autospec
299
+ - bin/autotest
300
+ - bin/haml
301
+ - bin/html2haml
302
+ - bin/htmldiff
303
+ - bin/jeweler
304
+ - bin/ldiff
305
+ - bin/multigem
306
+ - bin/multiruby
307
+ - bin/multiruby_setup
308
+ - bin/nokogiri
309
+ - bin/rackup
310
+ - bin/rake
311
+ - bin/ri
312
+ - bin/rspec
313
+ - bin/sequel
314
+ - bin/tilt
315
+ - bin/unit_diff
316
+ - bin/zentest
278
317
  homepage: http://github.com/rwestgeest/qcourses
279
318
  licenses:
280
319
  - MIT
@@ -290,7 +329,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
290
329
  version: '0'
291
330
  segments:
292
331
  - 0
293
- hash: 894493885
332
+ hash: 342118163
294
333
  required_rubygems_version: !ruby/object:Gem::Requirement
295
334
  none: false
296
335
  requirements: