bone_tree 0.5.6 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. data/.gitignore +26 -3
  2. data/Gemfile +5 -12
  3. data/Rakefile +7 -9
  4. data/bone_tree.gemspec +30 -14
  5. data/config.rb +8 -0
  6. data/lib/assets/javascripts/bone_tree.js +277 -981
  7. data/lib/assets/stylesheets/bone_tree.css +108 -0
  8. data/lib/bone_tree/rails.rb +5 -0
  9. data/lib/bone_tree/sprockets.rb +3 -0
  10. data/lib/{version.rb → bone_tree/version.rb} +1 -1
  11. data/lib/bone_tree.rb +11 -6
  12. data/source/index.html.haml +10 -382
  13. data/source/javascripts/{_backbone.js → backbone.js} +282 -142
  14. data/source/javascripts/bone_tree/models/directory.js.coffee +109 -0
  15. data/source/javascripts/bone_tree/models/file.js.coffee +12 -0
  16. data/source/javascripts/bone_tree/models/node.js.coffee +24 -0
  17. data/source/javascripts/bone_tree/models/settings.js.coffee +5 -0
  18. data/source/javascripts/bone_tree/{_namespace.js.coffee → namespace.js.coffee} +1 -1
  19. data/source/javascripts/bone_tree/views/directory.js.coffee +56 -0
  20. data/source/javascripts/bone_tree/views/file.js.coffee +25 -0
  21. data/source/javascripts/bone_tree/views/tree.js.coffee +87 -0
  22. data/source/javascripts/bone_tree.js.coffee +2 -1
  23. data/source/stylesheets/bone_tree.css.sass +0 -38
  24. data/spec/javascripts/directory_spec.coffee +26 -0
  25. data/spec/javascripts/helpers/spec_helper.coffee +3 -4
  26. data/spec/javascripts/sorting_spec.coffee +12 -0
  27. data/spec/javascripts/support/jasmine.yml +6 -4
  28. metadata +143 -36
  29. data/Gemfile.lock +0 -190
  30. data/docs/index.html +0 -222
  31. data/docs/resources/base.css +0 -70
  32. data/docs/resources/index.css +0 -20
  33. data/docs/resources/module.css +0 -24
  34. data/docs/source/javascripts/bone_tree/_namespace.js.html +0 -45
  35. data/docs/source/javascripts/bone_tree/models/_directory.js.html +0 -126
  36. data/docs/source/javascripts/bone_tree/models/_file.js.html +0 -112
  37. data/docs/source/javascripts/bone_tree/models/_nodes.js.html +0 -174
  38. data/docs/source/javascripts/bone_tree/models/_settings.js.html +0 -75
  39. data/docs/source/javascripts/bone_tree/views/_directory.js.html +0 -94
  40. data/docs/source/javascripts/bone_tree/views/_file.js.html +0 -82
  41. data/docs/source/javascripts/bone_tree/views/_menu.js.html +0 -110
  42. data/docs/source/javascripts/bone_tree/views/_tree.js.html +0 -432
  43. data/source/javascripts/_jquery.min.js +0 -5
  44. data/source/javascripts/_underscore.js +0 -999
  45. data/source/javascripts/bone_tree/models/_directory.js.coffee +0 -63
  46. data/source/javascripts/bone_tree/models/_file.js.coffee +0 -55
  47. data/source/javascripts/bone_tree/models/_nodes.js.coffee +0 -117
  48. data/source/javascripts/bone_tree/models/_settings.js.coffee +0 -25
  49. data/source/javascripts/bone_tree/views/_directory.js.coffee +0 -73
  50. data/source/javascripts/bone_tree/views/_file.js.coffee +0 -51
  51. data/source/javascripts/bone_tree/views/_menu.js.coffee +0 -97
  52. data/source/javascripts/bone_tree/views/_tree.js.coffee +0 -498
  53. data/spec/javascripts/directory_view_spec.coffee +0 -91
  54. data/spec/javascripts/file_view_spec.coffee +0 -70
  55. data/spec/javascripts/menu_view_spec.coffee +0 -42
  56. data/spec/javascripts/nodes_spec.coffee +0 -37
  57. data/spec/javascripts/tree_view_spec.coffee +0 -39
