enju_purchase_request 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/MIT-LICENSE +20 -0
- data/README.rdoc +3 -0
- data/Rakefile +45 -0
- data/app/controllers/order_lists_controller.rb +94 -0
- data/app/controllers/orders_controller.rb +129 -0
- data/app/controllers/purchase_requests_controller.rb +139 -0
- data/app/models/order.rb +35 -0
- data/app/models/order_list.rb +53 -0
- data/app/models/purchase_request.rb +89 -0
- data/app/views/order_lists/edit.html.erb +37 -0
- data/app/views/order_lists/index.atom.builder +11 -0
- data/app/views/order_lists/index.html.erb +34 -0
- data/app/views/order_lists/index.rss.builder +31 -0
- data/app/views/order_lists/new.html.erb +32 -0
- data/app/views/order_lists/show.html.erb +40 -0
- data/app/views/orders/edit.html.erb +30 -0
- data/app/views/orders/index.atom.builder +11 -0
- data/app/views/orders/index.html.erb +40 -0
- data/app/views/orders/index.rss.builder +38 -0
- data/app/views/orders/new.html.erb +34 -0
- data/app/views/orders/show.html.erb +23 -0
- data/app/views/purchase_requests/_index.html.erb +85 -0
- data/app/views/purchase_requests/_index_order_list.html.erb +76 -0
- data/app/views/purchase_requests/_new.html.erb +76 -0
- data/app/views/purchase_requests/_new_order_list.html.erb +74 -0
- data/app/views/purchase_requests/edit.html.erb +66 -0
- data/app/views/purchase_requests/index.atom.builder +15 -0
- data/app/views/purchase_requests/index.csv.erb +4 -0
- data/app/views/purchase_requests/index.html.erb +5 -0
- data/app/views/purchase_requests/index.rss.builder +38 -0
- data/app/views/purchase_requests/new.html.erb +5 -0
- data/app/views/purchase_requests/show.html.erb +94 -0
- data/config/routes.rb +18 -0
- data/db/migrate/123_create_purchase_requests.rb +30 -0
- data/db/migrate/126_create_orders.rb +18 -0
- data/db/migrate/20081009062129_create_order_lists.rb +21 -0
- data/lib/enju_purchase_request/bookmark_url.rb +45 -0
- data/lib/enju_purchase_request/bookstore.rb +3 -0
- data/lib/enju_purchase_request/engine.rb +14 -0
- data/lib/enju_purchase_request/url_validator.rb +10 -0
- data/lib/enju_purchase_request/version.rb +3 -0
- data/lib/enju_purchase_request.rb +7 -0
- data/lib/tasks/enju_purchase_request_tasks.rake +4 -0
- data/spec/controllers/order_lists_controller_spec.rb +476 -0
- data/spec/controllers/orders_controller_spec.rb +481 -0
- data/spec/controllers/purchase_requests_controller_spec.rb +537 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/assets/javascripts/application.js +9 -0
- data/spec/dummy/app/assets/stylesheets/application.css +7 -0
- data/spec/dummy/app/controllers/application_controller.rb +104 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/models/ability.rb +25 -0
- data/spec/dummy/app/models/bookmark.rb +29 -0
- data/spec/dummy/app/models/bookstore.rb +31 -0
- data/spec/dummy/app/models/role.rb +5 -0
- data/spec/dummy/app/models/user.rb +29 -0
- data/spec/dummy/app/models/user_group.rb +2 -0
- data/spec/dummy/app/models/user_has_role.rb +4 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/app/views/page/403.html.erb +9 -0
- data/spec/dummy/app/views/page/403.mobile.erb +5 -0
- data/spec/dummy/app/views/page/403.xml.erb +4 -0
- data/spec/dummy/app/views/page/404.html.erb +9 -0
- data/spec/dummy/app/views/page/404.mobile.erb +5 -0
- data/spec/dummy/app/views/page/404.xml.erb +4 -0
- data/spec/dummy/config/application.rb +45 -0
- data/spec/dummy/config/boot.rb +10 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +30 -0
- data/spec/dummy/config/environments/production.rb +60 -0
- data/spec/dummy/config/environments/test.rb +39 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/devise.rb +209 -0
- data/spec/dummy/config/initializers/inflections.rb +10 -0
- data/spec/dummy/config/initializers/mime_types.rb +6 -0
- data/spec/dummy/config/initializers/secret_token.rb +7 -0
- data/spec/dummy/config/initializers/session_store.rb +8 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/routes.rb +60 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/db/migrate/006_create_items.rb +36 -0
- data/spec/dummy/db/migrate/124_create_bookstores.rb +21 -0
- data/spec/dummy/db/migrate/20111201121844_create_roles.rb +12 -0
- data/spec/dummy/db/migrate/20111201155456_create_users.rb +13 -0
- data/spec/dummy/db/migrate/20111201155513_add_devise_to_users.rb +31 -0
- data/spec/dummy/db/migrate/20111201163342_create_user_groups.rb +12 -0
- data/spec/dummy/db/migrate/20111201163718_create_user_has_roles.rb +10 -0
- data/spec/dummy/db/schema.rb +156 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +0 -0
- data/spec/dummy/log/sunspot-solr-test.log +222 -0
- data/spec/dummy/log/test.log +137771 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +26 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/dummy/solr/conf/admin-extra.html +31 -0
- data/spec/dummy/solr/conf/elevate.xml +36 -0
- data/spec/dummy/solr/conf/mapping-ISOLatin1Accent.txt +246 -0
- data/spec/dummy/solr/conf/protwords.txt +21 -0
- data/spec/dummy/solr/conf/schema.xml +238 -0
- data/spec/dummy/solr/conf/scripts.conf +24 -0
- data/spec/dummy/solr/conf/solrconfig.xml +934 -0
- data/spec/dummy/solr/conf/spellings.txt +2 -0
- data/spec/dummy/solr/conf/stopwords.txt +58 -0
- data/spec/dummy/solr/conf/synonyms.txt +31 -0
- data/spec/dummy/solr/data/test/index/segments.gen +0 -0
- data/spec/dummy/solr/data/test/index/segments_1 +0 -0
- data/spec/dummy/solr/data/test/spellchecker/segments.gen +0 -0
- data/spec/dummy/solr/data/test/spellchecker/segments_1 +0 -0
- data/spec/factories/bookstore.rb +5 -0
- data/spec/factories/order.rb +6 -0
- data/spec/factories/order_list.rb +7 -0
- data/spec/factories/purchase_request.rb +6 -0
- data/spec/factories/user.rb +34 -0
- data/spec/fixtures/order_lists.yml +40 -0
- data/spec/fixtures/orders.yml +50 -0
- data/spec/fixtures/purchase_requests.yml +129 -0
- data/spec/fixtures/roles.yml +21 -0
- data/spec/fixtures/user_has_roles.yml +41 -0
- data/spec/fixtures/users.yml +69 -0
- data/spec/models/order_list_spec.rb +24 -0
- data/spec/models/order_spec.rb +21 -0
- data/spec/models/purchase_request_spec.rb +31 -0
- data/spec/spec_helper.rb +44 -0
- data/spec/support/controller_macros.rb +48 -0
- data/spec/support/devise.rb +4 -0
- metadata +394 -0
@@ -0,0 +1,66 @@
|
|
1
|
+
<div id="content_detail" class="ui-corner-all">
|
2
|
+
<h1 class="title"><%= t('page.editing', :model => t('activerecord.models.purchase_request')) -%></h1>
|
3
|
+
<div id="content_list">
|
4
|
+
|
5
|
+
<%= form_for(@purchase_request) do |f| -%>
|
6
|
+
<%= f.error_messages -%>
|
7
|
+
|
8
|
+
<div class="field">
|
9
|
+
<%= f.label t('activerecord.models.user') -%><br />
|
10
|
+
<%= link_to @purchase_request.user.username, @purchase_request.user -%>
|
11
|
+
<%= f.hidden_field :user_id -%>
|
12
|
+
</div>
|
13
|
+
|
14
|
+
<div class="field">
|
15
|
+
<%= f.label :title -%><br />
|
16
|
+
<%= f.text_area :title, :class => 'resource_textarea' -%>
|
17
|
+
</div>
|
18
|
+
|
19
|
+
<div class="field">
|
20
|
+
<%= f.label :author -%><br />
|
21
|
+
<%= f.text_area :author, :class => 'resource_textarea' -%>
|
22
|
+
</div>
|
23
|
+
|
24
|
+
<div class="field">
|
25
|
+
<%= f.label :publisher -%><br />
|
26
|
+
<%= f.text_area :publisher, :class => 'resource_textarea' -%>
|
27
|
+
</div>
|
28
|
+
|
29
|
+
<div class="field">
|
30
|
+
<%= f.label :isbn -%><br />
|
31
|
+
<%= f.text_field :isbn, :class => 'resource_isbn_issn' -%>
|
32
|
+
</div>
|
33
|
+
|
34
|
+
<div class="field">
|
35
|
+
<%= f.label :pub_date -%><br />
|
36
|
+
<%= f.text_field :pub_date -%>
|
37
|
+
</div>
|
38
|
+
|
39
|
+
<div class="field">
|
40
|
+
<%= f.label :price -%><br />
|
41
|
+
<%= f.text_field :price, :class => 'resource_integer' -%>
|
42
|
+
</div>
|
43
|
+
|
44
|
+
<div class="field">
|
45
|
+
<%= f.label :url -%><br />
|
46
|
+
<%= f.url_field :url, :class => 'resource_url' -%>
|
47
|
+
</div>
|
48
|
+
|
49
|
+
<div class="field">
|
50
|
+
<%= f.label :note -%><br />
|
51
|
+
<%= f.text_area :note, :class => 'resource_textarea' -%>
|
52
|
+
</div>
|
53
|
+
|
54
|
+
<div class="actions">
|
55
|
+
<%= f.submit %>
|
56
|
+
</div>
|
57
|
+
<%- end -%>
|
58
|
+
</div>
|
59
|
+
</div>
|
60
|
+
|
61
|
+
<div id="submenu" class="ui-corner-all">
|
62
|
+
<ul>
|
63
|
+
<li><%= link_to t('page.show'), @purchase_request -%></li>
|
64
|
+
<li><%= link_to t('page.back'), user_purchase_requests_path(@purchase_request.user, :page => flash[:page] ||= nil) -%></li>
|
65
|
+
</ul>
|
66
|
+
</div>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
atom_feed(:url => purchase_requests_url(:format => :atom)) do |feed|
|
2
|
+
if @user
|
3
|
+
feed.title t('purchase_request.user_purchase_request', :login_name => @user.username)
|
4
|
+
else
|
5
|
+
feed.title t('purchase_request.library_group_purchase_request', :library_group_name => @library_group.display_name.localize)
|
6
|
+
end
|
7
|
+
feed.updated(@purchase_requests.first ? @purchase_requests.first.created_at : Time.zone.now)
|
8
|
+
|
9
|
+
@purchase_requests.each do |purchase_request|
|
10
|
+
feed.entry(purchase_request) do |entry|
|
11
|
+
entry.title(purchase_request.title)
|
12
|
+
entry.author(purchase_request.author)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,4 @@
|
|
1
|
+
title,author,publisher,created_at,order_list_title,ordered_at,bookstore
|
2
|
+
<%- @purchase_requests.each do |purchase_request| -%>
|
3
|
+
"<%=h purchase_request.title.gsub(/"/, '""') -%>",<%=h purchase_request.author -%>,<%=h purchase_request.publisher -%>,<%=h purchase_request.created_at -%>,<%=h purchase_request.order_list.title rescue nil -%>,<%=h purchase_request.order_list.ordered_at rescue nil -%>,<%=h purchase_request.order_list.bookstore.name rescue nil%><%= "\n" -%>
|
4
|
+
<%- end -%>
|
@@ -0,0 +1,38 @@
|
|
1
|
+
xml.instruct! :xml, :version=>"1.0"
|
2
|
+
xml.rss('version' => "2.0",
|
3
|
+
'xmlns:opensearch' => "http://a9.com/-/spec/opensearch/1.1/",
|
4
|
+
'xmlns:atom' => "http://www.w3.org/2005/Atom"){
|
5
|
+
xml.channel{
|
6
|
+
xml.description "Next-L Enju, an open source integrated library system developed by Project Next-L"
|
7
|
+
if @user
|
8
|
+
xml.title t('purchase_request.user_purchase_request', :login_name => @user.username)
|
9
|
+
xml.link user_purchase_requests_url(@user)
|
10
|
+
xml.tag! "atom:link", :rel => 'self', :href => user_purchase_requests_url(@user, :format => :rss)
|
11
|
+
xml.tag! "atom:link", :rel => 'alternate', :href => user_purchase_requests_url(@user)
|
12
|
+
else
|
13
|
+
xml.title t('purchase_request.library_group_purchase_request', :library_group_name => @library_group.display_name.localize)
|
14
|
+
xml.link purchase_requests_url
|
15
|
+
xml.tag! "atom:link", :rel => 'self', :href => purchase_requests_url(:format => :rss)
|
16
|
+
xml.tag! "atom:link", :rel => 'alternate', :href => purchase_requests_url
|
17
|
+
end
|
18
|
+
xml.language @locale.to_s
|
19
|
+
xml.ttl "60"
|
20
|
+
#xml.tag! "atom:link", :rel => 'search', :type => 'application/opensearchdescription+xml', :href => "http://#{request.host_with_port}/page/opensearch"
|
21
|
+
unless params[:query].blank?
|
22
|
+
xml.tag! "opensearch:totalResults", @count[:query_result]
|
23
|
+
xml.tag! "opensearch:startIndex", @purchase_requests.offset + 1
|
24
|
+
xml.tag! "opensearch:itemsPerPage", @purchase_requests.per_page
|
25
|
+
#xml.tag! "opensearch:Query", :role => 'request', :searchTerms => params[:query], :startPage => (params[:page] || 1)
|
26
|
+
end
|
27
|
+
@purchase_requests.each do |purchase_request|
|
28
|
+
xml.item do
|
29
|
+
xml.title purchase_request.title
|
30
|
+
#xml.description(purchase_request.title)
|
31
|
+
# rfc822
|
32
|
+
xml.pubDate purchase_request.created_at.utc.rfc822
|
33
|
+
xml.link user_purchase_request_url(purchase_request.user, purchase_request)
|
34
|
+
xml.guid user_purchase_request_url(purchase_request.user, purchase_request), :isPermaLink => "true"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
}
|
38
|
+
}
|
@@ -0,0 +1,94 @@
|
|
1
|
+
<div id="content_detail" class="ui-corner-all">
|
2
|
+
<h1 class="title"><%= t('page.showing', :model => t('activerecord.models.purchase_request')) -%></h1>
|
3
|
+
<div id="content_list">
|
4
|
+
<p id="notice"><%= notice %></p>
|
5
|
+
|
6
|
+
<p>
|
7
|
+
<strong><%= t('activerecord.models.user') -%>:</strong>
|
8
|
+
<%= link_to @purchase_request.user.username, @purchase_request.user -%>
|
9
|
+
</p>
|
10
|
+
|
11
|
+
<p>
|
12
|
+
<strong><%= t('activerecord.models.order_list') -%>:</strong>
|
13
|
+
<%- if @purchase_request.order_list -%>
|
14
|
+
<%= link_to @purchase_request.order_list.title, order_list_purchase_requests_path(@purchase_request.order_list) -%>
|
15
|
+
<%- else -%>
|
16
|
+
<%= t('purchase_request.not_ordered') -%>
|
17
|
+
<%- end -%>
|
18
|
+
</p>
|
19
|
+
|
20
|
+
<p>
|
21
|
+
<strong><%= t('activerecord.attributes.purchase_request.title') -%>:</strong>
|
22
|
+
<%= @purchase_request.title -%>
|
23
|
+
</p>
|
24
|
+
|
25
|
+
<p>
|
26
|
+
<strong><%= t('activerecord.attributes.purchase_request.author') -%>:</strong>
|
27
|
+
<%= @purchase_request.author -%>
|
28
|
+
</p>
|
29
|
+
|
30
|
+
<p>
|
31
|
+
<strong><%= t('activerecord.attributes.purchase_request.publisher') -%>:</strong>
|
32
|
+
<%= @purchase_request.publisher -%>
|
33
|
+
</p>
|
34
|
+
|
35
|
+
<p>
|
36
|
+
<strong><%= t('activerecord.attributes.purchase_request.isbn') -%>:</strong>
|
37
|
+
<%= @purchase_request.isbn -%>
|
38
|
+
</p>
|
39
|
+
|
40
|
+
<p>
|
41
|
+
<strong><%= t('activerecord.attributes.purchase_request.pub_date') -%>:</strong>
|
42
|
+
<%= @purchase_request.pub_date -%>
|
43
|
+
</p>
|
44
|
+
|
45
|
+
<p>
|
46
|
+
<strong><%= t('activerecord.attributes.purchase_request.price') -%>:</strong>
|
47
|
+
<%= @purchase_request.price -%>
|
48
|
+
</p>
|
49
|
+
|
50
|
+
<p>
|
51
|
+
<strong><%= t('activerecord.attributes.purchase_request.url') -%>:</strong>
|
52
|
+
<%= link_to @purchase_request.url, @purchase_request.url if @purchase_request.url? -%>
|
53
|
+
</p>
|
54
|
+
|
55
|
+
<p>
|
56
|
+
<strong><%= t('activerecord.attributes.purchase_request.note') -%>:</strong>
|
57
|
+
<%= @purchase_request.note -%>
|
58
|
+
</p>
|
59
|
+
|
60
|
+
<p>
|
61
|
+
<strong><%= t('activerecord.attributes.order_list.ordered_at') -%>:</strong>
|
62
|
+
<%= l(@purchase_request.order_list.ordered_at) if @purchase_request.order_list rescue nil -%>
|
63
|
+
</p>
|
64
|
+
|
65
|
+
<p>
|
66
|
+
<strong><%= t('page.created_at') -%>:</strong>
|
67
|
+
<%= l(@purchase_request.created_at) -%>
|
68
|
+
</p>
|
69
|
+
|
70
|
+
<p>
|
71
|
+
<strong><%= t('page.updated_at') -%>:</strong>
|
72
|
+
<%= l(@purchase_request.updated_at) -%>
|
73
|
+
</p>
|
74
|
+
|
75
|
+
</div>
|
76
|
+
</div>
|
77
|
+
|
78
|
+
<div id="submenu" class="ui-corner-all">
|
79
|
+
<ul>
|
80
|
+
<%- if @purchase_request.order_list -%>
|
81
|
+
<li><%= link_to t('purchase_request.remove_from_order_list'), order_list_order_path(@purchase_request.order_list, @purchase_request.order), :method => :delete, :confirm => t('page.are_you_sure') -%></li>
|
82
|
+
<%- else -%>
|
83
|
+
<li><%= link_to t('purchase_request.add_to_order_list'), new_purchase_request_order_path(@purchase_request) -%></li>
|
84
|
+
<%- end -%>
|
85
|
+
<%- if @user -%>
|
86
|
+
<li><%= link_to t('page.new', :model => t('activerecord.models.purchase_request')), new_purchase_request_path %></li>
|
87
|
+
<%- end -%>
|
88
|
+
<li><%= link_to t('page.edit'), edit_purchase_request_path(@purchase_request) -%></li>
|
89
|
+
<%- if current_user.has_role?('Librarian') -%>
|
90
|
+
<li><%= link_to t('page.destroy'), @purchase_request_path, :confirm => t('page.are_you_sure'), :method => :delete -%></li>
|
91
|
+
<%- end -%>
|
92
|
+
<li><%= link_to t('page.back'), user_purchase_requests_path(@purchase_request.user, :page => flash[:page] ||= nil) -%></li>
|
93
|
+
</ul>
|
94
|
+
</div>
|
data/config/routes.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
Rails.application.routes.draw do
|
2
|
+
resources :purchase_requests do
|
3
|
+
resource :order
|
4
|
+
end
|
5
|
+
resources :users do
|
6
|
+
resources :purchase_requests, :only => :index
|
7
|
+
end
|
8
|
+
resources :order_lists do
|
9
|
+
resources :purchase_requests
|
10
|
+
end
|
11
|
+
resources :order_lists do
|
12
|
+
resource :order
|
13
|
+
end
|
14
|
+
resources :orders
|
15
|
+
resources :bookstores do
|
16
|
+
resources :order_lists
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
class CreatePurchaseRequests < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :purchase_requests do |t|
|
4
|
+
t.integer :user_id, :null => false
|
5
|
+
t.text :title, :null => false
|
6
|
+
t.text :author
|
7
|
+
t.text :publisher
|
8
|
+
t.string :isbn
|
9
|
+
t.datetime :date_of_publication
|
10
|
+
t.integer :price
|
11
|
+
t.string :url
|
12
|
+
t.text :note
|
13
|
+
t.datetime :accepted_at
|
14
|
+
t.datetime :denied_at
|
15
|
+
t.datetime :created_at
|
16
|
+
t.datetime :updated_at
|
17
|
+
t.datetime :deleted_at
|
18
|
+
t.string :state
|
19
|
+
t.string :pub_date
|
20
|
+
|
21
|
+
t.timestamps
|
22
|
+
end
|
23
|
+
add_index :purchase_requests, :user_id
|
24
|
+
add_index :purchase_requests, :state
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.down
|
28
|
+
drop_table :purchase_requests
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class CreateOrders < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :orders do |t|
|
4
|
+
t.integer :order_list_id, :null => false
|
5
|
+
t.integer :purchase_request_id, :null => false
|
6
|
+
t.integer :position
|
7
|
+
t.string :state
|
8
|
+
|
9
|
+
t.timestamps
|
10
|
+
end
|
11
|
+
add_index :orders, :order_list_id
|
12
|
+
add_index :orders, :purchase_request_id
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.down
|
16
|
+
drop_table :orders
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class CreateOrderLists < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :order_lists do |t|
|
4
|
+
t.integer :user_id, :null => false
|
5
|
+
t.integer :bookstore_id, :null => false
|
6
|
+
t.text :title, :null => false
|
7
|
+
t.text :note
|
8
|
+
t.datetime :ordered_at
|
9
|
+
t.datetime :deleted_at
|
10
|
+
t.string :state
|
11
|
+
|
12
|
+
t.timestamps
|
13
|
+
end
|
14
|
+
add_index :order_lists, :user_id
|
15
|
+
add_index :order_lists, :bookstore_id
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.down
|
19
|
+
drop_table :order_lists
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module BookmarkUrl
|
2
|
+
def my_host?
|
3
|
+
url = ::Addressable::URI.parse(self)
|
4
|
+
unless url.host
|
5
|
+
raise ::Addressable::URI::InvalidURIError
|
6
|
+
end
|
7
|
+
config_url = ::Addressable::URI.parse(LibraryGroup.site_config.url)
|
8
|
+
if url.host == config_url.host and url.port == config_url.port and ['http', 'https'].include?(url.scheme)
|
9
|
+
true
|
10
|
+
else
|
11
|
+
false
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def bookmarkable?
|
16
|
+
if self.my_host?
|
17
|
+
url = ::Addressable::URI.parse(self)
|
18
|
+
path = url.path.split("/").reverse
|
19
|
+
if path[1] == "manifestations" and Manifestation.where(:id => path[0]).first
|
20
|
+
true
|
21
|
+
else
|
22
|
+
false
|
23
|
+
end
|
24
|
+
else
|
25
|
+
true
|
26
|
+
end
|
27
|
+
rescue ::Addressable::URI::InvalidURIError
|
28
|
+
false
|
29
|
+
end
|
30
|
+
|
31
|
+
def bookmarkable_id
|
32
|
+
if self.my_host?
|
33
|
+
path = ::Addressable::URI.parse(self).path.split("/").reverse
|
34
|
+
unless path[1] == "manifestations"
|
35
|
+
nil
|
36
|
+
else
|
37
|
+
path[0]
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
class String
|
44
|
+
include BookmarkUrl
|
45
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'devise'
|
2
|
+
require 'cancan'
|
3
|
+
require 'will_paginate'
|
4
|
+
require 'sunspot_rails'
|
5
|
+
require 'state_machine'
|
6
|
+
require 'attribute_normalizer'
|
7
|
+
require 'configatron'
|
8
|
+
require 'addressable/uri'
|
9
|
+
require 'nkf'
|
10
|
+
|
11
|
+
module EnjuPurchaseRequest
|
12
|
+
class Engine < Rails::Engine
|
13
|
+
end
|
14
|
+
end
|