js-routes 0.8.3 → 0.8.4

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/Gemfile CHANGED
@@ -4,7 +4,7 @@ gem "rails", ">= 3.2"
4
4
 
5
5
  group :development do
6
6
  gem "therubyracer"
7
- gem "rspec", "~> 2.7.0"
7
+ gem "rspec", "~> 2.10.0"
8
8
  gem "bundler", "~> 1.1.0"
9
9
  gem "jeweler", "~> 1.6.2"
10
10
  end
data/Gemfile.lock CHANGED
@@ -74,14 +74,14 @@ GEM
74
74
  rake (0.9.2)
75
75
  rdoc (3.12)
76
76
  json (~> 1.4)
77
- rspec (2.7.0)
78
- rspec-core (~> 2.7.0)
79
- rspec-expectations (~> 2.7.0)
80
- rspec-mocks (~> 2.7.0)
81
- rspec-core (2.7.1)
82
- rspec-expectations (2.7.0)
83
- diff-lcs (~> 1.1.2)
84
- rspec-mocks (2.7.0)
77
+ rspec (2.10.0)
78
+ rspec-core (~> 2.10.0)
79
+ rspec-expectations (~> 2.10.0)
80
+ rspec-mocks (~> 2.10.0)
81
+ rspec-core (2.10.1)
82
+ rspec-expectations (2.10.0)
83
+ diff-lcs (~> 1.1.3)
84
+ rspec-mocks (2.10.1)
85
85
  sprockets (2.1.2)
86
86
  hike (~> 1.2)
87
87
  rack (~> 1.0)
@@ -102,5 +102,5 @@ DEPENDENCIES
102
102
  bundler (~> 1.1.0)
103
103
  jeweler (~> 1.6.2)
104
104
  rails (>= 3.2)
105
- rspec (~> 2.7.0)
105
+ rspec (~> 2.10.0)
106
106
  therubyracer
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.3
1
+ 0.8.4
data/js-routes.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "js-routes"
8
- s.version = "0.8.3"
8
+ s.version = "0.8.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Bogdan Gusiev"]
12
- s.date = "2012-06-23"
12
+ s.date = "2012-07-10"
13
13
  s.description = "Generates javascript file that defines all Rails named routes as javascript helpers"
14
14
  s.email = "agresso@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -39,7 +39,7 @@ Gem::Specification.new do |s|
39
39
  s.homepage = "http://github.com/railsware/js-routes"
40
40
  s.licenses = ["MIT"]
41
41
  s.require_paths = ["lib"]
42
- s.rubygems_version = "1.8.11"
42
+ s.rubygems_version = "1.8.24"
43
43
  s.summary = "Brings Rails named routes to javascript"
44
44
 
45
45
  if s.respond_to? :specification_version then
@@ -48,20 +48,20 @@ Gem::Specification.new do |s|
48
48
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
49
49
  s.add_runtime_dependency(%q<rails>, [">= 3.2"])
50
50
  s.add_development_dependency(%q<therubyracer>, [">= 0"])
51
- s.add_development_dependency(%q<rspec>, ["~> 2.7.0"])
51
+ s.add_development_dependency(%q<rspec>, ["~> 2.10.0"])
52
52
  s.add_development_dependency(%q<bundler>, ["~> 1.1.0"])
53
53
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.2"])
54
54
  else
55
55
  s.add_dependency(%q<rails>, [">= 3.2"])
56
56
  s.add_dependency(%q<therubyracer>, [">= 0"])
57
- s.add_dependency(%q<rspec>, ["~> 2.7.0"])
57
+ s.add_dependency(%q<rspec>, ["~> 2.10.0"])
58
58
  s.add_dependency(%q<bundler>, ["~> 1.1.0"])
59
59
  s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
60
60
  end
61
61
  else
62
62
  s.add_dependency(%q<rails>, [">= 3.2"])
63
63
  s.add_dependency(%q<therubyracer>, [">= 0"])
64
- s.add_dependency(%q<rspec>, ["~> 2.7.0"])
64
+ s.add_dependency(%q<rspec>, ["~> 2.10.0"])
65
65
  s.add_dependency(%q<bundler>, ["~> 1.1.0"])
66
66
  s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
67
67
  end