@@ -0,0 +1,109 @@
1
+ #= require ./node
2
+
3
+ BoneTree.namespace "BoneTree.Models", (Models) ->
4
+ class Models.Directory extends Models.Node
5
+ add: (filePath, fileData={}) =>
6
+ {Directory, File} = Models
7
+
8
+ [dirs..., fileName] = filePath.split('/')
9
+
10
+ currentDirectory = @
11
+
12
+ dirs.each (directoryName) ->
13
+ return if directoryName is ''
14
+
15
+ directory = currentDirectory.directories().select (dir) ->
16
+ dir.name() is directoryName
17
+ .first()
18
+
19
+ unless directory
20
+ directory = new Directory
21
+ path: filePath.substring(0, filePath.indexOf(directoryName) + directoryName.length)
22
+
23
+ currentDirectory.collection.add(directory)
24
+
25
+ currentDirectory = directory
26
+
27
+ if file = currentDirectory.getFile(fileName)
28
+ file.set(fileData)
29
+ else
30
+ file = new File(_.extend(fileData, {path: filePath}))
31
+
32
+ currentDirectory.collection.add file
33
+
34
+ return file
35
+
36
+ remove: (path) =>
37
+ if file = @getFile(path)
38
+ file.destroy()
39
+ else if directory = @getDirectory(path)
40
+ directory.destroy()
41
+
42
+ directories: =>
43
+ @collection.filter (node) ->
44
+ node.isDirectory()
45
+
46
+ getDirectory: (directoryPath) =>
47
+ [first, rest...] = directoryPath.split('/')
48
+
49
+ match = @collection.find (node) ->
50
+ node.name() is first
51
+
52
+ if match?.isDirectory()
53
+ if rest.length
54
+ return match.getDirectory(rest.join('/'))
55
+ else
56
+ return match
57
+
58
+ return undefined
59
+
60
+ files: =>
61
+ @collection.filter (node) ->
62
+ node.isFile()
63
+
64
+ getFile: (filePath) =>
65
+ [first, rest...] = filePath.split '/'
66
+
67
+ match = @collection.find (node) ->
68
+ node.name() is first
69
+
70
+ if match?.isDirectory()
71
+ if rest.length
72
+ return match.getFile(rest.join('/'))
73
+ else
74
+ return undefined
75
+ else
76
+ return match
77
+
78
+ toArray: =>
79
+ results = [@]
80
+
81
+ @collection.each (node) =>
82
+ results = results.concat node.toArray()
83
+
84
+ results
85
+
86
+ toAscii: (indentation='') =>
87
+ nodeAscii = ["#{indentation}+#{@name()}"]
88
+
89
+ @collection.each (node) ->
90
+ nodeAscii.push node.toAscii(indentation + ' ')
91
+
92
+ nodeAscii.join('\n')
93
+
94
+ updateChildren: (previousPath, newPath) =>
95
+ @directories().each (directory) =>
96
+ directory.updateChildren(previousPath, newPath)
97
+
98
+ directoryPath = @get('path')
99
+
100
+ if directoryPath.indexOf(newPath) is -1
101
+ @set
102
+ path: @get('path').replace(previousPath, newPath)
103
+
104
+ @files().each (file) =>
105
+ filePath = file.get('path')
106
+
107
+ if filePath.indexOf(newPath) is -1
108
+ file.set
109
+ path: file.get('path').replace(previousPath, newPath)
@@ -0,0 +1,12 @@
1
+ #= require ./node
2
+
3
+ BoneTree.namespace "BoneTree.Models", (Models) ->
4
+ class Models.File extends Models.Node
5
+ extension: =>
6
+ @name().extension()
7
+
8
+ toArray: =>
9
+ [@]
10
+
11
+ toAscii: (indentation='') =>
12
+ "#{indentation}-#{@name()}"
@@ -0,0 +1,24 @@
1
+ BoneTree.namespace "BoneTree.Models", (Models) ->
2
+ class Models.Node extends Backbone.Model
3
+ initialize: ->
4
+ @collection = new Models.Nodes
5
+
6
+ isDirectory: =>
7
+ @ instanceof Models.Directory
8
+
9
+ isFile: =>
10
+ @ instanceof Models.File
11
+
12
+ name: =>
13
+ @get('path').split('/').last()
14
+
15
+ class Models.Nodes extends Backbone.Collection
16
+ comparator: (node) ->
17
+ if node.isDirectory()
18
+ sortPriority = 0
19
+ else
20
+ sortPriority = 1
21
+
22
+ return sortPriority + node.name()
23
+
24
+ model: Models.Node
@@ -0,0 +1,5 @@
1
+ BoneTree.namespace "BoneTree.Models", (Models) ->
2
+ class Models.Settings extends Backbone.Model
3
+ defaults:
4
+ confirmDeletes: false
5
+ showExtensions: false
@@ -1,4 +1,4 @@
1
- window.BoneTree = {}
1
+ window.BoneTree ||= {}
2
2
 
