listy 0.0.2 → 0.0.3

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/README.md CHANGED
@@ -27,15 +27,31 @@ Listy also includes some Javascript assets, so be sure to add the following line
27
27
 
28
28
  ## Usage
29
29
 
30
- There are a couple of helper method including:
30
+ There are a couple of helper methods including:
31
31
 
32
- ### list_of_links(collection, display_method_name, css_class, show_more_index=5, empty_message="")
32
+ listy_links(collection, display_method_name, css_class, show_more_index=5, empty_message="")
33
33
 
34
34
  This method creates a simple unordered list of the elements in the collection.
35
35
 
36
- ### multi_column_list_of_links(collection, display_method_name, css_class, number_of_columns)
36
+ multi_column_listy_links(collection, display_method_name, css_class, number_of_columns)
37
+
38
+ This does the same thing as listy_links but presents it in the number of columns you specify.
39
+
40
+ listy_tree(collection, spec, empty_message)
41
+
42
+ This method is for creating a nested tree of unordered lists for a collection with nested collections. This is suitable for Rails models that have has_many relationships.
43
+
44
+ Example let's say we have the following
45
+
46
+ * Country which has_many States
47
+ * State which has_many Cities
48
+
49
+ Typical usage would be:
50
+
51
+ listy_tree(Country.all, {:display_method_name => :name, :children => :states, :child => { :display_method_name => :name, :children => :cities, :child => {:display_method_name => :name, :children => nil, :child => nil}}}, "")
52
+
53
+ Be sure that the inner most child of the spec has :children => nil. This will stop the nesting.
37
54
 
38
- This does the same thing as list_of_links but presents it in the number of columns you specify.
39
55
 
40
56
  ## Contributing
41
57
 
@@ -1,20 +1,20 @@
1
+ /*********************** LISTY TREE LIST **********************************************/
1
2
  $(function(){
2
- $(".listy-tree .list-header").click(listHeaderClick);
3
- $(".listy-show-more-link").click(toggleMoreList);
3
+ $(".listy-tree .listy-tree-list-header").click(listyTreeListHeaderClick);
4
4
  });
5
5
 
6
- function listHeaderClick() {
6
+ function listyTreeListHeaderClick() {
7
7
  var list = $(this).siblings("ul");
8
- toggleList(list);
8
+ toggleListyTreeList(list);
9
9
  }
10
10
 
11
- function toggleList(list) {
12
- toggleList(200);
11
+ function toggleListyTreeList(list) {
12
+ toggleListyTreList(200);
13
13
  }
14
14
 
15
- function toggleList(list, duration) {
15
+ function toggleListyTreeList(list, duration) {
16
16
 
17
- var header = list.siblings(".list-header");
17
+ var header = list.siblings(".listy-tree-list-header");
18
18
  if(list.is(":visible")) {
19
19
  list.slideUp(duration);
20
20
  header.children(".icon").html("<i class='icon-angle-right'></i>");
@@ -36,6 +36,11 @@ function autoCollapseAllBut(headerName, tree) {
36
36
  });
37
37
  }
38
38
 
39
+ /*********************** LISTY SHOW-MORE LIST ******************************************/
40
+ $(function(){
41
+ $(".listy-show-more-link").click(toggleMoreList);
42
+ });
43
+
39
44
  function toggleMoreList() {
40
45
  toggleMoreList(200);
41
46
  return false;
data/lib/listy/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Listy
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -1,7 +1,30 @@
1
1
  module Listy
2
2
  module ViewHelpers
3
3
 
4
- def list_of_links(collection, display_method_name, css_class, show_more_index=5, empty_message="")
4
+ def listy_tree(collection, spec, empty_message)
5
+ if collection.present?
6
+ html = "<div class='listy-tree'>" + create_listy_tree(collection, spec, "", 0) + "</div>"
7
+ else
8
+ html = "There are no entries in this tree."
9
+ html = empty_message if !empty_message.nil?
10
+ end
11
+ raw html
12
+ end
13
+
14
+ def create_listy_tree(collection, spec, html, level)
15
+ html += "<ul class='listy-tree-level-#{level}'>"
16
+
17
+ collection.each do |element|
18
+ html += "<li>"
19
+ html += "<div class='listy-tree-list-header'>#{element.try(spec[:display_method_name])}</div>"
20
+ html = create_listy_tree(element.try(spec[:children]), spec[:child], html, level+1) if !spec[:children].nil?
21
+ html += "</li>"
22
+ end
23
+
24
+ html += "</ul>"
25
+ end
26
+
27
+ def listy_links(collection, display_method_name, css_class, show_more_index=5, empty_message="")
5
28
  if collection.present?
6
29
  html = "<ul class='" + css_class + "'>"
7
30
  show_more = false
@@ -25,7 +48,7 @@ module Listy
25
48
  raw html
26
49
  end
27
50
 
28
- def multi_column_list_of_links(collection, display_method_name, css_class, number_of_columns)
51
+ def multi_column_listy_links(collection, display_method_name, css_class, number_of_columns)
29
52
  html = ""
30
53
  if collection.present?
31
54
  number_of_entries_per_column = collection.size/number_of_columns
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: listy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-22 00:00:00.000000000 Z
12
+ date: 2013-07-23 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: ! '"A bunch of helpers to create fancy lists"'
15
15
  email: