From 5bc3eae400754dda90a45d6953a02a069a1c0285 Mon Sep 17 00:00:00 2001 From: jessib Date: Tue, 2 Oct 2012 15:29:28 -0700 Subject: Some more tweaks to help ticket models. Still want to tweak current_user access from users engine. --- help/app/models/ticket.rb | 6 ++++-- help/app/models/ticket_comment.rb | 3 +-- help/test/unit/ticket_comment_test.rb | 7 +++++++ help/test/unit/ticket_test.rb | 3 ++- 4 files changed, 14 insertions(+), 5 deletions(-) (limited to 'help') diff --git a/help/app/models/ticket.rb b/help/app/models/ticket.rb index 8a282b5..0f38bf4 100644 --- a/help/app/models/ticket.rb +++ b/help/app/models/ticket.rb @@ -28,7 +28,7 @@ class Ticket < CouchRest::Model::Base timestamps! - before_validation :set_code, :on => :create + before_validation :set_created_by, :set_code, :on => :create design do view :by_title @@ -37,7 +37,9 @@ class Ticket < CouchRest::Model::Base validates :email, :format => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/, :if => :email #email address is optional - #set created_by to be current_user + def set_created_by + self.created_by = User.current if User.current + end def is_creator_validated? !!created_by diff --git a/help/app/models/ticket_comment.rb b/help/app/models/ticket_comment.rb index 1e23136..6c2a792 100644 --- a/help/app/models/ticket_comment.rb +++ b/help/app/models/ticket_comment.rb @@ -26,8 +26,7 @@ class TicketComment < CouchRest::Model::Base #?? do we want this to be a base mo end def set_posted_by - #should be something like this, but current_user is not set yet - #self.posted_by = current_user if current_user + self.posted_by = User.current if User.current end end diff --git a/help/test/unit/ticket_comment_test.rb b/help/test/unit/ticket_comment_test.rb index 37e6e67..ba6120b 100644 --- a/help/test/unit/ticket_comment_test.rb +++ b/help/test/unit/ticket_comment_test.rb @@ -25,6 +25,13 @@ class TicketCommentTest < ActiveSupport::TestCase #tc.ticket = Ticket.find_by_title("test title") #tc.ticket.title end + + test "create authenticated comment" do + User.current = 4 + comment2 = TicketComment.new :body => "help my email is broken!" + comment2.save + assert_not_nil comment2.posted_by + end test "add comments" do testticket = Ticket.create :title => "testing" diff --git a/help/test/unit/ticket_test.rb b/help/test/unit/ticket_test.rb index fddd719..2dbd63c 100644 --- a/help/test/unit/ticket_test.rb +++ b/help/test/unit/ticket_test.rb @@ -41,7 +41,8 @@ class TicketTest < ActiveSupport::TestCase assert_not_nil t1.code assert_nil t1.created_by - t2 = Ticket.create :title => 'test title', :created_by => 4 + User.current = 4 + t2 = Ticket.create :title => 'test title' assert_nil t2.code assert_not_nil t2.created_by -- cgit v1.2.3 From c89610d1aad8500b4f7058c970bb07a60a55a5ce Mon Sep 17 00:00:00 2001 From: jessib Date: Wed, 3 Oct 2012 16:53:00 -0700 Subject: Some model/unit test tweaks --- help/app/models/ticket.rb | 10 ++++++++++ help/app/models/ticket_comment.rb | 8 ++++---- help/test/unit/ticket_comment_test.rb | 14 +++++++++----- help/test/unit/ticket_test.rb | 5 +++++ 4 files changed, 28 insertions(+), 9 deletions(-) (limited to 'help') diff --git a/help/app/models/ticket.rb b/help/app/models/ticket.rb index 0f38bf4..784d7ef 100644 --- a/help/app/models/ticket.rb +++ b/help/app/models/ticket.rb @@ -24,6 +24,7 @@ class Ticket < CouchRest::Model::Base #property :user_verified, TrueClass, :default => false #will be true exactly when user is set #admins property :code, String, :protected => true # only should be set if created_by is nil + property :is_open, TrueClass, :default => true property :comments, [TicketComment] timestamps! @@ -50,6 +51,15 @@ class Ticket < CouchRest::Model::Base self.code = SecureRandom.hex(8) if !is_creator_validated? end + def close + self.is_open = false + save + end + + def reopen + self.is_open = true + save + end =begin def validate diff --git a/help/app/models/ticket_comment.rb b/help/app/models/ticket_comment.rb index 6c2a792..652133a 100644 --- a/help/app/models/ticket_comment.rb +++ b/help/app/models/ticket_comment.rb @@ -1,8 +1,6 @@ -class TicketComment < CouchRest::Model::Base #?? do we want this to be a base model? +class TicketComment include CouchRest::Model::Embeddable - #use_database "ticket_comments" - #belongs_to :ticket #is this best way to do it? will want to access all of a tickets comments, so maybe this isn't the way? property :posted_by, Integer, :protected => true# maybe this should be current_user if that is set, meaning the user is logged in #String # user?? # if the current user is not set, then we could just say the comment comes from an 'unauthenticated user', which would be somebody with the secret URL @@ -10,7 +8,7 @@ class TicketComment < CouchRest::Model::Base #?? do we want this to be a base mo #property :posted_verified, TrueClass, :protected => true #should be true if current_user is set when the comment is created property :body, String - before_validation :set_time, :set_posted_by, :on => :create # hmm, this requires object to be validated for these methods to be called, but if this is only embeddedable (which might be best), then not clear how to do this without manually validating. + before_validation :set_time#, :set_posted_by #design do # view :by_posted_at @@ -25,8 +23,10 @@ class TicketComment < CouchRest::Model::Base #?? do we want this to be a base mo self.posted_at = Time.now end +=begin def set_posted_by self.posted_by = User.current if User.current end +=end end diff --git a/help/test/unit/ticket_comment_test.rb b/help/test/unit/ticket_comment_test.rb index ba6120b..883720f 100644 --- a/help/test/unit/ticket_comment_test.rb +++ b/help/test/unit/ticket_comment_test.rb @@ -26,27 +26,31 @@ class TicketCommentTest < ActiveSupport::TestCase #tc.ticket.title end +=begin test "create authenticated comment" do User.current = 4 comment2 = TicketComment.new :body => "help my email is broken!" - comment2.save + comment2.valid? #save # should not save comment assert_not_nil comment2.posted_by end +=end test "add comments" do testticket = Ticket.create :title => "testing" assert_equal testticket.comments.count, 0 comment = TicketComment.new :body => "my email broke" - assert comment.valid? #validating or saving necessary for setting posted_at - assert_not_nil comment.posted_at + #assert comment.valid? #validating or saving necessary for setting posted_at + #assert_not_nil comment.posted_at testticket.comments << comment assert_equal testticket.comments.count, 1 sleep(1) # so first comment has earlier posted_at time comment2 = TicketComment.new :body => "my email broke" - comment2.save #possible to save only if ticketcomment is a model now - testticket.comments << comment2 + testticket.comments << comment2 #this should validate comment2 + testticket.valid? assert_equal testticket.comments.count, 2 + assert_not_nil comment.posted_at + assert_not_nil testticket.comments.last.posted_at assert testticket.comments.first.posted_at < testticket.comments.last.posted_at end diff --git a/help/test/unit/ticket_test.rb b/help/test/unit/ticket_test.rb index 2dbd63c..c3a4759 100644 --- a/help/test/unit/ticket_test.rb +++ b/help/test/unit/ticket_test.rb @@ -14,6 +14,11 @@ class TicketTest < ActiveSupport::TestCase assert t.valid? assert_equal t.title, 'test title' + assert t.is_open + t.close + assert !t.is_open + t.reopen + assert t.is_open #user = LeapWebHelp::User.new(User.valid_attributes_hash) #user = LeapWebUsers::User.create -- cgit v1.2.3 From efcf0e5927055d2b86804c84b00c614b38191964 Mon Sep 17 00:00:00 2001 From: Azul Date: Mon, 8 Oct 2012 10:45:27 +0200 Subject: enabling rake gem in engines, using LeapWeb::Version all over the place --- help/Rakefile | 10 ++++++++-- help/leap_web_help.gemspec | 7 +++---- 2 files changed, 11 insertions(+), 6 deletions(-) (limited to 'help') diff --git a/help/Rakefile b/help/Rakefile index 9306287..0e73163 100644 --- a/help/Rakefile +++ b/help/Rakefile @@ -1,4 +1,8 @@ #!/usr/bin/env rake + +require 'rake/packagetask' +require 'rubygems/package_task' + begin require 'bundler/setup' rescue LoadError @@ -20,8 +24,10 @@ RDoc::Task.new(:rdoc) do |rdoc| rdoc.rdoc_files.include('lib/**/*.rb') end - - +spec = eval(File.read('leap_web_help.gemspec')) +Gem::PackageTask.new(spec) do |p| + p.gem_spec = spec +end Bundler::GemHelper.install_tasks diff --git a/help/leap_web_help.gemspec b/help/leap_web_help.gemspec index 19b59d7..7380451 100644 --- a/help/leap_web_help.gemspec +++ b/help/leap_web_help.gemspec @@ -1,13 +1,12 @@ $:.push File.expand_path("../lib", __FILE__) -# Maintain your gem's version: -require "leap_web_help/version" require "leap_web_core/dependencies" +require File.expand_path('../../lib/leap_web/version.rb', __FILE__) # Describe your gem and declare its dependencies: Gem::Specification.new do |s| s.name = "leap_web_help" - s.version = LeapWebHelp::VERSION + s.version = LeapWeb::VERSION s.authors = ["TODO: Your name"] s.email = ["TODO: Your email"] s.homepage = "TODO" @@ -18,7 +17,7 @@ Gem::Specification.new do |s| s.test_files = Dir["test/**/*"] s.add_dependency "rails", "~> 3.2.8" - s.add_dependency "leap_web_core", "~> 0.0.1" + s.add_dependency "leap_web_core", "~> #{LeapWeb::VERSION}" LeapWebCore::Dependencies.add_ui_gems_to_spec(s) -- cgit v1.2.3 From 51bc4cf65133982e9cf197bcf07aed3efce3d6dc Mon Sep 17 00:00:00 2001 From: Azul Date: Mon, 8 Oct 2012 11:27:19 +0200 Subject: cleaned up the gemspecs a bit - now all build --- help/Readme.md | 0 help/leap_web_help.gemspec | 12 ++++++------ 2 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 help/Readme.md (limited to 'help') diff --git a/help/Readme.md b/help/Readme.md new file mode 100644 index 0000000..e69de29 diff --git a/help/leap_web_help.gemspec b/help/leap_web_help.gemspec index 7380451..2cc147c 100644 --- a/help/leap_web_help.gemspec +++ b/help/leap_web_help.gemspec @@ -7,13 +7,13 @@ require File.expand_path('../../lib/leap_web/version.rb', __FILE__) Gem::Specification.new do |s| s.name = "leap_web_help" s.version = LeapWeb::VERSION - s.authors = ["TODO: Your name"] - s.email = ["TODO: Your email"] - s.homepage = "TODO" - s.summary = "TODO: Summary of LeapWebHelp." - s.description = "TODO: Description of LeapWebHelp." + s.authors = ["Jessib"] + s.email = ["jessib@leap.se"] + s.homepage = "http://www.leap.se" + s.summary = "Help Desk for LeapWeb" + s.description = "Managing Tickets for a Leap provider" - s.files = Dir["{app,config,db,lib}/**/*"] + ["MIT-LICENSE", "Rakefile", "README.rdoc"] + s.files = Dir["{app,config,db,lib}/**/*"] + ["Rakefile", "Readme.md"] s.test_files = Dir["test/**/*"] s.add_dependency "rails", "~> 3.2.8" -- cgit v1.2.3 From f5aea5347601c3500bb3670971d44995c35c3c7b Mon Sep 17 00:00:00 2001 From: Azul Date: Mon, 8 Oct 2012 19:50:00 +0200 Subject: use couchrest session store in core, updated dummy path --- help/test/test_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'help') diff --git a/help/test/test_helper.rb b/help/test/test_helper.rb index 1e26a31..3381f44 100644 --- a/help/test/test_helper.rb +++ b/help/test/test_helper.rb @@ -1,7 +1,7 @@ # Configure Rails Environment ENV["RAILS_ENV"] = "test" -require File.expand_path("../dummy/config/environment.rb", __FILE__) +require File.expand_path('../../../test/dummy/config/environment', __FILE__) require "rails/test_help" Rails.backtrace_cleaner.remove_silencers! -- cgit v1.2.3 From 00b7b36516d1d07300870029ad5190f06122a493 Mon Sep 17 00:00:00 2001 From: Azul Date: Wed, 10 Oct 2012 19:56:35 +0200 Subject: first steps at reducing core --- help/Gemfile | 18 +++++------------- help/leap_web_help.gemspec | 8 +------- help/lib/leap_web_help.rb | 1 + help/lib/leap_web_help/engine.rb | 4 ---- help/lib/leap_web_help/version.rb | 3 --- 5 files changed, 7 insertions(+), 27 deletions(-) delete mode 100644 help/lib/leap_web_help/version.rb (limited to 'help') diff --git a/help/Gemfile b/help/Gemfile index 8dfcd78..bfd760e 100644 --- a/help/Gemfile +++ b/help/Gemfile @@ -1,20 +1,12 @@ source "http://rubygems.org" -# Declare your gem's dependencies in leap_web_help.gemspec. +eval(File.read(File.dirname(__FILE__) + '/../common_dependencies.rb')) +eval(File.read(File.dirname(__FILE__) + '/..//ui_dependencies.rb')) + +# Declare your gem's dependencies in leap_web_users.gemspec. # Bundler will treat runtime dependencies like base dependencies, and # development dependencies will be added by default to the :development group. gemspec -# jquery-rails is used by the dummy application -gem "jquery-rails" - -# Declare any dependencies that are still in development here instead of in -# your gemspec. These might include edge Rails or gems from your path or -# Git. Remember to move these dependencies to your gemspec before releasing -# your gem to rubygems.org. - # To use debugger - gem 'ruby-debug' - - # TODO: not sure I actually want this here, but trying: - gem 'therubyracer', :platforms => :ruby +# gem 'ruby-debug' diff --git a/help/leap_web_help.gemspec b/help/leap_web_help.gemspec index 2cc147c..09827dc 100644 --- a/help/leap_web_help.gemspec +++ b/help/leap_web_help.gemspec @@ -1,6 +1,5 @@ $:.push File.expand_path("../lib", __FILE__) -require "leap_web_core/dependencies" require File.expand_path('../../lib/leap_web/version.rb', __FILE__) # Describe your gem and declare its dependencies: @@ -16,10 +15,5 @@ Gem::Specification.new do |s| s.files = Dir["{app,config,db,lib}/**/*"] + ["Rakefile", "Readme.md"] s.test_files = Dir["test/**/*"] - s.add_dependency "rails", "~> 3.2.8" - s.add_dependency "leap_web_core", "~> #{LeapWeb::VERSION}" - - LeapWebCore::Dependencies.add_ui_gems_to_spec(s) - - # s.add_dependency "jquery-rails" + s.add_dependency "leap_web_core", LeapWeb::VERSION end diff --git a/help/lib/leap_web_help.rb b/help/lib/leap_web_help.rb index f5b04aa..89dabcf 100644 --- a/help/lib/leap_web_help.rb +++ b/help/lib/leap_web_help.rb @@ -1,3 +1,4 @@ +require "leap_web_core" require "leap_web_help/engine" module LeapWebHelp diff --git a/help/lib/leap_web_help/engine.rb b/help/lib/leap_web_help/engine.rb index 2ff3e86..1006c29 100644 --- a/help/lib/leap_web_help/engine.rb +++ b/help/lib/leap_web_help/engine.rb @@ -1,8 +1,4 @@ # thou shall require all your dependencies in an engine. -require "leap_web_core" -#require "leap_web_users" #necessary? - -LeapWebCore::Dependencies.require_ui_gems module LeapWebHelp class Engine < ::Rails::Engine diff --git a/help/lib/leap_web_help/version.rb b/help/lib/leap_web_help/version.rb deleted file mode 100644 index 6a7c85d..0000000 --- a/help/lib/leap_web_help/version.rb +++ /dev/null @@ -1,3 +0,0 @@ -module LeapWebHelp - VERSION = "0.0.1" -end -- cgit v1.2.3 From add8d015c87a00626b739080bd75c7e7aeb9c1df Mon Sep 17 00:00:00 2001 From: Azul Date: Thu, 11 Oct 2012 10:22:34 +0200 Subject: moved core dependency into */Gemfile with :path In order to get the rails generators and the like to work properly in engines we need to require all the dependencies in the engine.rb file. Since I want to keep that list of engines in a centralized place we still need core and we need to require it from the other engines. We don't want to require the core gem to be installed so I added it with :path option to the Gemfile. --- help/Gemfile | 3 +++ help/lib/leap_web_help.rb | 1 - help/lib/leap_web_help/engine.rb | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) (limited to 'help') diff --git a/help/Gemfile b/help/Gemfile index bfd760e..5e895e9 100644 --- a/help/Gemfile +++ b/help/Gemfile @@ -3,6 +3,9 @@ source "http://rubygems.org" eval(File.read(File.dirname(__FILE__) + '/../common_dependencies.rb')) eval(File.read(File.dirname(__FILE__) + '/..//ui_dependencies.rb')) +# We require leap_web_core from here so we can use the path option. +gem "leap_web_core", :path => '../core' + # Declare your gem's dependencies in leap_web_users.gemspec. # Bundler will treat runtime dependencies like base dependencies, and # development dependencies will be added by default to the :development group. diff --git a/help/lib/leap_web_help.rb b/help/lib/leap_web_help.rb index 89dabcf..f5b04aa 100644 --- a/help/lib/leap_web_help.rb +++ b/help/lib/leap_web_help.rb @@ -1,4 +1,3 @@ -require "leap_web_core" require "leap_web_help/engine" module LeapWebHelp diff --git a/help/lib/leap_web_help/engine.rb b/help/lib/leap_web_help/engine.rb index 1006c29..4146dfc 100644 --- a/help/lib/leap_web_help/engine.rb +++ b/help/lib/leap_web_help/engine.rb @@ -1,4 +1,6 @@ # thou shall require all your dependencies in an engine. +require "leap_web_core" +require "leap_web_core/ui_dependencies" module LeapWebHelp class Engine < ::Rails::Engine -- cgit v1.2.3