data/lib/routes.js CHANGED
@@ -96,6 +96,12 @@
96
96
  return result;
97
97
  },
98
98
 
99
+ smartIndexOf: function(array, item){
100
+ if (Array.prototype.indexOf && array.indexOf === Array.prototype.indexOf) return array.indexOf(item);
101
+ for (var i = 0; i < array.length; i++) if (i in array && array[i] === item) return i;
102
+ return -1;
103
+ },
104
+
99
105
  build_path: function(required_parameters, optional_parts, route, args) {
100
106
  args = Array.prototype.slice.call(args);
101
107
  var opts = this.extract_options(required_parameters.length, args);
@@ -104,7 +110,8 @@
104
110
  }
105
111
 
106
112
  parameters = this.prepare_parameters(required_parameters, args, opts);
107
- if (optional_parts.indexOf('format') != -1) {
113
+ // Array#indexOf is not supported by IE <= 8, so we use custom method
114
+ if (Utils.smartIndexOf(optional_parts, 'format') !== -1) {
108
115
  this.set_default_format(parameters);
109
116
  }
110
117
  var result = Utils.get_prefix();
@@ -3,8 +3,10 @@ require "fileutils"
3
3
 
4
4
 
5
5
  describe JsRoutes do
6
+ before(:all) do
7
+ draw_routes
8
+ end
6
9
  before(:each) do
7
- Rails.application.stub!(:reload_routes!).and_return(true)
8
10
  evaljs(_presetup)
9
11
  evaljs(JsRoutes.generate(_options))
10
12
  end
@@ -232,6 +234,15 @@ describe JsRoutes do
232
234
 
233
235
  end
234
236
 
237
+ context "when javascript engine without Array#indexOf is used" do
238
+ before(:each) do
239
+ evaljs("Array.prototype.indexOf = null")
240
+ end
241
+ it "should still work correctly" do
242
+ evaljs("Routes.inboxes_path()").should == routes.inboxes_path()
243
+ end
244
+ end
245
+
235
246
  context "when default_format is specified" do
236
247
  let(:_options) { {:default_format => "json"} }
237
248
 
data/spec/spec_helper.rb CHANGED
@@ -30,8 +30,11 @@ end
30
30
  class App < Rails::Application
31
31
  # Enable the asset pipeline
32
32
  config.assets.enabled = true
33
+ end
34
+
35
+ def draw_routes
33
36
 
34
- self.routes.draw do
37
+ App.routes.draw do
35
38
  resources :inboxes do
36
39
  resources :messages do
37
40
  resources :attachments
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: js-routes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.3
4
+ version: 0.8.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-23 00:00:00.000000000 Z
12
+ date: 2012-07-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &22519380 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '3.2'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *22519380
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '3.2'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: therubyracer
27
- requirement: &22516920 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,21 +37,31 @@ dependencies:
32
37
  version: '0'
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *22516920
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: rspec
38
- requirement: &22516040 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ~>
42
52
  - !ruby/object:Gem::Version
43
- version: 2.7.0
53
+ version: 2.10.0
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *22516040
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 2.10.0
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: bundler
49
- requirement: &22515000 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ~>
@@ -54,10 +69,15 @@ dependencies:
54
69
  version: 1.1.0
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *22515000
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 1.1.0
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: jeweler
60
- requirement: &22513860 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ~>
@@ -65,7 +85,12 @@ dependencies:
65
85
  version: 1.6.2
66
86
  type: :development
67
87
  prerelease: false
68
- version_requirements: *22513860
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 1.6.2
69
94
  description: Generates javascript file that defines all Rails named routes as javascript
70
95
  helpers
71
96
  email: agresso@gmail.com
@@ -108,7 +133,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
108
133
  version: '0'
109
134
  segments:
110
135
  - 0
111
- hash: -3723939340192158814
136
+ hash: 4117024943780104763
112
137
  required_rubygems_version: !ruby/object:Gem::Requirement
113
138
  none: false
114
139
  requirements:
@@ -117,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
117
142
  version: '0'
118
143
  requirements: []
119
144
  rubyforge_project:
120
- rubygems_version: 1.8.11
145
+ rubygems_version: 1.8.24
121
146
  signing_key:
122
147
  specification_version: 3
123
148
  summary: Brings Rails named routes to javascript