3
3
  BoneTree.namespace = (target, name, block) ->
4
4
  [target, name, block] = [(if typeof exports isnt 'undefined' then exports else window), arguments...] if arguments.length < 3
@@ -0,0 +1,56 @@
1
+ BoneTree.namespace "BoneTree.Views", (Views) ->
2
+ class Views.Directory extends Backbone.View
3
+ className: 'directory'
4
+ tagName: 'ul'
5
+
6
+ initialize: (options) ->
7
+ @tree = options.tree
8
+
9
+ @$el.attr 'data-cid', @model.cid
10
+
11
+ @open = false
12
+
13
+ @model.bind 'change:path', (model) =>
14
+ @tree.render().trigger 'rename', model, name
15
+
16
+ previousPath = model.previous('path')
17
+
18
+ if (path = model.get('path')).indexOf('/') is 0
19
+ newPath = path.replace('/', '')
20
+ else
21
+ newPath = path
22
+
23
+ model.updateChildren(previousPath, newPath)
24
+
25
+ @model.collection.bind 'add', @render
26
+
27
+ @model.collection.bind 'remove', (model, collection) =>
28
+ @tree.trigger 'remove', model
29
+ @render()
30
+
31
+ @displayChildren(@open)
32
+
33
+ appendView: (node) =>
34
+ view = @tree.findOrCreateView(node)
35
+
36
+ @$el.append view.render().$el
37
+
38
+ render: =>
39
+ @$el.text @model.name()
40
+
41
+ @model.collection.each @appendView
42
+
43
+ @displayChildren(@$el.hasClass('open'))
44
+
45
+ return @
46
+
47
+ displayChildren: (open) =>
48
+ fileDirChildren = @$el.children('.directory, .file')
49
+
50
+ @$el.toggleClass('open', open)
51
+ fileDirChildren.toggle(open)
52
+
53
+ toggleOpen: =>
54
+ @open = not @open
55
+
56
+ @displayChildren(@open)
@@ -0,0 +1,25 @@
1
+ BoneTree.namespace "BoneTree.Views", (Views) ->
2
+ class Views.File extends Backbone.View
3
+ tagName: 'li'
4
+
5
+ initialize: (options) ->
6
+ @settings = options.settings
7
+ @tree = options.tree
8
+
9
+ @model.bind 'change:path', (model) =>
10
+ @render()
11
+
12
+ render: =>
13
+ name = @model.name()
14
+
15
+ extension = name.extension()
16
+
17
+ @$el.attr('data-cid', @model.cid)
18
+ @$el.attr('class', "file #{extension}")
19
+
20
+ if @settings.get('showExtensions')
21
+ @$el.text name
22
+ else
23
+ @$el.text name.withoutExtension()
24
+
25
+ return @
@@ -0,0 +1,87 @@
1
+ BoneTree.namespace "BoneTree.Views", (Views) ->
2
+ {Models} = BoneTree
3
+
4
+ class Views.Tree extends Backbone.View
5
+ className: 'tree'
6
+
7
+ events:
8
+ 'mousedown .directory': '_openDirectory'
9
+ 'mousedown .file': '_openFile'
10
+
11
+ initialize: ->
12
+ @viewCache = {}
13
+
14
+ @settings = new Models.Settings(@options)
15
+
16
+ @root = new Models.Directory {path: '/'}
17
+
18
+ @root.collection.bind 'add', @render
19
+
20
+ @root.collection.bind 'remove', (model, collection) =>
21
+ @$("[data-cid='#{model.cid}']").remove()
22
+
23
+ @render()
24
+
25
+ @trigger 'remove', model
26
+
27
+ add: (filePath, fileData) =>
28
+ if Object.isArray(filePath)
29
+ @add(file.path, file) for file in filePath
30
+ else
31
+ @root.add(filePath, fileData)
32
+
33
+ remove: (path) =>
34
+ @root.remove(path)
35
+
36
+ findOrCreateView: (node) =>
37
+ if node.isDirectory()
38
+ type = 'Directory'
39
+ else
40
+ type = 'File'
41
+
42
+ unless view = @viewCache[node.cid]
43
+ view = @viewCache[node.cid] = new Views[type]
44
+ model: node
45
+ settings: @settings
46
+ tree: @
47
+
48
+ return view
49
+
50
+ toArray: =>
51
+ @root.toArray()
52
+
53
+ getDirectory: (directoryPath) =>
54
+ @root.getDirectory(directoryPath)
55
+
56
+ getFile: (filePath) =>
57
+ @root.getFile(filePath)
58
+
59
+ toAscii: =>
60
+ '\n' + @root.toAscii()
61
+
62
+ getViewFromClick: (e) =>
63
+ e.stopPropagation()
64
+
65
+ cid = $(e.currentTarget).data('cid')
66
+
67
+ return @viewCache[cid]
68
+
69
+ _openDirectory: (e) =>
70
+ e.stopPropagation()
71
+
72
+ view = @getViewFromClick(e)
73
+
74
+ view.toggleOpen()
75
+
76
+ _openFile: (e) =>
77
+ view = @getViewFromClick(e)
78
+
79
+ @trigger 'openFile', e, view.model
80
+
81
+ render: =>
82
+ @root.collection.each (node) =>
83
+ view = @findOrCreateView(node)
84
+
85
+ @$el.append view.render().$el
86
+
87
+ return @
@@ -1 +1,2 @@
1
- #= require ./bone_tree/views/_tree
1
+ #= require ./bone_tree/namespace
2
+ #= require_tree ./bone_tree
@@ -3,44 +3,6 @@
3
3
 
