oj 3.7.6 → 3.7.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.
@@ -1,51 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # encoding: UTF-8
3
-
4
- $: << File.dirname(__FILE__)
5
-
6
- require 'helper'
7
-
8
- class Handler
9
- def initialize
10
- @state = []
11
- end
12
-
13
- def hash_start
14
- @state << {}
15
- @state.last
16
- end
17
-
18
- def hash_end
19
- @state.pop
20
- end
21
-
22
- def hash_set(h,k,v)
23
- h.store(k,v)
24
- end
25
-
26
- def array_start
27
- @state << []
28
- @state.last
29
- end
30
-
31
-
32
- def array_end
33
- @state.pop
34
- end
35
-
36
- def array_append(a,v)
37
- a << v
38
- end
39
-
40
- def add_value(v)
41
- p v
42
- end
43
-
44
- def error(message, line, column); p "ERROR: #{message}" end
45
- end
46
-
47
- $handler = Handler.new
48
-
49
- IO.popen("cat tst") { |p| puts Oj.sc_parse($handler, p) }
50
-
51
- #File.open('tst', 'r') { |file| Oj.sc_parse($handler, file) }
@@ -1,10 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- #!/usr/bin/env ruby
4
- # encoding: UTF-8
5
-
6
- $: << File.dirname(__FILE__)
7
-
8
- require 'helper'
9
-
10
-
@@ -1,46 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- #!/usr/bin/env ruby
4
- # encoding: UTF-8
5
-
6
- $: << File.dirname(__FILE__)
7
- %w(lib ext test).each do |dir|
8
- $LOAD_PATH.unshift File.expand_path("../../#{dir}", __FILE__)
9
- end
10
-
11
- require 'oj'
12
- require 'stringio'
13
-
14
- class Parser < Oj::Saj
15
-
16
- def parse(json)
17
- Oj.saj_parse(self, StringIO.new(json))
18
- end
19
-
20
- def hash_start(key)
21
- puts "START: #{key}"
22
- end
23
-
24
- def error(message, line, column)
25
- puts "Error callback: #{message}"
26
- end
27
-
28
- end
29
-
30
- parser = Parser.new
31
-
32
- begin
33
- # truncated JSON, Oj.saj_parse raises, #error not called
34
- parser.parse('{"foo{"bar":')
35
- rescue Exception => e
36
- puts "*** #{e.class}: #{e.message}"
37
- end
38
-
39
- puts "\n\n"
40
-
41
- begin
42
- # invalid JSON, doesn't raise an error
43
- parser.parse('{"foo":{"bar":}')
44
- rescue Exception => e
45
- puts "*** #{e.class}: #{e.message}"
46
- end
@@ -1,32 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # encoding: UTF-8
3
-
4
- %w(lib ext test).each do |dir|
5
- $LOAD_PATH.unshift File.expand_path("../../#{dir}", __FILE__)
6
- end
7
-
8
- require 'oj'
9
-
10
- def create_item(doc)
11
- #puts "#{doc.fetch('/id')}: #{doc.fetch('/labels/it/value')} - #{doc.fetch('/descriptions/it/value')}"
12
- doc.fetch('/id')
13
- doc.fetch('/labels/it/value')
14
- doc.fetch('/descriptions/it/value')
15
- end
16
-
17
- 100.times { |i|
18
- File.open('dump_10k.json') { |f|
19
- f.each { |line|
20
- #Oj::Doc.open(line) { |doc|
21
- doc = Oj::Doc.open(line)
22
- begin
23
- create_item(doc) if doc.fetch('/type') == 'item'
24
- rescue Exception => e
25
- puts "*** #{e.class}: #{e.message}"
26
- end
27
- doc.close
28
- #}
29
- }
30
- }
31
- puts i
32
- }
@@ -1,24 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # encoding: UTF-8
3
-
4
- %w(lib ext test).each do |dir|
5
- $LOAD_PATH.unshift File.expand_path("../../#{dir}", __FILE__)
6
- end
7
-
8
- require 'oj'
9
-
10
- def create_item(doc)
11
- item_id = doc['source']
12
- # ...
13
- puts item_id
14
- end
15
-
16
- File.open('log.json') { |f|
17
- Oj::load(f, mode: :compat) { |doc|
18
- begin
19
- create_item(doc) if doc['msgType'] == 1
20
- rescue Exception => e
21
- puts "*** #{e.class}: #{e.message}"
22
- end
23
- }
24
- }
@@ -1,111 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # encoding: UTF-8
3
-
4
- $VERBOSE = true
5
-
6
- %w(lib ext test).each do |dir|
7
- $LOAD_PATH.unshift File.expand_path("../../#{dir}", __FILE__)
8
- end
9
-
10
- require 'sqlite3'
11
- require 'active_record'
12
- require 'oj'
13
- require 'representable'
14
- require 'representable/json'
15
- require 'multi_json'
16
- MultiJson.use(:oj)
17
- Oj.default_options = {mode: :object, indent: 2}
18
-
19
- #ActiveRecord::Base.logger = Logger.new(STDERR)
20
-
21
- ActiveRecord::Base.establish_connection(
22
- :adapter => "sqlite3",
23
- :database => ":memory:"
24
- )
25
-
26
- ActiveRecord::Schema.define do
27
- create_table :users do |t|
28
- t.string "first_name"
29
- t.string "last_name"
30
- t.string "picture"
31
- t.integer "state", null: false
32
- t.integer "visible", default: 1, null: false
33
- t.integer "role", null: false
34
- t.string "position"
35
- t.integer "responded", default: 0
36
- t.string "slug"
37
- end
38
- end
39
-
40
- class User < ActiveRecord::Base
41
- end
42
- User.find_or_create_by(first_name: "John", last_name: "Smith",role:1,id:1,state: 0)
43
- User.find_or_create_by(first_name: "John", last_name: "Smith",role:1,id:2,state: 0)
44
-
45
-
46
- class PersonDecorator < Representable::Decorator
47
- include Representable::JSON
48
- include Representable::Hash
49
-
50
- property :id
51
-
52
- property :first_name
53
-
54
- property :last_name,
55
- default: nil
56
-
57
- property :name,
58
- getter: ->(_){ "#{first_name} #{last_name}".strip },
59
- writeable: false
60
-
61
- property :visible,
62
- render_filter: lambda{ |value, _| !value.zero? },
63
- parse_filter: lambda{ |value, _| value ? 1 : 0 },
64
- default: 1
65
-
66
- property :role,
67
- render_filter: lambda{ |value, _| { 1 => 'staff', 2 => 'manager' }[value].to_s },
68
- writeable: false
69
-
70
- property :position
71
-
72
- nested :image, skip_render: lambda{ |options| options[:represented].picture.nil? } do
73
- property :picture, as: :url, writeable: false
74
- end
75
-
76
- end
77
-
78
- class PersonViewModel
79
-
80
- def initialize(person, organization)
81
- @users = User.all
82
- @person = person
83
- @organization = organization
84
- end
85
-
86
- def to_json(options={})
87
- PersonDecorator.represent(@users.to_a)
88
- end
89
-
90
- def json_with_decorator(options={})
91
- PersonDecorator.new(person).to_json
92
- end
93
-
94
- def person
95
- @person
96
- end
97
- end
98
-
99
- class EmployeeViewModel < PersonViewModel
100
-
101
- end
102
-
103
- employee = User.find(1)
104
- emp_json = EmployeeViewModel.new(employee,nil)
105
- puts emp_json.to_json.to_json
106
- puts emp_json.json_with_decorator
107
- Oj.mimic_JSON
108
- # when i use Oj.mimic_JSON script crash
109
- # when i dont use Oj.mimic_JSON then dont use correct decorator
110
- puts Oj.dump(emp_json)
111
- puts Oj.dump(emp_json.to_json)
@@ -1,11 +0,0 @@
1
- %w(lib ext test).each do |dir|
2
- $LOAD_PATH.unshift File.expand_path("../../#{dir}", __FILE__)
3
- end
4
- require 'oj'
5
- require 'json'
6
-
7
- Oj::Doc.open([{:name => "T-Shirt"}].to_json) do |doc|
8
- doc.each_child do |child|
9
- p child.fetch("name")
10
- end
11
- end
data/test/io.rb DELETED
@@ -1,48 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # encoding: UTF-8
3
-
4
- $: << File.dirname(__FILE__)
5
-
6
- require 'helper'
7
-
8
- class Handler
9
- def initialize
10
- @state = []
11
- end
12
-
13
- def hash_start
14
- @state << {}
15
- @state.last
16
- end
17
-
18
- def hash_end
19
- @state.pop
20
- end
21
-
22
- def hash_set(h,k,v)
23
- h.store(k,v)
24
- end
25
-
26
- def array_start
27
- @state << []
28
- @state.last
29
- end
30
-
31
-
32
- def array_end
33
- @state.pop
34
- end
35
-
36
- def array_append(a,v)
37
- a << v
38
- end
39
-
40
- def error(message, line, column); p "ERROR: #{message}" end
41
- end
42
-
43
- handler = Handler.new
44
- def handler.add_value(v)
45
- p v
46
- end
47
-
48
- Oj.sc_parse(handler, StringIO.new('{"a":"b","c":[1,2,{"d":"e"}]}[4,5,6]'))
@@ -1,27 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # encoding: UTF-8
3
-
4
- $: << File.join(File.dirname(__FILE__), '..')
5
-
6
- require 'helper'
7
- require 'oj/active_support_helper'
8
-
9
- class ObjectFolder < Minitest::Test
10
- def setup
11
- @default_options = Oj.default_options
12
- end
13
-
14
- def teardown
15
- Oj.default_options = @default_options
16
- end
17
-
18
- def test_as_json
19
- Oj.mimic_JSON()
20
- dt = DateTime.now()
21
-
22
- json = dt.to_json()
23
-
24
- puts json
25
- end
26
-
27
- end
@@ -1,20 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # encoding: UTF-8
3
-
4
- $: << File.join(File.dirname(__FILE__), "../lib")
5
- $: << File.join(File.dirname(__FILE__), "../ext")
6
-
7
- require 'oj'
8
-
9
- h = {
10
- 'a' => 1,
11
- 'b' => 2,
12
- 'c' => 3,
13
- 'd' => 4,
14
- 'e' => 5,
15
- }
16
-
17
- 10000.times do
18
- GC.start
19
- Oj.dump(h)
20
- end
@@ -1,16 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # encoding: UTF-8
3
-
4
- %w(lib ext test).each do |dir|
5
- $LOAD_PATH.unshift File.expand_path("../../#{dir}", __FILE__)
6
- end
7
-
8
- require 'oj'
9
-
10
-
11
- Thread.new do
12
- string_io = StringIO.new('{"foo":"bar"}')
13
- Oj.load(string_io)
14
- string_io.rewind
15
- puts string_io.read
16
- end.join
@@ -1,20 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # encoding: UTF-8
3
-
4
- $: << File.join(File.dirname(__FILE__), "../lib")
5
- $: << File.join(File.dirname(__FILE__), "../ext")
6
-
7
- require 'oj'
8
- require 'stringio'
9
- require 'parallel'
10
-
11
- h = { a: 1, b: nil, c: 3 }
12
- outputs = Parallel.map((0...30).to_a, in_process: 30) do |i|
13
- io = StringIO.new('wb+')
14
- Oj.to_stream(io, h, omit_nil: false)
15
- io.string
16
- end
17
-
18
- outputs.each do |output|
19
- puts output
20
- end
@@ -1,50 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # encoding: UTF-8
3
-
4
- $VERBOSE = true
5
-
6
- here = File.expand_path(File.dirname(__FILE__))
7
- $: << File.dirname(__FILE__)
8
- $: << File.join(File.dirname(here), 'ext')
9
- $: << File.join(File.dirname(here), 'lib')
10
-
11
- require "active_record"
12
- require "minitest/autorun"
13
- require "logger"
14
- require 'sidekiq/testing'
15
- require "rspec/mocks/minitest_integration"
16
- require 'oj'
17
-
18
- Oj.mimic_JSON
19
-
20
- Sidekiq::Testing.inline!
21
-
22
- # Ensure backward compatibility with Minitest 4
23
- Minitest::Test = MiniTest::Unit::TestCase unless defined?(Minitest::Test)
24
-
25
- # This connection will do for database-independent bug reports.
26
- ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:")
27
- ActiveRecord::Base.logger = Logger.new(STDOUT)
28
-
29
- ActiveRecord::Schema.define do
30
- create_table :posts, force: true do |t|
31
- end
32
- end
33
-
34
- class Post < ActiveRecord::Base
35
- end
36
-
37
- class MyWorker
38
- include Sidekiq::Worker
39
-
40
- def perform(post)
41
- end
42
- end
43
-
44
- class BugTest < Minitest::Test
45
- def test_as_json
46
- Post.arel_table
47
- dbl = instance_double("Post", id: 1)
48
- MyWorker.perform_async dbl
49
- end
50
- end