mmmenu 0.5.1 → 0.5.2

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2ea9a1834434ec0ec0689a7f12805ca445159c43
4
+ data.tar.gz: b70e0fa2bdc3be31606409ebc9750e4d1fd2f5dd
5
+ SHA512:
6
+ metadata.gz: acaa3fb858b87453b0c4ada041a2c9fa249536eab1a761658f3b990d8e5c500f0c571c28f493f08b1311ddd50ccb270d88be8b2b0a85f57c768b59b65abe3703
7
+ data.tar.gz: 1d1d360e8a9e7056f8c0e889f0e737fe43f0485b038244fbb2c88679e802d9f011a51ca7d01045eb88b1f39ebe0af59ebd0b08a829858ea1363de7259d29075d
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/Gemfile CHANGED
@@ -3,6 +3,6 @@ source "http://rubygems.org"
3
3
  group :development do
4
4
  gem "bundler"
5
5
  gem "rspec"
6
- gem "jeweler", "~> 1.6.4"
6
+ gem "jeweler"
7
7
  #gem "rcov", ">= 0"
8
8
  end
@@ -1,26 +1,69 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- diff-lcs (1.1.3)
5
- git (1.2.5)
6
- jeweler (1.6.4)
7
- bundler (~> 1.0)
4
+ addressable (2.3.6)
5
+ builder (3.2.2)
6
+ descendants_tracker (0.0.4)
7
+ thread_safe (~> 0.3, >= 0.3.1)
8
+ diff-lcs (1.2.5)
9
+ faraday (0.9.0)
10
+ multipart-post (>= 1.2, < 3)
11
+ git (1.2.7)
12
+ github_api (0.11.3)
13
+ addressable (~> 2.3)
14
+ descendants_tracker (~> 0.0.1)
15
+ faraday (~> 0.8, < 0.10)
16
+ hashie (>= 1.2)
17
+ multi_json (>= 1.7.5, < 2.0)
18
+ nokogiri (~> 1.6.0)
19
+ oauth2
20
+ hashie (3.1.0)
21
+ highline (1.6.21)
22
+ jeweler (2.0.1)
23
+ builder
24
+ bundler (>= 1.0)
8
25
  git (>= 1.2.5)
26
+ github_api
27
+ highline (>= 1.6.15)
28
+ nokogiri (>= 1.5.10)
9
29
  rake
10
- rake (0.9.2.2)
11
- rspec (2.8.0)
12
- rspec-core (~> 2.8.0)
13
- rspec-expectations (~> 2.8.0)
14
- rspec-mocks (~> 2.8.0)
15
- rspec-core (2.8.0)
16
- rspec-expectations (2.8.0)
17
- diff-lcs (~> 1.1.2)
18
- rspec-mocks (2.8.0)
30
+ rdoc
31
+ json (1.8.1)
32
+ jwt (1.0.0)
33
+ mini_portile (0.6.0)
34
+ multi_json (1.10.1)
35
+ multi_xml (0.5.5)
36
+ multipart-post (2.0.0)
37
+ nokogiri (1.6.2.1)
38
+ mini_portile (= 0.6.0)
39
+ oauth2 (0.9.4)
40
+ faraday (>= 0.8, < 0.10)
41
+ jwt (~> 1.0)
42
+ multi_json (~> 1.3)
43
+ multi_xml (~> 0.5)
44
+ rack (~> 1.2)
45
+ rack (1.5.2)
46
+ rake (10.3.2)
47
+ rdoc (4.1.1)
48
+ json (~> 1.4)
49
+ rspec (3.0.0)
50
+ rspec-core (~> 3.0.0)
51
+ rspec-expectations (~> 3.0.0)
52
+ rspec-mocks (~> 3.0.0)
53
+ rspec-core (3.0.2)
54
+ rspec-support (~> 3.0.0)
55
+ rspec-expectations (3.0.2)
56
+ diff-lcs (>= 1.2.0, < 2.0)
57
+ rspec-support (~> 3.0.0)
58
+ rspec-mocks (3.0.2)
59
+ rspec-support (~> 3.0.0)
60
+ rspec-support (3.0.2)
61
+ thread_safe (0.3.4)
19
62
 
20
63
  PLATFORMS
21
64
  ruby
22
65
 
23
66
  DEPENDENCIES
24
67
  bundler
25
- jeweler (~> 1.6.4)
68
+ jeweler
26
69
  rspec
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.1
1
+ 0.5.2
@@ -41,7 +41,9 @@ class Mmmenu
41
41
  end
42
42
 
43
43
  def build
44
- build_level[:output]
44
+ result = build_level[:output]
45
+ @current_item = @deepest_current_item
46
+ result
45
47
  end
46
48
 
47
49
  private
@@ -76,6 +78,9 @@ class Mmmenu
76
78
  ) && !has_current_item
77
79
 
78
80
  then
81
+ unless item[:children]
82
+ @deepest_current_item = item
83
+ end
79
84
  has_current_item = true
80
85
  item_output = item_markup[:current][:block].call(item[:href], item[:title], item_markup[:current][:options].merge(item[:html_options]))
