<< | Index | >>
Task
Experiment
def compositions(model, session=@session)
link = HtmlGrid::Link.new(:show, model, session, self)
#link.href = @lookandfeel._event_url(:show, {:pointer => model.pointer})
list = model.pointer.to_s.gsub(/\./,'').split(/!/).delete_if{|v| v == ":"}.map{|i| i.split(",")}.flatten
nrs = Hash[*list]
iksnr = nrs['registration']
seqnr = nrs['sequence']
ikscd = nrs['package']
smart_link = if iksnr && seqnr && ikscd
['reg', iksnr, 'seq', seqnr, 'pack', ikscd]
elsif iksnr && seqnr
['reg', iksnr, 'seq', seqnr]
elsif iksnr
['reg', iksnr]
end
if smart_link
link.href = @lookandfeel._event_url(:show, smart_link)
else
link.href = @lookandfeel._event_url(:show, {:pointer => model.pointer})
end
Run
Result
Note
Refactoring
class Pointer
def to_csv
@directions.collect { |orig|
step = orig.collect { |arg|
if(arg.is_a? Pointer)
arg
else
arg.to_s.gsub('%','%%').gsub(/[:!,.]/u, '%\0')
end
}
step.join(',')
}.join(',')
end
end
def compositions(model, session=@session)
link = HtmlGrid::Link.new(:show, model, session, self)
link.href = @lookandfeel._event_url(:show, {:pointer => model.pointer})
smart_link = model.pointer.to_csv.gsub(/registration/, 'reg').gsub(/sequence/, 'seq').gsub(/package/, 'pack').split(/,/)
if smart_link.include?('reg')
link.href = @lookandfeel._event_url(:show, smart_link)
else # This is an old format by using the default pointer format
link.href = @lookandfeel._event_url(:show, {:pointer => model.pointer})
end
Result
Next
Experiment
if(@session.allowed?('edit', 'org.oddb.drugs'))
PointerLink.new(:ikscd, model, @session, self)
else
evt = @session.state.respond_to?(:suggest_choose) ? :suggest_choose : :show
link = HtmlGrid::Link.new(:ikscd, model, @session, self)
link.value = model.ikscd
#args = {:pointer => model.pointer}
#link.href = @lookandfeel.event_url(evt, args)
smart_link = model.pointer.to_csv.gsub(/registration/, 'reg').gsub(/sequence/, 'seq').gsub(/package/, 'pack').split(/,/)
if evt == :show and smart_link.include?('reg')
link.href = @lookandfeel.event_url(evt, smart_link)
else
link.href = @lookandfeel.event_url(evt, {:pointer => model.pointer})
end
link
end
end
Result
Note
Experiment
if(@session.allowed?('edit', model))
PointerLink.new(:seqnr, model, @session, self)
else
evt = @session.state.respond_to?(:suggest_choose) ? :suggest_choose : :show
link = HtmlGrid::Link.new(:seqnr, model, @session, self)
#args = {:pointer => model.pointer}
#link.href = @lookandfeel.event_url(evt, args)
smart_link_format = model.pointer.to_csv.gsub(/registration/, 'reg').gsub(/sequence/, 'seq').gsub(/package/, 'pack').split(/,/)
if evt == :show and smart_link_format.include?('reg')
link.href = @lookandfeel.event_url(evt, smart_link_format)
else
old_link_format = {:pointer => model.pointer}
link.href = @lookandfeel.event_url(evt, old_link_format)
end
link.value = model.seqnr
link
end
end
Result
Next
git status
# modified: src/state/global.rb # modified: src/util/persistence.rb # modified: src/util/validator.rb # modified: src/view/additional_information.rb # modified: src/view/admin/registration.rb # modified: src/view/admin/sequence.rb # modified: src/view/pointersteps.rb # modified: src/view/pointervalue.rb
One by one
Note
masa@masa ~/ywesee/oddb.org $ ruby test/suite.rb 4116 tests, 6570 assertions, 0 failures, 15 errors
Commit
server git pull (error!)
$ git pull
remote: Counting objects: 46, done.
remote: Compressing objects: 100% (26/26), done.
remote: Total 26 (delta 20), reused 0 (delta 0)
Unpacking objects: 100% (26/26), done.
From /home/ywesee/git/oddb.org
81ca738..d8a4e48 master -> origin
Updating 81ca738..d8a4e48
error: Your local changes to the following files would be overwritten by merge:
src/util/persistence.rb
Please, commit your changes or stash them before you can merge.
Aborting