to_js 0.0.1 → 0.0.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.
data/README.md CHANGED
@@ -1,3 +1,3 @@
1
- [![Build Status](https://secure.travis-ci.org/dmitriy-kiriyenko/to_js.png)](http://travis-ci.org/dmitriy-kiriyenko/to_js)
1
+ [![Build Status](https://secure.travis-ci.org/dmitriy-kiriyenko/to_js.png)](http://travis-ci.org/dmitriy-kiriyenko/to_js) [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/dmitriy-kiriyenko/to_js)
2
2
 
3
- Adds to_js to basic ruby types. Use when you need js, not json.
3
+ Adds `to_js` to basic ruby types. Use when you need js, not json.
@@ -1,3 +1,3 @@
1
1
  module ToJs
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -12,6 +12,10 @@ module ToJs
12
12
  end
13
13
  end
14
14
 
15
+ visitor_for Date, Time do |moment|
16
+ moment.respond_to?(:to_json) ? moment.to_json : "\"#{moment.to_s}\""
17
+ end
18
+
15
19
  visitor_for Numeric do |number|
16
20
  number.to_s
17
21
  end
@@ -35,14 +35,21 @@ describe "Object#to_js" do
35
35
  [1, 2, "Hello"].to_js.should == "[1, 2, \"Hello\"]"
36
36
  end
37
37
 
38
- it "should return js array literal for set" do
38
+ it "should return js array literal for set", :ruby => 1.9 do
39
39
  Set.new([1, 2, "Hello"]).to_js.should == "[1, 2, \"Hello\"]"
40
40
  end
41
41
 
42
- it "should return js object literal for hash" do
42
+ it "should return js object literal for hash", :ruby => 1.9 do
43
43
  {:a => "hello", :b => 5, "c" => "world"}.to_js.should == "{a: \"hello\", b: 5, c: \"world\"}"
44
44
  end
45
45
 
46
+ it "should return js object literal for hash", :ruby => 1.8 do
47
+ require 'active_support/ordered_hash'
48
+ ActiveSupport::OrderedHash[
49
+ :a, "hello", :b, 5, "c", "world"
50
+ ].to_js.should == "{a: \"hello\", b: 5, c: \"world\"}"
51
+ end
52
+
46
53
  it "should return to_s representation of object" do
47
54
  A.new("Hello").to_js.should == "Hello"
48
55
  end
@@ -54,4 +61,14 @@ describe "Object#to_js" do
54
61
  it "should return string without graves to string with graves" do
55
62
  "`Hello`".to_js.should == "Hello"
56
63
  end
64
+
65
+ it "should return date wrapped as string" do
66
+ Date.new(2012, 12, 21).to_js.should == "\"2012-12-21\""
67
+ end
68
+
69
+ it "should return time wrapped as string" do
70
+ moment = Time.at(0)
71
+ moment.to_js.should == "\"#{moment.to_s}\""
72
+ end
73
+
57
74
  end
@@ -8,5 +8,7 @@ Bundler.require(:default, :development)
8
8
  Dir[File.join(File.dirname(__FILE__), "support", "**", "*.rb")].each {|f| require f}
9
9
 
10
10
  RSpec.configure do |config|
11
- # some (optional) config here
11
+ config.filter_run_excluding :ruby => lambda {|version|
12
+ !(RUBY_VERSION.to_s =~ /^#{version.to_s}/)
13
+ }
12
14
  end
@@ -22,6 +22,7 @@ Gem::Specification.new do |s|
22
22
  s.add_development_dependency "pry-doc"
23
23
  s.add_development_dependency "rake"
24
24
  s.add_development_dependency "rspec"
25
+ s.add_development_dependency "activesupport" if RUBY_VERSION =~ /1.8/
25
26
 
26
27
  s.add_runtime_dependency "visitor"
27
28
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: to_js
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
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-02-10 00:00:00.000000000 Z
12
+ date: 2013-01-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: pry
16
- requirement: &2157837720 !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: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *2157837720
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: pry-doc
27
- requirement: &2157837300 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: '0'
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *2157837300
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: rake
38
- requirement: &2157836860 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: '0'
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *2157836860
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: rspec
49
- requirement: &2157836400 !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: '0'
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *2157836400
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: visitor
60
- requirement: &2157835960 !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: '0'
66
86
  type: :runtime
67
87
  prerelease: false
68
- version_requirements: *2157835960
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
69
94
  description: Adds to_js to basic ruby types. Use when you need js, not json.
70
95
  email:
71
96
  - dmitriy.kiriyenko@anahoret.com, maxim.tsaplin@anahoret.com
@@ -102,7 +127,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
102
127
  version: '0'
103
128
  segments:
104
129
  - 0
105
- hash: -1987957576940724029
130
+ hash: -4587213289829465361
106
131
  required_rubygems_version: !ruby/object:Gem::Requirement
107
132
  none: false
108
133
  requirements:
@@ -111,10 +136,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
136
  version: '0'
112
137
  segments:
113
138
  - 0
114
- hash: -1987957576940724029
139
+ hash: -4587213289829465361
115
140
  requirements: []
116
141
  rubyforge_project: to_js
117
- rubygems_version: 1.8.15
142
+ rubygems_version: 1.8.23
118
143
  signing_key:
119
144
  specification_version: 3
120
145
  summary: Adds to_js to basic ruby types