81
86
  else
@@ -2,20 +2,23 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
+ # stub: mmmenu 0.5.2 ruby lib
5
6
 
6
7
  Gem::Specification.new do |s|
7
8
  s.name = "mmmenu"
8
- s.version = "0.5.1"
9
+ s.version = "0.5.2"
9
10
 
10
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib"]
11
13
  s.authors = ["Roman Snitko"]
12
- s.date = "2013-04-04"
14
+ s.date = "2014-07-07"
13
15
  s.description = "Defines multilevel menu structures, uses custom html templates to render them."
14
16
  s.email = "roman.snitko@gmail.com"
15
17
  s.extra_rdoc_files = [
16
18
  "README.markdown"
17
19
  ]
18
20
  s.files = [
21
+ ".rspec",
19
22
  "Gemfile",
20
23
  "Gemfile.lock",
21
24
  "README.markdown",
@@ -38,26 +41,25 @@ Gem::Specification.new do |s|
38
41
  ]
39
42
  s.homepage = "http://github.com/snitko/mmmenu"
40
43
  s.licenses = ["MIT"]
41
- s.require_paths = ["lib"]
42
- s.rubygems_version = "1.8.24"
44
+ s.rubygems_version = "2.2.2"
43
45
  s.summary = "Flexible menu generator for Rails."
44
46
 
45
47
  if s.respond_to? :specification_version then
46
- s.specification_version = 3
48
+ s.specification_version = 4
47
49
 
48
50
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
49
51
  s.add_development_dependency(%q<bundler>, [">= 0"])
50
52
  s.add_development_dependency(%q<rspec>, [">= 0"])
51
- s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
53
+ s.add_development_dependency(%q<jeweler>, [">= 0"])
52
54
  else
53
55
  s.add_dependency(%q<bundler>, [">= 0"])
54
56
  s.add_dependency(%q<rspec>, [">= 0"])
55
- s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
57
+ s.add_dependency(%q<jeweler>, [">= 0"])
56
58
  end
57
59
  else
58
60
  s.add_dependency(%q<bundler>, [">= 0"])
59
61
  s.add_dependency(%q<rspec>, [">= 0"])
60
- s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
62
+ s.add_dependency(%q<jeweler>, [">= 0"])
61
63
  end
62
64
  end
63
65
 
@@ -10,7 +10,7 @@ describe Mmmenu::Level do
10
10
  end
11
11
  end
12
12
 
