kete_trackable_items 0.0.1
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/.document +5 -0
- data/.gitignore +21 -0
- data/.specification +146 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +27 -0
- data/LICENSE +20 -0
- data/README.rdoc +24 -0
- data/Rakefile +53 -0
- data/VERSION +1 -0
- data/app/controllers/repositories_controller.rb +70 -0
- data/app/controllers/shelf_locations_controller.rb +98 -0
- data/app/controllers/trackable_item_shelf_locations_controller.rb +64 -0
- data/app/controllers/tracked_items_controller.rb +44 -0
- data/app/controllers/tracking_lists_controller.rb +88 -0
- data/app/helpers/trackable_item_shelf_locations_helper.rb +17 -0
- data/app/helpers/trackable_items_helper.rb +52 -0
- data/app/models/on_loan_organization.rb +8 -0
- data/app/models/repository.rb +11 -0
- data/app/models/shelf_location.rb +69 -0
- data/app/models/trackable_item_shelf_location.rb +58 -0
- data/app/models/tracked_item.rb +18 -0
- data/app/models/tracking_list.rb +50 -0
- data/app/views/repositories/_form.html.erb +14 -0
- data/app/views/repositories/edit.html.erb +9 -0
- data/app/views/repositories/index.html.erb +22 -0
- data/app/views/repositories/new.html.erb +9 -0
- data/app/views/repositories/show.html.erb +30 -0
- data/app/views/shelf_locations/_event_button.html.erb +1 -0
- data/app/views/shelf_locations/_form.html.erb +34 -0
- data/app/views/shelf_locations/_shelf_location.html.erb +17 -0
- data/app/views/shelf_locations/_shelf_locations.html.erb +14 -0
- data/app/views/shelf_locations/_trackable_item.html.erb +12 -0
- data/app/views/shelf_locations/edit.html.erb +9 -0
- data/app/views/shelf_locations/index.html.erb +7 -0
- data/app/views/shelf_locations/new.html.erb +9 -0
- data/app/views/shelf_locations/show.html.erb +48 -0
- data/app/views/trackable_item_shelf_locations/new.html.erb +70 -0
- data/app/views/tracked_items/_tracked_item.html.erb +18 -0
- data/app/views/tracking_lists/_event_button.html.erb +1 -0
- data/app/views/tracking_lists/_form.html.erb +27 -0
- data/app/views/tracking_lists/_trackable_item_search_form.html.erb +28 -0
- data/app/views/tracking_lists/_tracking_list.html.erb +11 -0
- data/app/views/tracking_lists/_tracking_lists.html.erb +14 -0
- data/app/views/tracking_lists/edit.html.erb +9 -0
- data/app/views/tracking_lists/index.html.erb +11 -0
- data/app/views/tracking_lists/show.html.erb +45 -0
- data/app/views/tracking_lists/show.xls.builder +48 -0
- data/config/locales/en.yml +151 -0
- data/config/routes.rb +6 -0
- data/generators/kete_trackable_items_migrations/USAGE +2 -0
- data/generators/kete_trackable_items_migrations/kete_trackable_items_migrations_generator.rb +19 -0
- data/generators/kete_trackable_items_migrations/templates/add_trackable_item_columns_to_topics.rb +15 -0
- data/generators/kete_trackable_items_migrations/templates/create_on_loan_organizations.rb +14 -0
- data/generators/kete_trackable_items_migrations/templates/create_repositories.rb +14 -0
- data/generators/kete_trackable_items_migrations/templates/create_shelf_locations.rb +15 -0
- data/generators/kete_trackable_items_migrations/templates/create_trackable_item_shelf_locations.rb +16 -0
- data/generators/kete_trackable_items_migrations/templates/create_tracked_items.rb +15 -0
- data/generators/kete_trackable_items_migrations/templates/create_tracking_lists.rb +15 -0
- data/kete_trackable_items.gemspec +25 -0
- data/lib/kete_trackable_items.rb +0 -0
- data/lib/kete_trackable_items/controller_helpers.rb +7 -0
- data/lib/kete_trackable_items/extensions/helpers/application_helper.rb +29 -0
- data/lib/kete_trackable_items/extensions/models/basket.rb +4 -0
- data/lib/kete_trackable_items/extensions/models/topic.rb +6 -0
- data/lib/kete_trackable_items/matching_trackable_items_controller_helpers.rb +42 -0
- data/lib/kete_trackable_items/trackable_item.rb +80 -0
- data/lib/kete_trackable_items/version.rb +3 -0
- data/lib/kete_trackable_items/workflow_utilities.rb +91 -0
- data/rails/init.rb +68 -0
- metadata +166 -0
@@ -0,0 +1,42 @@
|
|
1
|
+
module KeteTrackableItems
|
2
|
+
module MatchingTrackableItemsControllerHelpers
|
3
|
+
def set_matching_trackable_items
|
4
|
+
# do we have a search for trackable_items to add?
|
5
|
+
if params[:trackable_type_param_key].present?
|
6
|
+
# compose our find based on input and Kete.trackable_item_scopes
|
7
|
+
type_key_plural = params[:trackable_type_param_key]
|
8
|
+
|
9
|
+
type_key = type_key_plural.singularize
|
10
|
+
class_name = type_key.camelize
|
11
|
+
klass = class_name.constantize
|
12
|
+
|
13
|
+
always_scopes = Kete.trackable_item_scopes[type_key]['search_scopes']['always_within_scopes'].keys
|
14
|
+
|
15
|
+
# a trackable_item has to be allocated a shelf before it can be added to a tracking_list
|
16
|
+
always_scopes << 'with_state_on_shelf' if params[:controller] == 'tracking_lists'
|
17
|
+
|
18
|
+
scope_value_pairs = params[type_key_plural].select { |k, v| v.present? }
|
19
|
+
|
20
|
+
scope_value_pairs << ['in_basket', @current_basket.id] unless @current_basket == @site_basket
|
21
|
+
|
22
|
+
relevent_scopes = always_scopes + scope_value_pairs
|
23
|
+
|
24
|
+
@matching_trackable_items = relevent_scopes.inject(klass) do |model_class, relevent_scope|
|
25
|
+
if relevent_scope.is_a?(Array)
|
26
|
+
model_class.send(relevent_scope.first, relevent_scope.last)
|
27
|
+
else
|
28
|
+
model_class.send(relevent_scope)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def build_items_for_matching_trackable_items_for(target, collection_name)
|
35
|
+
if @matching_trackable_items.present?
|
36
|
+
@matching_trackable_items.each do |trackable_item|
|
37
|
+
target.send(collection_name).build(:trackable_item => trackable_item)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
require "active_record"
|
2
|
+
|
3
|
+
module KeteTrackableItems
|
4
|
+
module TrackableItem
|
5
|
+
def self.included(base)
|
6
|
+
base.extend(ClassMethods)
|
7
|
+
end
|
8
|
+
|
9
|
+
module ClassMethods
|
10
|
+
def set_up_as_trackable_item(*args)
|
11
|
+
options = args.last.is_a?(Hash) ? args.pop : Hash.new
|
12
|
+
|
13
|
+
# don't allow multiple calls
|
14
|
+
return if self.included_modules.include?(KeteTrackableItems::TrackableItem::InstanceMethods)
|
15
|
+
|
16
|
+
send :include, KeteTrackableItems::TrackableItem::InstanceMethods
|
17
|
+
|
18
|
+
# associations to support allocating a trackable_item to a shelf_location or shelf_locations
|
19
|
+
send :has_many, :trackable_item_shelf_locations, :as => :trackable_item, :dependent => :delete_all
|
20
|
+
send :has_many, :shelf_locations, :through => :trackable_item_shelf_locations, :conditions => "trackable_item_shelf_locations.workflow_state = 'active'"
|
21
|
+
# associations to support adding a trackable_item to a tracking_list
|
22
|
+
send :has_many, :tracked_items, :as => :trackable_item, :dependent => :delete_all
|
23
|
+
send :has_many, :tracking_lists, :through => :tracked_items
|
24
|
+
|
25
|
+
# when a trackable_item is in 'on_loan' state, which on_loan_organization is it on loan to?
|
26
|
+
send :belongs_to, :on_loan_organization
|
27
|
+
|
28
|
+
self.non_versioned_columns << "on_loan_organization_id"
|
29
|
+
|
30
|
+
cattr_accessor :described_as_in_tracking_list
|
31
|
+
self.described_as_in_tracking_list = options[:described_as] || :title
|
32
|
+
|
33
|
+
# set up our states and events through workflow gem
|
34
|
+
send :include, KeteTrackableItems::WorkflowUtilities
|
35
|
+
|
36
|
+
class_eval do
|
37
|
+
shared_code_as_string = shared_tracking_workflow_specs_as_string
|
38
|
+
|
39
|
+
specification = Proc.new {
|
40
|
+
state :unallocated do
|
41
|
+
event :allocate, :transitions_to => :on_shelf
|
42
|
+
end
|
43
|
+
|
44
|
+
eval(shared_code_as_string)
|
45
|
+
|
46
|
+
state :to_be_refiled do
|
47
|
+
event :refile, :transitions_to => :on_shelf
|
48
|
+
end
|
49
|
+
}
|
50
|
+
|
51
|
+
workflow(&specification)
|
52
|
+
|
53
|
+
set_up_workflow_named_scopes.call
|
54
|
+
end
|
55
|
+
|
56
|
+
self.non_versioned_columns << "workflow_state"
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
module InstanceMethods
|
61
|
+
# could be called is_allocated_to_shelf ?
|
62
|
+
def has_shelf_locations?
|
63
|
+
shelf_locations.size > 0
|
64
|
+
end
|
65
|
+
|
66
|
+
def description_for_tracked_item
|
67
|
+
send(self.class.described_as_in_tracking_list)
|
68
|
+
end
|
69
|
+
|
70
|
+
# add workflow triggered methods that run when corresponding event is triggered as necessary
|
71
|
+
def new_allocation
|
72
|
+
allocate!
|
73
|
+
end
|
74
|
+
|
75
|
+
def mapping_deactivated_or_destroyed
|
76
|
+
unassign_location! if on_shelf? && !has_shelf_locations?
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
module KeteTrackableItems
|
2
|
+
module WorkflowUtilities
|
3
|
+
def self.included(base)
|
4
|
+
base.send :include, Workflow
|
5
|
+
base.extend(ClassMethods)
|
6
|
+
base.send :include, InstanceMethods
|
7
|
+
end
|
8
|
+
|
9
|
+
# mostly grabbed from trollied, would be nice if split into shared lib
|
10
|
+
module ClassMethods
|
11
|
+
# returns a Hash where keys are event name and values are event object
|
12
|
+
def workflow_events
|
13
|
+
events = workflow_spec.states.values.collect &:events
|
14
|
+
|
15
|
+
# skip blank values
|
16
|
+
events = events.select { |e| e.present? }
|
17
|
+
|
18
|
+
# flatten
|
19
|
+
events_hash = Hash.new
|
20
|
+
events.each do |v|
|
21
|
+
v.each do |key,value|
|
22
|
+
events_hash[key] = value
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
events_hash
|
27
|
+
end
|
28
|
+
|
29
|
+
def workflow_event_names
|
30
|
+
workflow_events.keys
|
31
|
+
end
|
32
|
+
|
33
|
+
# kete_trackable_items specific stuff starts
|
34
|
+
def shared_tracking_workflow_specs_as_string
|
35
|
+
'
|
36
|
+
state :on_shelf do
|
37
|
+
event :unassign_location, :transitions_to => :unallocated
|
38
|
+
event :display, :transitions_to => :displayed
|
39
|
+
event :hold_out, :transitions_to => :held_out
|
40
|
+
event :loan, :transitions_to => :on_loan_to_organization
|
41
|
+
end
|
42
|
+
|
43
|
+
state :displayed do
|
44
|
+
event :hold_out, :transitions_to => :held_out
|
45
|
+
event :loan, :transitions_to => :on_loan_to_organization
|
46
|
+
event :queue_for_refiling, :transitions_to => :to_be_refiled
|
47
|
+
end
|
48
|
+
|
49
|
+
state :held_out do
|
50
|
+
event :loan, :transitions_to => :on_loan_to_organization
|
51
|
+
event :queue_for_refiling, :transitions_to => :to_be_refiled
|
52
|
+
end
|
53
|
+
|
54
|
+
state :on_loan_to_organization do
|
55
|
+
event :display, :transitions_to => :displayed
|
56
|
+
event :hold_out, :transitions_to => :held_out
|
57
|
+
event :queue_for_refiling, :transitions_to => :to_be_refiled
|
58
|
+
end
|
59
|
+
'
|
60
|
+
end
|
61
|
+
|
62
|
+
def set_up_workflow_named_scopes
|
63
|
+
Proc.new {
|
64
|
+
# create a named_scope for each of our declared states
|
65
|
+
workflow_spec.state_names.each do |name|
|
66
|
+
scope_name = "with_state_#{name}".to_sym
|
67
|
+
named_scope scope_name, :conditions => { :workflow_state => name.to_s }, :order => 'updated_at DESC'
|
68
|
+
end
|
69
|
+
|
70
|
+
# workflow_in(state_name)
|
71
|
+
named_scope :workflow_in, lambda { |*args|
|
72
|
+
options = args.last.is_a?(Hash) ? args.pop : Hash.new
|
73
|
+
state = args.is_a?(Array) ? args.first : args
|
74
|
+
|
75
|
+
if state == 'all'
|
76
|
+
options
|
77
|
+
else
|
78
|
+
{ :conditions => { :workflow_state => state.to_s }.merge(options) }
|
79
|
+
end
|
80
|
+
}
|
81
|
+
}
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
module InstanceMethods
|
86
|
+
def current_state_humanized
|
87
|
+
current_state.name.to_s.humanize
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
data/rails/init.rb
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
ActionController::Base.send(:include, KeteTrackableItems::ControllerHelpers)
|
2
|
+
ActionController::Base.send(:helper, TrackableItemsHelper)
|
3
|
+
|
4
|
+
config.to_prepare do
|
5
|
+
# load our locales
|
6
|
+
I18n.load_path += Dir[File.join(File.dirname(__FILE__), '../config/locales/*.{rb,yml}')]
|
7
|
+
|
8
|
+
# override some controllers and helpers to be kete gets trollied aware
|
9
|
+
exts = File.join(File.dirname(__FILE__), '../lib/kete_trackable_items/extensions/{controllers,helpers}/*')
|
10
|
+
# use Kernel.load here so that changes to the extensions are reloaded on each request in development
|
11
|
+
Dir[exts].each { |ext_path| Kernel.load(ext_path) }
|
12
|
+
|
13
|
+
# models we extend
|
14
|
+
Dir[File.join(File.dirname(__FILE__), '../lib/kete_trackable_items/extensions/models/*')].each do |ext_path|
|
15
|
+
key = File.basename(ext_path, '.rb').to_sym
|
16
|
+
Kete.add_code_to_extensions_for(key, Proc.new { Kernel.load(ext_path) })
|
17
|
+
end
|
18
|
+
|
19
|
+
# this is for site specific defined search scopes
|
20
|
+
# i.e. you can place your own Kete site's extended fields set up dependent search definitions
|
21
|
+
# in a config and have them available to kete_trackable_items code
|
22
|
+
Kete.define_reader_method_as('trackable_item_scopes',
|
23
|
+
YAML.load(IO.read(File.join(Rails.root, 'config/trackable_item_scopes.yml'))))
|
24
|
+
|
25
|
+
Kete.trackable_item_scopes.each do |key, options|
|
26
|
+
klass = key.camelize.constantize
|
27
|
+
key = key.to_sym
|
28
|
+
|
29
|
+
if options['prerequisite_extensions'].present?
|
30
|
+
options['prerequisite_extensions'].each do |code|
|
31
|
+
extension = Proc.new {
|
32
|
+
klass.class_eval do
|
33
|
+
eval(code)
|
34
|
+
end
|
35
|
+
}
|
36
|
+
|
37
|
+
Kete.add_code_to_extensions_for(key, extension)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
if options['search_scopes'].present?
|
42
|
+
if options['search_scopes']['always_within_scopes'].present?
|
43
|
+
options['search_scopes']['always_within_scopes'].each do |scope_key, scope_code|
|
44
|
+
extension = Proc.new {
|
45
|
+
klass.class_eval do
|
46
|
+
named_scope(scope_key.to_sym, eval(scope_code))
|
47
|
+
end
|
48
|
+
}
|
49
|
+
|
50
|
+
Kete.add_code_to_extensions_for(key, extension)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
if options['search_scopes']['text_searches'].present?
|
55
|
+
options['search_scopes']['text_searches'].each do |search_specs|
|
56
|
+
search_specs.each do |scope_key, scope_code|
|
57
|
+
extension = Proc.new {
|
58
|
+
klass.class_eval do
|
59
|
+
named_scope(scope_key.to_sym, eval(scope_code))
|
60
|
+
end
|
61
|
+
}
|
62
|
+
Kete.add_code_to_extensions_for(key, extension)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
metadata
ADDED
@@ -0,0 +1,166 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: kete_trackable_items
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Walter McGinnis
|
14
|
+
- Noel Gomez
|
15
|
+
- Chris Toynbee
|
16
|
+
autorequire:
|
17
|
+
bindir: bin
|
18
|
+
cert_chain: []
|
19
|
+
|
20
|
+
date: 2012-05-31 00:00:00 +12:00
|
21
|
+
default_executable:
|
22
|
+
dependencies:
|
23
|
+
- !ruby/object:Gem::Dependency
|
24
|
+
name: thoughtbot-shoulda
|
25
|
+
prerelease: false
|
26
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
27
|
+
none: false
|
28
|
+
requirements:
|
29
|
+
- - ">="
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
hash: 3
|
32
|
+
segments:
|
33
|
+
- 0
|
34
|
+
version: "0"
|
35
|
+
type: :development
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: jeweler
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 3
|
46
|
+
segments:
|
47
|
+
- 0
|
48
|
+
version: "0"
|
49
|
+
type: :development
|
50
|
+
version_requirements: *id002
|
51
|
+
description: A Kete application add-on that allows for tracking the location of an item in a physical archive that corresponds to the item in the Kete application.
|
52
|
+
email:
|
53
|
+
- ctoynbee@gmail.com
|
54
|
+
- walter@katipo.co.nz
|
55
|
+
executables: []
|
56
|
+
|
57
|
+
extensions: []
|
58
|
+
|
59
|
+
extra_rdoc_files: []
|
60
|
+
|
61
|
+
files:
|
62
|
+
- .document
|
63
|
+
- .gitignore
|
64
|
+
- .specification
|
65
|
+
- Gemfile
|
66
|
+
- Gemfile.lock
|
67
|
+
- LICENSE
|
68
|
+
- README.rdoc
|
69
|
+
- Rakefile
|
70
|
+
- VERSION
|
71
|
+
- app/controllers/repositories_controller.rb
|
72
|
+
- app/controllers/shelf_locations_controller.rb
|
73
|
+
- app/controllers/trackable_item_shelf_locations_controller.rb
|
74
|
+
- app/controllers/tracked_items_controller.rb
|
75
|
+
- app/controllers/tracking_lists_controller.rb
|
76
|
+
- app/helpers/trackable_item_shelf_locations_helper.rb
|
77
|
+
- app/helpers/trackable_items_helper.rb
|
78
|
+
- app/models/on_loan_organization.rb
|
79
|
+
- app/models/repository.rb
|
80
|
+
- app/models/shelf_location.rb
|
81
|
+
- app/models/trackable_item_shelf_location.rb
|
82
|
+
- app/models/tracked_item.rb
|
83
|
+
- app/models/tracking_list.rb
|
84
|
+
- app/views/repositories/_form.html.erb
|
85
|
+
- app/views/repositories/edit.html.erb
|
86
|
+
- app/views/repositories/index.html.erb
|
87
|
+
- app/views/repositories/new.html.erb
|
88
|
+
- app/views/repositories/show.html.erb
|
89
|
+
- app/views/shelf_locations/_event_button.html.erb
|
90
|
+
- app/views/shelf_locations/_form.html.erb
|
91
|
+
- app/views/shelf_locations/_shelf_location.html.erb
|
92
|
+
- app/views/shelf_locations/_shelf_locations.html.erb
|
93
|
+
- app/views/shelf_locations/_trackable_item.html.erb
|
94
|
+
- app/views/shelf_locations/edit.html.erb
|
95
|
+
- app/views/shelf_locations/index.html.erb
|
96
|
+
- app/views/shelf_locations/new.html.erb
|
97
|
+
- app/views/shelf_locations/show.html.erb
|
98
|
+
- app/views/trackable_item_shelf_locations/new.html.erb
|
99
|
+
- app/views/tracked_items/_tracked_item.html.erb
|
100
|
+
- app/views/tracking_lists/_event_button.html.erb
|
101
|
+
- app/views/tracking_lists/_form.html.erb
|
102
|
+
- app/views/tracking_lists/_trackable_item_search_form.html.erb
|
103
|
+
- app/views/tracking_lists/_tracking_list.html.erb
|
104
|
+
- app/views/tracking_lists/_tracking_lists.html.erb
|
105
|
+
- app/views/tracking_lists/edit.html.erb
|
106
|
+
- app/views/tracking_lists/index.html.erb
|
107
|
+
- app/views/tracking_lists/show.html.erb
|
108
|
+
- app/views/tracking_lists/show.xls.builder
|
109
|
+
- config/locales/en.yml
|
110
|
+
- config/routes.rb
|
111
|
+
- generators/kete_trackable_items_migrations/USAGE
|
112
|
+
- generators/kete_trackable_items_migrations/kete_trackable_items_migrations_generator.rb
|
113
|
+
- generators/kete_trackable_items_migrations/templates/add_trackable_item_columns_to_topics.rb
|
114
|
+
- generators/kete_trackable_items_migrations/templates/create_on_loan_organizations.rb
|
115
|
+
- generators/kete_trackable_items_migrations/templates/create_repositories.rb
|
116
|
+
- generators/kete_trackable_items_migrations/templates/create_shelf_locations.rb
|
117
|
+
- generators/kete_trackable_items_migrations/templates/create_trackable_item_shelf_locations.rb
|
118
|
+
- generators/kete_trackable_items_migrations/templates/create_tracked_items.rb
|
119
|
+
- generators/kete_trackable_items_migrations/templates/create_tracking_lists.rb
|
120
|
+
- kete_trackable_items.gemspec
|
121
|
+
- lib/kete_trackable_items.rb
|
122
|
+
- lib/kete_trackable_items/controller_helpers.rb
|
123
|
+
- lib/kete_trackable_items/extensions/helpers/application_helper.rb
|
124
|
+
- lib/kete_trackable_items/extensions/models/basket.rb
|
125
|
+
- lib/kete_trackable_items/extensions/models/topic.rb
|
126
|
+
- lib/kete_trackable_items/matching_trackable_items_controller_helpers.rb
|
127
|
+
- lib/kete_trackable_items/trackable_item.rb
|
128
|
+
- lib/kete_trackable_items/version.rb
|
129
|
+
- lib/kete_trackable_items/workflow_utilities.rb
|
130
|
+
- rails/init.rb
|
131
|
+
has_rdoc: true
|
132
|
+
homepage: https://github.com/kete/kete_trackable_items
|
133
|
+
licenses: []
|
134
|
+
|
135
|
+
post_install_message:
|
136
|
+
rdoc_options: []
|
137
|
+
|
138
|
+
require_paths:
|
139
|
+
- lib
|
140
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
141
|
+
none: false
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
hash: 3
|
146
|
+
segments:
|
147
|
+
- 0
|
148
|
+
version: "0"
|
149
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
150
|
+
none: false
|
151
|
+
requirements:
|
152
|
+
- - ">="
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
hash: 3
|
155
|
+
segments:
|
156
|
+
- 0
|
157
|
+
version: "0"
|
158
|
+
requirements: []
|
159
|
+
|
160
|
+
rubyforge_project: kete_trackable_items
|
161
|
+
rubygems_version: 1.3.7
|
162
|
+
signing_key:
|
163
|
+
specification_version: 3
|
164
|
+
summary: A Rails engine gem that works in conjunction with kete_gets_trollied to track where an item (with a corresponding physical archive) is physically located.
|
165
|
+
test_files: []
|
166
|
+
|