elster 0.0.8 → 0.1.1

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.
@@ -1,17 +1,58 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- elster (0.0.8)
4
+ elster (0.1.1)
5
5
  multi_json
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
+ actionmailer (3.2.9)
11
+ actionpack (= 3.2.9)
12
+ mail (~> 2.4.4)
13
+ actionpack (3.2.9)
14
+ activemodel (= 3.2.9)
15
+ activesupport (= 3.2.9)
16
+ builder (~> 3.0.0)
17
+ erubis (~> 2.7.0)
18
+ journey (~> 1.0.4)
19
+ rack (~> 1.4.0)
20
+ rack-cache (~> 1.2)
21
+ rack-test (~> 0.6.1)
22
+ sprockets (~> 2.2.1)
23
+ activemodel (3.2.9)
24
+ activesupport (= 3.2.9)
25
+ builder (~> 3.0.0)
26
+ activerecord (3.2.9)
27
+ activemodel (= 3.2.9)
28
+ activesupport (= 3.2.9)
29
+ arel (~> 3.0.2)
30
+ tzinfo (~> 0.3.29)
31
+ activeresource (3.2.9)
32
+ activemodel (= 3.2.9)
33
+ activesupport (= 3.2.9)
34
+ activesupport (3.2.9)
35
+ i18n (~> 0.6)
36
+ multi_json (~> 1.0)
10
37
  ansi (1.4.0)
38
+ arel (3.0.2)
39
+ builder (3.0.4)
11
40
  coderay (1.0.7)
41
+ erubis (2.7.0)
42
+ hike (1.2.1)
43
+ i18n (0.6.1)
44
+ journey (1.0.4)
45
+ json (1.7.5)
46
+ json (1.7.5-java)
47
+ mail (2.4.4)
48
+ i18n (>= 0.4.0)
49
+ mime-types (~> 1.16)
50
+ treetop (~> 1.4.8)
12
51
  method_source (0.8)
52
+ mime-types (1.19)
13
53
  minitest (3.3.0)
14
54
  multi_json (1.3.7)
55
+ polyglot (0.3.3)
15
56
  pry (0.9.10)
16
57
  coderay (~> 1.0.5)
17
58
  method_source (~> 0.8)
@@ -21,10 +62,46 @@ GEM
21
62
  method_source (~> 0.8)
22
63
  slop (~> 3.3.1)
23
64
  spoon (~> 0.0)
65
+ rack (1.4.1)
66
+ rack-cache (1.2)
67
+ rack (>= 0.4)
68
+ rack-ssl (1.3.2)
69
+ rack
70
+ rack-test (0.6.2)
71
+ rack (>= 1.0)
72
+ rails (3.2.9)
73
+ actionmailer (= 3.2.9)
74
+ actionpack (= 3.2.9)
75
+ activerecord (= 3.2.9)
76
+ activeresource (= 3.2.9)
77
+ activesupport (= 3.2.9)
78
+ bundler (~> 1.0)
79
+ railties (= 3.2.9)
80
+ railties (3.2.9)
81
+ actionpack (= 3.2.9)
82
+ activesupport (= 3.2.9)
83
+ rack-ssl (~> 1.3.2)
84
+ rake (>= 0.8.7)
85
+ rdoc (~> 3.4)
86
+ thor (>= 0.14.6, < 2.0)
87
+ rake (10.0.2)
88
+ rdoc (3.12)
89
+ json (~> 1.4)
24
90
  slop (3.3.2)
25
91
  spoon (0.0.1)
92
+ sprockets (2.2.1)
93
+ hike (~> 1.2)
94
+ multi_json (~> 1.0)
95
+ rack (~> 1.0)
96
+ tilt (~> 1.1, != 1.3.0)
97
+ thor (0.16.0)
98
+ tilt (1.3.3)
99
+ treetop (1.4.12)
100
+ polyglot
101
+ polyglot (>= 0.3.1)
26
102
  turn (0.8.3)
27
103
  ansi
104
+ tzinfo (0.3.35)
28
105
 
29
106
  PLATFORMS
30
107
  java
@@ -34,4 +111,5 @@ DEPENDENCIES
34
111
  elster!
35
112
  minitest
36
113
  pry
114
+ rails (>= 3.1)
37
115
  turn
@@ -1,5 +1,7 @@
1
1
  # Elster
2
2
 