13
- @menu_level.to_a.should == [
13
+ expect(@menu_level.to_a).to eq [
14
14
  {:title => "Title1", :href => "/path1"},
15
15
  {:title => "Title2", :href => "/path2", :children => [
16
16
  { :title => "SubTitle", :href => "/path2/subpath" }
@@ -17,10 +17,10 @@ describe Mmmenu do
17
17
  end
18
18
 
19
19
  before(:each) do
20
- @request = mock('request')
21
- @request.stub!(:path).and_return('/items1/new')
22
- @request.stub!(:method).and_return('get')
23
- @request.stub!(:params).and_return({})
20
+ @request = double('request')
21
+ allow(@request).to receive(:path).and_return('/items1/new')
22
+ allow(@request).to receive(:method).and_return('get')
23
+ allow(@request).to receive(:params).and_return({})
24
24
  @menu = Mmmenu.new(:items => @items, :request => @request )
25
25
  end
26
26
 
@@ -33,7 +33,7 @@ describe Mmmenu do
33
33
  " #{text}: #{link} current\n"
34
34
  end
35
35
  @menu.level_markup(1) { |menu| menu }
36
- @menu.build.should == <<END
36
+ expect(@menu.build).to eq <<END
37
37
  Item1: current
38
38
  Create: /items1/new current
39
39
  Index: /items1/
@@ -43,6 +43,7 @@ Item3: /items3
43
43
  Item4: /items4
44
44
  END
45
45
 
46
+
46
47
  end
47
48
 
48
49
  it "chooses the current item depending on request type" do
@@ -50,13 +51,13 @@ END
50
51
  { :title => 'item1', :href => '/item1', :paths => [['/item', 'post']] },
51
52
  { :title => 'item2', :href => '/item2', :paths => [['/item', 'get']] }
52
53
  ]
53
- request = mock('request')
54
- request.should_receive(:path).once.and_return('/item')
55
- request.should_receive(:method).once.and_return('get')
56
- request.should_receive(:params).once.and_return({})
54
+ request = double('request')
55
+ allow(request).to receive(:path).once.and_return('/item')
56
+ allow(request).to receive(:method).once.and_return('get')
57
+ allow(request).to receive(:params).once.and_return({})
57
58
  @menu = Mmmenu.new(:items => items, :request => request )
58
59
  set_menu_markup
59
- @menu.build.should == <<END
60
+ expect(@menu.build).to eq <<END
60
61
  item1: /item1
61
62
  item2: /item2 current
62
63
  END
@@ -69,13 +70,13 @@ END
69
70
  { :title => 'item2', :href => '/item1', :paths => [['/item1', 'get', {:param => 2}]] },
70
71
  { :title => 'item3', :href => '/item1', :paths => [['/item1', 'get', {:param => nil}]] }
71
72
  ]
72
- request = mock('request')
73
- request.should_receive(:path).once.and_return('/item1')
74
- request.should_receive(:params).once.and_return({"param" => "1"})
75
- request.should_receive(:method).once.and_return('get')
73
+ request = double('request')
74
+ allow(request).to receive(:path).once.and_return('/item1')
75
+ allow(request).to receive(:params).once.and_return({"param" => "1"})
76
+ allow(request).to receive(:method).once.and_return('get')
76
77
  @menu = Mmmenu.new(:items => items, :request => request )
77
78
  set_menu_markup
78
- @menu.build.should == <<END
79
+ expect(@menu.build).to eq <<END
79
80
  item1: /item1 current
80
81
  item2: /item1
81
82
  item3: /item1
@@ -88,15 +89,15 @@ END
88
89
  { :title => 'item2', :href => '/item2' },
89
90
  { :title => 'item3', :href => '/item3' }
90
91
  ]
91
- request = mock('request')
92
- request.should_receive(:path).once.and_return('/item1')
93
- request.should_receive(:method).once.and_return('get')
94
- request.should_receive(:params).once
92
+ request = double('request')
93
+ allow(request).to receive(:path).once.and_return('/item1')
94
+ allow(request).to receive(:method).once.and_return('get')
95
+ allow(request).to receive(:params).once
95
96
  @menu = Mmmenu.new(:items => items, :request => request )
96
97
  @menu.current_item = "/item2"
97
98
  set_menu_markup
98
99
 
99
- @menu.build.should == <<END
100
+ expect(@menu.build).to eq <<END
100
101
  item1: /item1
101
102
  item2: /item2 current
102
103
  item3: /item3
@@ -114,7 +115,7 @@ END
114
115
  end
115
116
  set_menu_markup
116
117
 
117
- @menu.build.should == <<END
118
+ expect(@menu.build).to eq <<END
118
119
  Item1: /items1 current
119
120
  Item2: /items2
120
121
  New: /item2/new
@@ -134,7 +135,7 @@ END
134
135
  end
135
136
  set_menu_markup
136
137
 
137
- @menu.build.should == <<END
138
+ expect(@menu.build).to eq <<END
138
139
  Item1: /items1 current
139
140
  Item2: /items2
140
141
  New: /item2/new
@@ -143,6 +144,12 @@ END
143
144
 
144
145
  end
145
146
 
147
+
148
+ it "returns current item title and url" do
149
+ @menu.build
150
+ expect(@menu.current_item).to eq({:title=>"Create", :href=>"/items1/new", :paths=>["/items1/new"], :html_options=>{}})
151
+ end
152
+
146
153
  def set_menu_markup(level=1)
147
154
  @menu.item_markup(level) do |link, text, options|
148
155
  "#{text}: #{link}\n"
metadata CHANGED
@@ -1,64 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mmmenu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
5
- prerelease:
4
+ version: 0.5.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Roman Snitko
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-04-04 00:00:00.000000000 Z
11
+ date: 2014-07-07 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: bundler
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rspec
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: jeweler
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ~>
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
- version: 1.6.4
47
+ version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ~>
52
+ - - ">="
60
53
  - !ruby/object:Gem::Version
61
- version: 1.6.4
54
+ version: '0'
62
55
  description: Defines multilevel menu structures, uses custom html templates to render
63
56
  them.
64
57
  email: roman.snitko@gmail.com
@@ -67,6 +60,7 @@ extensions: []
67
60
  extra_rdoc_files:
68
61
  - README.markdown
69
62
  files:
63
+ - ".rspec"
70
64
  - Gemfile
71
65
  - Gemfile.lock
72
66
  - README.markdown
@@ -89,29 +83,25 @@ files:
89
83
  homepage: http://github.com/snitko/mmmenu
90
84
  licenses:
91
85
  - MIT
86
+ metadata: {}
92
87
  post_install_message:
93
88
  rdoc_options: []
94
89
  require_paths:
95
90
  - lib
96
91
  required_ruby_version: !ruby/object:Gem::Requirement
97
- none: false
98
92
  requirements:
99
- - - ! '>='
93
+ - - ">="
100
94
  - !ruby/object:Gem::Version
101
95
  version: '0'
102
- segments:
103
- - 0
104
- hash: 3008671744595032140
105
96
  required_rubygems_version: !ruby/object:Gem::Requirement
106
- none: false
107
97
  requirements:
108
- - - ! '>='
98
+ - - ">="
109
99
  - !ruby/object:Gem::Version
110
100
  version: '0'
111
101
  requirements: []
112
102
  rubyforge_project:
113
- rubygems_version: 1.8.24
103
+ rubygems_version: 2.2.2
114
104
  signing_key:
115
- specification_version: 3
105
+ specification_version: 4
116
106
  summary: Flexible menu generator for Rails.
117
107
  test_files: []