4
4
  $node_height: 20px
5
5
 
6
- .filetree_context_menu
7
- @include global-reset
8
-
9
- +border-radius(3px)
10
- +box-shadow(rgba(0, 0, 0, 0.4) 0 2px 10px)
11
-
12
- background-color: #fff
13
- border: 1px solid rgba(0, 0, 0, 0.3)
14
- cursor: pointer
15
- display: none
16
- font-weight: 500
17
- position: absolute
18
- width: 100px
19
-
20
- hr
21
- border: 0
22
- border-top: 1px solid rgba(0, 0, 0, 0.15)
23
- height: 1px
24
- margin: 0
25
-
26
- li
27
- margin: 0.25em 0
28
- padding: 0 0.5em
29
-
30
- &:hover
31
- background-color: #1084CE
32
- color: white
33
-
34
- .rename
35
- background: #fff url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAACjSURBVDjL7ZNBCsIwEEVz1mwTo1YjiHdIqyWgFBGPonWTC8T2BjlE4JsUwU0ILe7ExUtgPvNmNkMAkG8gPyAwxiAHYwxKKUgpk/kg8N5n4Zwn6865j4CVLXj1AA//rArsW4hAzCil4wTFsUdx6rBuLLaXJ+aH+zTBqukDFpuzxe5qsagnCIbV32vHybF5Wd/GC3JkBfHJEZu11hBCJHPyvwXyAt6tONifnq6xAAAAAElFTkSuQmCC') no-repeat
36
- background-position: 4px 3px
37
- padding-left: 24px
38
-
39
- .delete
40
- background: #fff url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJdSURBVDjLpZP7S1NhGMf9W7YfogSJboSEUVCY8zJ31trcps6zTI9bLGJpjp1hmkGNxVz4Q6ildtXKXzJNbJRaRmrXoeWx8tJOTWptnrNryre5YCYuI3rh+8vL+/m8PA/PkwIg5X+y5mJWrxfOUBXm91QZM6UluUmthntHqplxUml2lciF6wrmdHriI0Wx3xw2hAediLwZRWRkCPzdDswaSvGqkGCfq8VEUsEyPF1O8Qu3O7A09RbRvjuIttsRbT6HHzebsDjcB4/JgFFlNv9MnkmsEszodIIY7Oaut2OJcSF68Qx8dgv8tmqEL1gQaaARtp5A+N4NzB0lMXxon/uxbI8gIYjB9HytGYuusfiPIQcN71kjgnW6VeFOkgh3XcHLvAwMSDPohOADdYQJdF1FtLMZPmslvhZJk2ahkgRvq4HHUoWHRDqTEDDl2mDkfheiDgt8pw340/EocuClCuFvboQzb0cwIZgki4KhzlaE6w0InipbVzBfqoK/qRH94i0rgokSFeO11iBkp8EdV8cfJo0yD75aE2ZNRvSJ0lZKcBXLaUYmQrCzDT6tDN5SyRqYlWeDLZAg0H4JQ+Jt6M3atNLE10VSwQsN4Z6r0CBwqzXesHmV+BeoyAUri8EyMfi2FowXS5dhd7doo2DVII0V5BAjigP89GEVAtda8b2ehodU4rNaAW+dGfzlFkyo89GTlcrHYCLpKD+V7yeeHNzLjkp24Uu1Ed6G8/F8qjqGRzlbl2H2dzjpMg1KdwsHxOlmJ7GTeZC/nesXbeZ6c9OYnuxUc3fmBuFft/Ff8xMd0s65SXIb/gAAAABJRU5ErkJggg==') no-repeat
41
- background-position: 4px 3px
42
- padding-left: 24px
43
-
44
6
  .tree