3
+ [![Build Status](https://travis-ci.org/[bigjason]/[elster].png)](https://travis-ci.org/[bigjason]/[elster])
4
+
3
5
  Elster is a streaming JSON encoder written in pure ruby.
4
6
 
5
7
  ## Installation
@@ -32,6 +34,20 @@ puts output.string
32
34
  # {"name":"George","kids":["Job","Buster"]}
33
35
  ```
34
36
 
37
+ ### With Rails
38
+
39
+ You can use Elster with rails by naming templates with the `.json.elster`
40
+ extension. When used as a rails template simply reference the implicit `json`
41
+ object. For example:
42
+
43
+ ``` ruby
44
+ json.key(:name, "George")
45
+ json.key(:kids) do
46
+ json.add("Job")
47
+ json.add("Buster")
48
+ end
49
+ ```
50
+
35
51
  ## Contributing
36
52
 
37
53
  1. Fork it
@@ -5,7 +5,7 @@ Gem::Specification.new do |gem|
5
5
  gem.authors = ["Jason Webb"]
6
6
  gem.email = ["bigjasonwebb@gmail.com"]
7
7
  gem.summary = %q{A simple streaming JSON encoder.}
8
- gem.homepage = ""
8
+ gem.homepage = "https://github.com/bigjason/elster"
9
9
 
10
10
  gem.files = Dir["#{File.dirname(__FILE__)}/**/*"]
11
11
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
@@ -19,4 +19,5 @@ Gem::Specification.new do |gem|
19
19
  gem.add_development_dependency "minitest"
20
20
  gem.add_development_dependency "turn"
21
21
  gem.add_development_dependency "pry"
22
+ gem.add_development_dependency "rails", ">= 3.1"
22
23
  end
@@ -0,0 +1,27 @@
1
+ module Elster
2
+ class ElsterHandler
3
+ cattr_accessor :default_format
4
+ self.default_format = Mime::JSON
5
+
6
+ def supports_streaming?
7
+ true
8
+ end
9
+
10
+ def self.call(template)
11
+ %{
12
+ if defined?(json)
13
+ #{template.source}
14
+ else
15
+ output = StringIO.new
16
+ json = Elster::Streamer.new(output)
17
+
18
+ #{template.source}
19
+ json.close
20
+ output.string
21
+ end
22
+ }
23
+ end
24
+ end
25
+ end
26
+
27
+ ActionView::Template.register_template_handler :elster, Elster::ElsterHandler
@@ -1,3 +1,3 @@
1
1
  module Elster
2
- VERSION = "0.0.8"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -1,3 +1,5 @@
1
1
  require "elster/version"
2
2
  require "elster/exceptions"
3
3
  require "elster/streamer"
4
+
5
+ require "elster/elster_handler" if defined?(ActionView::Template)
@@ -248,6 +248,6 @@ class StreamerTest < MiniTest::Unit::TestCase
248
248
 
249
249
  assert_equal nil, parsed.fetch("empty")
250
250
  assert_equal 1, parsed.fetch("value")
251
- assert_equal false, parsed["first_value"]
251
+ assert_equal false, parsed.fetch("first_value")
252
252
  end
253
253
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elster
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.1.1
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: 2012-11-20 00:00:00.000000000 Z
12
+ date: 2013-03-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: multi_json
@@ -75,6 +75,22 @@ dependencies:
75
75
  - - ! '>='
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: rails
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '3.1'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '3.1'
78
94
  description:
79
95
  email:
80
96
  - bigjasonwebb@gmail.com
@@ -102,6 +118,7 @@ files:
102
118
  - /Users/jwebb/src/bigjason/elster/elster.gemspec
103
119
  - /Users/jwebb/src/bigjason/elster/Gemfile
104
120
  - /Users/jwebb/src/bigjason/elster/Gemfile.lock
121
+ - /Users/jwebb/src/bigjason/elster/lib/elster/elster_handler.rb
105
122
  - /Users/jwebb/src/bigjason/elster/lib/elster/exceptions.rb
106
123
  - /Users/jwebb/src/bigjason/elster/lib/elster/streamer.rb
107
124
  - /Users/jwebb/src/bigjason/elster/lib/elster/version.rb
@@ -112,10 +129,11 @@ files:
112
129
  - /Users/jwebb/src/bigjason/elster/pkg/elster-0.0.5.gem
113
130
  - /Users/jwebb/src/bigjason/elster/pkg/elster-0.0.6.gem
114
131
  - /Users/jwebb/src/bigjason/elster/pkg/elster-0.0.7.gem
132
+ - /Users/jwebb/src/bigjason/elster/pkg/elster-0.0.8.gem
115
133
  - /Users/jwebb/src/bigjason/elster/Rakefile
116
134
  - /Users/jwebb/src/bigjason/elster/README.md
117
135
  - /Users/jwebb/src/bigjason/elster/test/streamer_test.rb
118
- homepage: ''
136
+ homepage: https://github.com/bigjason/elster
119
137
  licenses: []
120
138
  post_install_message:
121
139
  rdoc_options: []
@@ -129,7 +147,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
129
147
  version: '0'
130
148
  segments:
131
149
  - 0
132
- hash: -2517217796330769857
150
+ hash: -247596212203680620
133
151
  required_rubygems_version: !ruby/object:Gem::Requirement
134
152
  none: false
135
153
  requirements:
@@ -138,7 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
138
156
  version: '0'
139
157
  segments:
140
158
  - 0
141
- hash: -2517217796330769857
159
+ hash: -247596212203680620
142
160
  requirements: []
143
161
  rubyforge_project:
144
162
  rubygems_version: 1.8.24