json_builder 3.0.6 → 3.0.7
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 +6 -0
- data/Gemfile.lock +6 -105
- data/MIT-LICENSE +1 -1
- data/README.md +2 -2
- data/Rakefile +10 -16
- data/json_builder.gemspec +15 -19
- data/lib/json_builder.rb +5 -0
- data/lib/json_builder/compiler.rb +108 -19
- data/lib/json_builder/elements.rb +17 -3
- data/lib/json_builder/extensions.rb +3 -3
- data/lib/json_builder/member.rb +20 -5
- data/lib/json_builder/template.rb +1 -1
- data/lib/json_builder/value.rb +15 -3
- data/lib/json_builder/version.rb +1 -1
- data/{spec → test}/benchmarks/builder.rb +0 -0
- data/test/compiler_test.rb +87 -0
- data/test/elements_test.rb +21 -0
- data/test/extensions_test.rb +47 -0
- data/test/member_test.rb +39 -0
- data/test/test_helper.rb +22 -0
- data/test/value_test.rb +60 -0
- metadata +20 -146
- data/spec/dummy/Rakefile +0 -7
- data/spec/dummy/app/controllers/application_controller.rb +0 -3
- data/spec/dummy/app/controllers/users_controller.rb +0 -6
- data/spec/dummy/app/helpers/application_helper.rb +0 -2
- data/spec/dummy/app/helpers/users_helper.rb +0 -5
- data/spec/dummy/app/models/user.rb +0 -11
- data/spec/dummy/app/views/layouts/application.html.erb +0 -14
- data/spec/dummy/app/views/users/index.json_builder +0 -15
- data/spec/dummy/config.ru +0 -4
- data/spec/dummy/config/application.rb +0 -45
- data/spec/dummy/config/boot.rb +0 -10
- data/spec/dummy/config/database.yml +0 -22
- data/spec/dummy/config/environment.rb +0 -5
- data/spec/dummy/config/environments/development.rb +0 -26
- data/spec/dummy/config/environments/production.rb +0 -49
- data/spec/dummy/config/environments/test.rb +0 -35
- data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -7
- data/spec/dummy/config/initializers/inflections.rb +0 -10
- data/spec/dummy/config/initializers/mime_types.rb +0 -5
- data/spec/dummy/config/initializers/secret_token.rb +0 -7
- data/spec/dummy/config/initializers/session_store.rb +0 -8
- data/spec/dummy/config/locales/en.yml +0 -5
- data/spec/dummy/config/routes.rb +0 -5
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/20111127061428_create_users.rb +0 -14
- data/spec/dummy/db/schema.rb +0 -23
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/public/404.html +0 -26
- data/spec/dummy/public/422.html +0 -26
- data/spec/dummy/public/500.html +0 -26
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/public/javascripts/application.js +0 -2
- data/spec/dummy/public/javascripts/controls.js +0 -965
- data/spec/dummy/public/javascripts/dragdrop.js +0 -974
- data/spec/dummy/public/javascripts/effects.js +0 -1123
- data/spec/dummy/public/javascripts/prototype.js +0 -6001
- data/spec/dummy/public/javascripts/rails.js +0 -191
- data/spec/dummy/public/stylesheets/.gitkeep +0 -0
- data/spec/dummy/script/rails +0 -6
- data/spec/dummy/spec/controllers/users_controller_spec.rb +0 -14
- data/spec/integration/navigation_spec.rb +0 -9
- data/spec/json_builder_spec.rb +0 -7
- data/spec/spec_helper.rb +0 -34
- data/spec/support/json_builder.rb +0 -7
- data/spec/unit/json_builder_spec.rb +0 -77
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,121 +1,22 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
json_builder (3.0.
|
4
|
+
json_builder (3.0.7)
|
5
5
|
activesupport (>= 2.0.0)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: http://rubygems.org/
|
9
9
|
specs:
|
10
|
-
|
11
|
-
|
12
|
-
actionpack (= 3.0.10)
|
13
|
-
mail (~> 2.2.19)
|
14
|
-
actionpack (3.0.10)
|
15
|
-
activemodel (= 3.0.10)
|
16
|
-
activesupport (= 3.0.10)
|
17
|
-
builder (~> 2.1.2)
|
18
|
-
erubis (~> 2.6.6)
|
19
|
-
i18n (~> 0.5.0)
|
20
|
-
rack (~> 1.2.1)
|
21
|
-
rack-mount (~> 0.6.14)
|
22
|
-
rack-test (~> 0.5.7)
|
23
|
-
tzinfo (~> 0.3.23)
|
24
|
-
activemodel (3.0.10)
|
25
|
-
activesupport (= 3.0.10)
|
26
|
-
builder (~> 2.1.2)
|
27
|
-
i18n (~> 0.5.0)
|
28
|
-
activerecord (3.0.10)
|
29
|
-
activemodel (= 3.0.10)
|
30
|
-
activesupport (= 3.0.10)
|
31
|
-
arel (~> 2.0.10)
|
32
|
-
tzinfo (~> 0.3.23)
|
33
|
-
activeresource (3.0.10)
|
34
|
-
activemodel (= 3.0.10)
|
35
|
-
activesupport (= 3.0.10)
|
36
|
-
activesupport (3.0.10)
|
37
|
-
arel (2.0.10)
|
38
|
-
builder (2.1.2)
|
39
|
-
capybara (1.1.1)
|
40
|
-
mime-types (>= 1.16)
|
41
|
-
nokogiri (>= 1.3.3)
|
42
|
-
rack (>= 1.0.0)
|
43
|
-
rack-test (>= 0.5.4)
|
44
|
-
selenium-webdriver (~> 2.0)
|
45
|
-
xpath (~> 0.1.4)
|
46
|
-
childprocess (0.2.2)
|
47
|
-
ffi (~> 1.0.6)
|
48
|
-
diff-lcs (1.1.3)
|
49
|
-
erubis (2.6.6)
|
50
|
-
abstract (>= 1.0.0)
|
51
|
-
ffi (1.0.9)
|
10
|
+
activesupport (3.1.3)
|
11
|
+
multi_json (~> 1.0)
|
52
12
|
i18n (0.5.0)
|
53
|
-
|
54
|
-
json_pure (1.6.1)
|
55
|
-
mail (2.2.19)
|
56
|
-
activesupport (>= 2.3.6)
|
57
|
-
i18n (>= 0.4.0)
|
58
|
-
mime-types (~> 1.16)
|
59
|
-
treetop (~> 1.4.8)
|
60
|
-
mime-types (1.17.2)
|
61
|
-
nokogiri (1.5.0)
|
62
|
-
polyglot (0.3.3)
|
63
|
-
rack (1.2.4)
|
64
|
-
rack-mount (0.6.14)
|
65
|
-
rack (>= 1.0.0)
|
66
|
-
rack-test (0.5.7)
|
67
|
-
rack (>= 1.0)
|
68
|
-
rails (3.0.10)
|
69
|
-
actionmailer (= 3.0.10)
|
70
|
-
actionpack (= 3.0.10)
|
71
|
-
activerecord (= 3.0.10)
|
72
|
-
activeresource (= 3.0.10)
|
73
|
-
activesupport (= 3.0.10)
|
74
|
-
bundler (~> 1.0)
|
75
|
-
railties (= 3.0.10)
|
76
|
-
railties (3.0.10)
|
77
|
-
actionpack (= 3.0.10)
|
78
|
-
activesupport (= 3.0.10)
|
79
|
-
rake (>= 0.8.7)
|
80
|
-
rdoc (~> 3.4)
|
81
|
-
thor (~> 0.14.4)
|
13
|
+
multi_json (1.0.4)
|
82
14
|
rake (0.9.2.2)
|
83
|
-
rdoc (3.11)
|
84
|
-
json (~> 1.4)
|
85
|
-
rspec (2.8.0.rc1)
|
86
|
-
rspec-core (= 2.8.0.rc1)
|
87
|
-
rspec-expectations (= 2.8.0.rc1)
|
88
|
-
rspec-mocks (= 2.8.0.rc1)
|
89
|
-
rspec-core (2.8.0.rc1)
|
90
|
-
rspec-expectations (2.8.0.rc1)
|
91
|
-
diff-lcs (~> 1.1.2)
|
92
|
-
rspec-mocks (2.8.0.rc1)
|
93
|
-
rspec-rails (2.8.0.rc1)
|
94
|
-
actionpack (~> 3.0)
|
95
|
-
activesupport (~> 3.0)
|
96
|
-
railties (~> 3.0)
|
97
|
-
rspec (= 2.8.0.rc1)
|
98
|
-
rubyzip (0.9.4)
|
99
|
-
selenium-webdriver (2.10.0)
|
100
|
-
childprocess (>= 0.2.1)
|
101
|
-
ffi (= 1.0.9)
|
102
|
-
json_pure
|
103
|
-
rubyzip
|
104
|
-
sqlite3 (1.3.4)
|
105
|
-
thor (0.14.6)
|
106
|
-
treetop (1.4.10)
|
107
|
-
polyglot
|
108
|
-
polyglot (>= 0.3.1)
|
109
|
-
tzinfo (0.3.31)
|
110
|
-
xpath (0.1.4)
|
111
|
-
nokogiri (~> 1.3)
|
112
15
|
|
113
16
|
PLATFORMS
|
114
17
|
ruby
|
115
18
|
|
116
19
|
DEPENDENCIES
|
117
|
-
|
20
|
+
i18n
|
118
21
|
json_builder!
|
119
|
-
|
120
|
-
rspec-rails (>= 2.0.0.beta)
|
121
|
-
sqlite3
|
22
|
+
rake
|
data/MIT-LICENSE
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
JSON Builder
|
1
|
+
JSON Builder [](http://travis-ci.org/dewski/json_builder)
|
2
2
|
============
|
3
3
|
Rails provides an excellent XML Builder by default to build RSS and ATOM feeds, but nothing to help you build complex and custom JSON data structures. The standard `to_json` works just fine, but can get very verbose when you need full control of what is generated and performance is a factor. JSON Builder hopes to solve that problem.
|
4
4
|
|
@@ -259,4 +259,4 @@ There are quite a few other alternatives to JSON Builder, each good in their own
|
|
259
259
|
- Send me a pull request. Bonus points for topic branches.
|
260
260
|
|
261
261
|
## Copyright
|
262
|
-
Copyright ©
|
262
|
+
Copyright © 2012 Garrett Bjerkhoel. See [MIT-LICENSE](http://github.com/dewski/json_builder/blob/master/MIT-LICENSE) for details.
|
data/Rakefile
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# encoding: UTF-8
|
2
2
|
require 'rubygems'
|
3
|
+
require 'rake/testtask'
|
3
4
|
begin
|
4
5
|
require 'bundler/setup'
|
5
6
|
Bundler::GemHelper.install_tasks
|
@@ -7,20 +8,13 @@ rescue LoadError
|
|
7
8
|
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
8
9
|
end
|
9
10
|
|
10
|
-
|
11
|
-
|
11
|
+
desc 'Default: run tests'
|
12
|
+
task :default => :test
|
12
13
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
# Rake::Task.new(:rdoc) do |rdoc|
|
21
|
-
# rdoc.rdoc_dir = 'rdoc'
|
22
|
-
# rdoc.title = 'JsonBuilder'
|
23
|
-
# rdoc.options << '--line-numbers' << '--inline-source'
|
24
|
-
# rdoc.rdoc_files.include('README.rdoc')
|
25
|
-
# rdoc.rdoc_files.include('lib/**/*.rb')
|
26
|
-
# end
|
14
|
+
desc 'Run JSONBuilder tests.'
|
15
|
+
Rake::TestTask.new(:test) do |t|
|
16
|
+
t.libs << 'lib'
|
17
|
+
t.libs << 'test'
|
18
|
+
t.test_files = FileList['test/*_test.rb']
|
19
|
+
t.verbose = true
|
20
|
+
end
|
data/json_builder.gemspec
CHANGED
@@ -1,23 +1,19 @@
|
|
1
|
-
$:.push File.expand_path(
|
2
|
-
require
|
1
|
+
$:.push File.expand_path('../lib', __FILE__)
|
2
|
+
require 'json_builder/version'
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
|
-
s.name =
|
5
|
+
s.name = 'json_builder'
|
6
6
|
s.version = JSONBuilder::VERSION
|
7
|
-
s.summary =
|
8
|
-
s.description =
|
9
|
-
s.authors = [
|
10
|
-
s.email = [
|
7
|
+
s.summary = 'Rails provides an excellent XML Builder by default to build RSS and ATOM feeds, but nothing to help you build complex and custom JSON data structures. The standard to_json works well, but can get very verbose when you need full control of what is generated. JSON Builder hopes to solve that problem.'
|
8
|
+
s.description = 'Rails provides an excellent XML Builder by default to build RSS and ATOM feeds, but nothing to help you build complex and custom JSON data structures. The standard to_json works well, but can get very verbose when you need full control of what is generated. JSON Builder hopes to solve that problem.'
|
9
|
+
s.authors = ['Garrett Bjerkhoel']
|
10
|
+
s.email = ['me@garrettbjerkhoel.com']
|
11
11
|
s.platform = Gem::Platform::RUBY
|
12
|
-
|
13
|
-
s.files = `git ls-files`.split("\n")
|
14
|
-
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
15
|
-
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
16
|
-
s.require_paths = [
|
17
|
-
|
18
|
-
s.add_dependency
|
19
|
-
|
20
|
-
s.add_development_dependency "rails", ">= 2.0.0"
|
21
|
-
s.add_development_dependency "sqlite3"
|
22
|
-
s.add_development_dependency "capybara", ">= 0.4.0"
|
23
|
-
end
|
12
|
+
|
13
|
+
s.files = `git ls-files`.split("\n")
|
14
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
15
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
16
|
+
s.require_paths = ['lib']
|
17
|
+
|
18
|
+
s.add_dependency 'activesupport', '>= 2.0.0'
|
19
|
+
end
|
data/lib/json_builder.rb
CHANGED
@@ -3,6 +3,13 @@ require 'json_builder/member'
|
|
3
3
|
module JSONBuilder
|
4
4
|
class Compiler
|
5
5
|
class << self
|
6
|
+
# Public: The helper that builds the JSON structure by calling the
|
7
|
+
# specific methods needed to build the JSON.
|
8
|
+
#
|
9
|
+
# args - Any number of arguments needed for the JSONBuilder::Compiler.
|
10
|
+
# block - Yielding a block to generate the JSON.
|
11
|
+
#
|
12
|
+
# Returns a String.
|
6
13
|
def generate(*args, &block)
|
7
14
|
options = args.extract_options!
|
8
15
|
compiler = self.new(options)
|
@@ -10,34 +17,68 @@ module JSONBuilder
|
|
10
17
|
compiler.finalize
|
11
18
|
end
|
12
19
|
end
|
13
|
-
|
20
|
+
|
14
21
|
attr_accessor :members
|
15
22
|
attr_accessor :array
|
16
23
|
attr_accessor :scope
|
17
24
|
attr_accessor :callback
|
18
25
|
attr_accessor :pretty_print
|
19
|
-
|
26
|
+
|
27
|
+
# Needed to allow for the id key to be used
|
20
28
|
undef_method :id if methods.include? 'id'
|
21
|
-
|
29
|
+
|
30
|
+
# Public: Creates a new Compiler instance used to hold any and
|
31
|
+
# all JSONBuilder::Member objects.
|
32
|
+
#
|
33
|
+
# options - Hash of options used to modify JSON output.
|
34
|
+
#
|
35
|
+
# Examples
|
36
|
+
#
|
37
|
+
# json = JSONBuilder::Compiler.new(:callback => false)
|
38
|
+
# json.compile do
|
39
|
+
# name 'Garrett'
|
40
|
+
# end
|
41
|
+
# json.finalize
|
42
|
+
# # => {"name": "Garrett"}
|
43
|
+
#
|
44
|
+
# Returns instance of JSONBuilder::Compiler.
|
22
45
|
def initialize(options={})
|
23
46
|
@_members = []
|
24
47
|
@_scope = options[:scope]
|
25
48
|
@_callback = options[:callback] || true
|
26
49
|
@_pretty_print = options[:pretty] || false
|
27
|
-
|
50
|
+
|
28
51
|
# Only copy instance variables if there is a scope and presence of Rails
|
29
52
|
copy_instance_variables_from(@_scope) if @_scope
|
30
53
|
end
|
31
|
-
|
54
|
+
|
55
|
+
# Public: Takes a block to generate the JSON structure by calling method_missing
|
56
|
+
# on all members passed to it through the block.
|
57
|
+
#
|
58
|
+
# args - An array of values passed to JSONBuilder::Value.
|
59
|
+
# block - Yielding a block to generate the JSON.
|
60
|
+
#
|
61
|
+
# Returns nothing.
|
32
62
|
def compile(*args, &block)
|
33
63
|
instance_exec(*args, &block)
|
34
64
|
end
|
35
|
-
|
65
|
+
|
66
|
+
# Public: Takes a set number of items to generate a plain JSON array response.
|
67
|
+
#
|
68
|
+
# Returns instance of JSONBuilder::Elements.
|
36
69
|
def array(items, &block)
|
37
70
|
@_array = Elements.new(@_scope, items, &block)
|
38
71
|
end
|
39
|
-
|
40
|
-
#
|
72
|
+
|
73
|
+
# Public: Called anytime the compiler is passed JSON keys,
|
74
|
+
# first checks to see if the parent object contains the method like
|
75
|
+
# a Rails helper.
|
76
|
+
#
|
77
|
+
# key_name - The key for the JSON member.
|
78
|
+
# args - An array of values passed to JSONBuilder::Value.
|
79
|
+
# block - Yielding any block passed to the element.
|
80
|
+
#
|
81
|
+
# Returns nothing.
|
41
82
|
def method_missing(key_name, *args, &block)
|
42
83
|
if @_scope.respond_to?(key_name) && !ignore_scope_methods.include?(key_name)
|
43
84
|
@_scope.send(key_name, *args, &block)
|
@@ -45,42 +86,90 @@ module JSONBuilder
|
|
45
86
|
key(key_name, *args, &block)
|
46
87
|
end
|
47
88
|
end
|
48
|
-
|
89
|
+
|
90
|
+
# Public: Generates the start of the JSON member. Useful if the key you are
|
91
|
+
# generating is dynamic.
|
92
|
+
#
|
93
|
+
# key - Used to generate the JSON member's key. Can be a String or Symbol.
|
94
|
+
# args - An array of values passed to JSONBuilder::Value.
|
95
|
+
# block - Yielding any block passed to the element.
|
96
|
+
#
|
97
|
+
# Examples
|
98
|
+
#
|
99
|
+
# key :hello, 'Hi'
|
100
|
+
# # => "hello": "Hi"
|
101
|
+
#
|
102
|
+
# key "item-#{rand(0, 500)}", "I'm random!"
|
103
|
+
# # => "item-250": "I'm random!"
|
104
|
+
#
|
105
|
+
# Returns instance of JSONBuilder::Member.
|
49
106
|
def key(key_name, *args, &block)
|
50
107
|
member = Member.new(key_name, @_scope, *args, &block)
|
51
108
|
@_members << member
|
52
109
|
member
|
53
110
|
end
|
54
|
-
|
111
|
+
|
112
|
+
# Public: Combines the output of the compiled members and the change
|
113
|
+
# there is a JSONP callback. This is what is returned in the response.
|
114
|
+
#
|
115
|
+
# Returns a String.
|
55
116
|
def finalize
|
56
117
|
include_callback to_s
|
57
118
|
end
|
58
|
-
|
59
|
-
#
|
119
|
+
|
120
|
+
# Public: Gathers the JSON structure and calls it's compiler within each
|
121
|
+
# instance.
|
122
|
+
#
|
123
|
+
# Returns a String.
|
60
124
|
def to_s
|
61
125
|
@_array ? @_array.to_s : "{#{@_members.collect(&:to_s).join(', ')}}"
|
62
126
|
end
|
63
|
-
|
127
|
+
|
64
128
|
private
|
65
|
-
|
129
|
+
|
130
|
+
# Private: Determines whether or not to include a JSONP callback in
|
131
|
+
# the response.
|
132
|
+
#
|
133
|
+
# json - The String representation of the JSON structure.
|
134
|
+
#
|
135
|
+
# Returns a String.
|
66
136
|
def include_callback(json)
|
67
137
|
@_callback && request_params[:callback] ? "#{request_params[:callback]}(#{pretty_print(json)})" : pretty_print(json)
|
68
138
|
end
|
69
|
-
|
139
|
+
|
140
|
+
# Private: Determines whether or not to pass the string through the a
|
141
|
+
# JSON prettifier to help with debugging.
|
142
|
+
#
|
143
|
+
# json - The String representation of the JSON structure.
|
144
|
+
#
|
145
|
+
# Returns a String.
|
70
146
|
def pretty_print(json)
|
71
147
|
@_pretty_print ? JSON.pretty_generate(JSON[json]) : json
|
72
148
|
end
|
73
|
-
|
149
|
+
|
150
|
+
# Private: Contains the params from the request.
|
151
|
+
#
|
152
|
+
# Returns a Hash.
|
74
153
|
def request_params
|
75
154
|
@_scope.respond_to?(:params) ? @_scope.params : {}
|
76
155
|
end
|
77
|
-
|
156
|
+
|
157
|
+
# Private: Takes all instance variables from the scope passed to it
|
158
|
+
# and makes them available to the block that gets compiled.
|
159
|
+
#
|
160
|
+
# object - The scope which contains the instance variables.
|
161
|
+
# exclude - Any instance variables that should not be set.
|
162
|
+
#
|
163
|
+
# Returns nothing.
|
78
164
|
def copy_instance_variables_from(object, exclude = []) #:nodoc:
|
79
165
|
vars = object.instance_variables.map(&:to_s) - exclude.map(&:to_s)
|
80
166
|
vars.each { |name| instance_variable_set(name.to_sym, object.instance_variable_get(name)) }
|
81
167
|
end
|
82
|
-
|
83
|
-
#
|
168
|
+
|
169
|
+
# Private: Array of instance variable names that should not be set for
|
170
|
+
# the scope.
|
171
|
+
#
|
172
|
+
# Returns an Array of Symbols.
|
84
173
|
def ignore_scope_methods
|
85
174
|
[:id]
|
86
175
|
end
|
@@ -1,15 +1,29 @@
|
|
1
1
|
module JSONBuilder
|
2
2
|
class Elements
|
3
3
|
attr_accessor :compilers
|
4
|
-
|
4
|
+
|
5
|
+
# Public: Creates a new instance of the Elements that generates
|
6
|
+
# an array of JSONBuilder::Member objects.
|
7
|
+
#
|
8
|
+
# scope - The view scope context for any variables.
|
9
|
+
# items - The array of elements to create values from.
|
10
|
+
# block - Yielding any block passed to the element.
|
11
|
+
#
|
12
|
+
# Raises InvalidArgument if the items passed does not respond to each.
|
13
|
+
# Returns a new instance of Elements.
|
5
14
|
def initialize(scope, items, &block)
|
15
|
+
raise InvalidArgument.new('items does not respond to each') unless items.respond_to?(:each)
|
16
|
+
|
6
17
|
@compilers = []
|
7
|
-
|
18
|
+
|
8
19
|
items.each do |item|
|
9
20
|
@compilers << Value.new(scope, item, &block)
|
10
21
|
end
|
11
22
|
end
|
12
|
-
|
23
|
+
|
24
|
+
# Public: Generates the array JSON block local values
|
25
|
+
#
|
26
|
+
# Returns a formated JSON String
|
13
27
|
def to_s
|
14
28
|
"[#{@compilers.collect(&:to_s).join(', ')}]"
|
15
29
|
end
|