45
7
  @include global-reset
46
8
 
@@ -0,0 +1,26 @@
1
+ describe 'BoneTree.Models.Directory', ->
2
+ it 'should be able to visualize the tree structure with Ascii characters', ->
3
+ tree = new BoneTree.Views.Tree
4
+
5
+ tree.add('src/main.coffee', { description: 'Entry point' })
6
+ tree.add('src/player.coffee', { description: 'The hero' })
7
+ tree.add('src/enemy.coffee', { description: 'The baddy' })
8
+
9
+ expect(tree.toAscii()).toEqual """
10
+
11
+ +
12
+ +src
13
+ -enemy.coffee
14
+ -main.coffee
15
+ -player.coffee
16
+ """
17
+
18
+ it 'should be able to return all files it contains', ->
19
+ tree = new BoneTree.Views.Tree
20
+
21
+ tree.add('src/main.coffee', { description: 'Entry point' })
22
+ tree.add('src/player.coffee', { description: 'The hero' })
23
+ tree.add('src/enemy.coffee', { description: 'The baddy' })
24
+
25
+ # extra +1 in the length from the root directory
26
+ expect(tree.toArray().length).toEqual(5)
@@ -1,7 +1,6 @@
1
- #= require _jquery.min
2
- #= require _underscore
3
- #= require _backbone
1
+ #= require backbone
4
2
  #= require sinon
