Class: NavigatorRails::Store
- Inherits:
-
Object
- Object
- NavigatorRails::Store
- Includes:
- Singleton
- Defined in:
- lib/navigator_rails/store.rb
Class Method Summary collapse
- .add(item) ⇒ Object
- .children_of(resource) ⇒ Object
- .collect ⇒ Object
- .delete(item) ⇒ Object
- .get(path) ⇒ Object
- .items ⇒ Object
- .process_config_builders ⇒ Object
- .process_items ⇒ Object
Instance Method Summary collapse
- #add(item) ⇒ Object
- #children_of(resource) ⇒ Object
- #collect ⇒ Object
- #delete(item) ⇒ Object
- #get(path) ⇒ Object
- #get_controller(dir, file) ⇒ Object
- #get_items_of(controller) ⇒ Object
-
#initialize ⇒ Store
constructor
A new instance of Store.
- #items ⇒ Object
- #process_config_builders ⇒ Object
- #register_controller(controller) ⇒ Object
Constructor Details
#initialize ⇒ Store
Returns a new instance of Store.
16 17 18 |
# File 'lib/navigator_rails/store.rb', line 16 def initialize @items ||= [] end |
Class Method Details
.add(item) ⇒ Object
8 |
# File 'lib/navigator_rails/store.rb', line 8 def add item; Store.instance.add item; end |
.children_of(resource) ⇒ Object
12 |
# File 'lib/navigator_rails/store.rb', line 12 def children_of resource; Store.instance.children_of resource; end |
.collect ⇒ Object
11 |
# File 'lib/navigator_rails/store.rb', line 11 def collect; Store.instance.collect; end |
.delete(item) ⇒ Object
10 |
# File 'lib/navigator_rails/store.rb', line 10 def delete item; Store.instance.delete item; end |
.get(path) ⇒ Object
9 |
# File 'lib/navigator_rails/store.rb', line 9 def get path; Store.instance.get path; end |
.items ⇒ Object
7 |
# File 'lib/navigator_rails/store.rb', line 7 def items; Store.instance.items; end |
.process_config_builders ⇒ Object
14 |
# File 'lib/navigator_rails/store.rb', line 14 def process_config_builders; Store.instance.process_config_builders; end |
.process_items ⇒ Object
13 |
# File 'lib/navigator_rails/store.rb', line 13 def process_items; Store.instance.process_items; end |
Instance Method Details
#add(item) ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/navigator_rails/store.rb', line 22 def add item @items.each do |dbitem| return if dbitem.path == item.path end @items << item fill_gaps end |
#children_of(resource) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/navigator_rails/store.rb', line 37 def children_of resource unordered_items = @items.collect do |item| next unless item.path =~ /^#{resource.path}\// next unless item.level == resource.level+1 [item, item.order] end.compact orderable_items = unordered_items.collect do |item,order| [order,item] if order end.compact items = [] items += orderable_items.sort.to_h.values unless orderable_items.empty? items += unordered_items.collect do |item,order| item unless order end.compact end |
#collect ⇒ Object
86 87 88 89 90 91 92 93 94 |
# File 'lib/navigator_rails/store.rb', line 86 def collect config = NavigatorRails.config return unless config and config[:search_at] config[:search_at].each do |dir| Dir["#{dir}/**/*.rb"].each do |file| get_items_of get_controller(dir, file) end end end |
#delete(item) ⇒ Object
34 35 36 |
# File 'lib/navigator_rails/store.rb', line 34 def delete item @items.delete(item) end |
#get(path) ⇒ Object
29 30 31 32 33 |
# File 'lib/navigator_rails/store.rb', line 29 def get path @items.collect do |item| item if item.path == path end.compact.first end |
#get_controller(dir, file) ⇒ Object
67 68 69 70 71 72 73 |
# File 'lib/navigator_rails/store.rb', line 67 def get_controller dir, file begin return file.sub(/^#{dir}\//, '').sub(/\.rb$/,'').classify.constantize rescue NameError return end end |
#get_items_of(controller) ⇒ Object
77 78 79 80 81 82 83 84 85 |
# File 'lib/navigator_rails/store.rb', line 77 def get_items_of controller if defined?(controller.navigator_rails_items) register_controller controller return unless controller.navigator_rails_items controller.navigator_rails_items.collect do |item| item.save end end end |
#items ⇒ Object
19 20 21 |
# File 'lib/navigator_rails/store.rb', line 19 def items @items end |
#process_config_builders ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/navigator_rails/store.rb', line 52 def process_config_builders NavigatorRails.config.each do |param,value| next unless param =~ /^build_/ case param when :build_devise_at parent_path = Item.normalize_path value Item.new(path: "#{parent_path}/Profile", type: :link, constraint: 'user_signed_in?', content: "link_to('Profile', edit_user_registration_url)").save Item.new(path: "#{parent_path}/SignOut", type: :link, constraint: 'user_signed_in?', content: "link_to('Sign Out', destroy_user_session_url, method: :delete)").save Item.new(path: "#{parent_path}/SignIn", type: :link, constraint: 'not user_signed_in?', content: "link_to('Sign In', new_user_session_url)").save Item.new(path: "#{parent_path}/SignUp", type: :link, constraint: 'not user_signed_in?', content: "link_to('Sign Up', new_user_registration_url)").save when :build_brand Item.new(type: :brand, type: :brand, path: value[:path], content: "link_to(raw('#{value[:content]}'),root_url, class: 'navbar-brand')").save end end end |
#register_controller(controller) ⇒ Object
74 75 76 |
# File 'lib/navigator_rails/store.rb', line 74 def register_controller controller NavigatorRails.config[:controllers] << controller end |