5
3
  #= require jasmine-jquery
6
4
  #= require jasmine-sinon
7
-
5
+ #= require cornerstone
6
+ #= require bone_tree
@@ -0,0 +1,12 @@
1
+ describe "sorting behavior", ->
2
+ it 'should sort collections correctly according to the comparator', ->
3
+ {Models} = BoneTree
4
+
5
+ nodes = new Models.Nodes
6
+
7
+ nodes.add(new Models.Node {path: 'aaa'})
8
+ nodes.add(new Models.Node {path: 'zzz'})
9
+
10
+ expect(nodes.sort().map (node) ->
11
+ node.name()
12
+ ).toEqual(['aaa', 'zzz'])
@@ -1,8 +1,10 @@
1
+ src_dir: source/javascripts
1
2
  src_files:
2
3
  - "**/*"
3
- helpers:
4
- - helpers/**/*
4
+ asset_paths:
5
+ - vendor/javascripts
6
+ spec_dir: spec/javascripts
5
7
  spec_files:
6
8
  - "**/*_spec.*"
7
- src_dir: source/javascripts
8
- spec_dir: spec/javascripts
9
+ helpers:
10
+ - helpers/**/*
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bone_tree
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.6
4
+ version: 0.9.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,8 +9,129 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-30 00:00:00.000000000 Z
13
- dependencies: []
12
+ date: 2012-06-05 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: jquery-source
16
+ requirement: &70171854531820 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70171854531820
25
+ - !ruby/object:Gem::Dependency
26
+ name: cornerstone-source
27
+ requirement: &70171854531340 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70171854531340
36
+ - !ruby/object:Gem::Dependency
37
+ name: underscore-source
38
+ requirement: &70171854530920 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *70171854530920
47
+ - !ruby/object:Gem::Dependency
48
+ name: jasmine-spec-extras
49
+ requirement: &70171854530300 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *70171854530300
58
+ - !ruby/object:Gem::Dependency
59
+ name: rake
60
+ requirement: &70171854529880 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *70171854529880
69
+ - !ruby/object:Gem::Dependency
70
+ name: rb-fsevent
71
+ requirement: &70171854529460 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *70171854529460
80
+ - !ruby/object:Gem::Dependency
81
+ name: therubyracer
82
+ requirement: &70171854529020 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *70171854529020
91
+ - !ruby/object:Gem::Dependency
92
+ name: rack-codehighlighter
93
+ requirement: &70171854528600 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: *70171854528600
102
+ - !ruby/object:Gem::Dependency
103
+ name: haml-coderay
104
+ requirement: &70171854528180 !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: *70171854528180
113
+ - !ruby/object:Gem::Dependency
114
+ name: coffee-filter
115
+ requirement: &70171854527700 !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ type: :development
122
+ prerelease: false
123
+ version_requirements: *70171854527700
124
+ - !ruby/object:Gem::Dependency
125
+ name: jasmine
126
+ requirement: &70171854527260 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: *70171854527260
14
135
  description: This is a filetree, written with Backbone. It is meant to be tree that
15
136
  will update your file nodes live and sort them when the node state is changed.
16
137
  email:
@@ -21,57 +142,40 @@ extra_rdoc_files: []
21
142
  files:
22
143
  - .gitignore
23
144
  - Gemfile
24
- - Gemfile.lock
25
145
  - Guardfile
26
146
  - README
27
147
  - Rakefile
28
148
  - bone_tree.gemspec
29
149
  - config.rb
30
150
  - config.ru
31
- - docs/index.html
32
- - docs/resources/base.css
33
- - docs/resources/index.css
34
- - docs/resources/module.css
35
- - docs/source/javascripts/bone_tree/_namespace.js.html
36
- - docs/source/javascripts/bone_tree/models/_directory.js.html
37
- - docs/source/javascripts/bone_tree/models/_file.js.html
38
- - docs/source/javascripts/bone_tree/models/_nodes.js.html
39
- - docs/source/javascripts/bone_tree/models/_settings.js.html
40
- - docs/source/javascripts/bone_tree/views/_directory.js.html
41
- - docs/source/javascripts/bone_tree/views/_file.js.html
42
- - docs/source/javascripts/bone_tree/views/_menu.js.html
43
- - docs/source/javascripts/bone_tree/views/_tree.js.html
44
151
  - lib/assets/javascripts/bone_tree.js
152
+ - lib/assets/stylesheets/bone_tree.css
45
153
  - lib/bone_tree.rb
46
- - lib/version.rb
154
+ - lib/bone_tree/rails.rb
155
+ - lib/bone_tree/sprockets.rb
156
+ - lib/bone_tree/version.rb
47
157
  - source/images/bonetree.png
48
158
  - source/images/crushed_bone.png
49
159
  - source/index.html.haml
50
- - source/javascripts/_backbone.js
51
- - source/javascripts/_jquery.min.js
52
- - source/javascripts/_underscore.js
160
+ - source/javascripts/backbone.js
53
161
  - source/javascripts/bone_tree.js.coffee
54
- - source/javascripts/bone_tree/_namespace.js.coffee
55
- - source/javascripts/bone_tree/models/_directory.js.coffee
56
- - source/javascripts/bone_tree/models/_file.js.coffee
57
- - source/javascripts/bone_tree/models/_nodes.js.coffee
58
- - source/javascripts/bone_tree/models/_settings.js.coffee
59
- - source/javascripts/bone_tree/views/_directory.js.coffee
60
- - source/javascripts/bone_tree/views/_file.js.coffee
61
- - source/javascripts/bone_tree/views/_menu.js.coffee
62
- - source/javascripts/bone_tree/views/_tree.js.coffee
162
+ - source/javascripts/bone_tree/models/directory.js.coffee
163
+ - source/javascripts/bone_tree/models/file.js.coffee
164
+ - source/javascripts/bone_tree/models/node.js.coffee
165
+ - source/javascripts/bone_tree/models/settings.js.coffee
166
+ - source/javascripts/bone_tree/namespace.js.coffee
167
+ - source/javascripts/bone_tree/views/directory.js.coffee
168
+ - source/javascripts/bone_tree/views/file.js.coffee
169
+ - source/javascripts/bone_tree/views/tree.js.coffee
63
170
  - source/layout.haml
64
171
  - source/stylesheets/bone_tree.css.sass
65
172
  - source/stylesheets/bone_tree_repo.css.sass
66
- - spec/javascripts/directory_view_spec.coffee
67
- - spec/javascripts/file_view_spec.coffee
173
+ - spec/javascripts/directory_spec.coffee
68
174
  - spec/javascripts/helpers/spec_helper.coffee
69
- - spec/javascripts/menu_view_spec.coffee
70
- - spec/javascripts/nodes_spec.coffee
175
+ - spec/javascripts/sorting_spec.coffee
71
176
  - spec/javascripts/support/jasmine.yml
72
177
  - spec/javascripts/support/jasmine_config.rb
73
178
  - spec/javascripts/support/jasmine_runner.rb
74
- - spec/javascripts/tree_view_spec.coffee
75
179
  homepage: http://mdiebolt.github.com/bone_tree
76
180
  licenses: []
77
181
  post_install_message:
@@ -86,13 +190,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
86
190
  version: '0'
87
191
  segments:
88
192
  - 0
89
- hash: -81853669433785675
193
+ hash: -769684106227080348
90
194
  required_rubygems_version: !ruby/object:Gem::Requirement
91
195
  none: false
92
196
  requirements:
93
197
  - - ! '>='
94
198
  - !ruby/object:Gem::Version
95
199
  version: '0'
200
+ segments:
201
+ - 0
202
+ hash: -769684106227080348
96
203
  requirements: []
97
204
  rubyforge_project: bone_tree
98
205
  rubygems_version: 1.8.10