mongo-ejson 0.2.1 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7fe75002ec17489608405072b1cf5e19643bce4732f97fc74c42a7d4c77f331a
4
- data.tar.gz: 9ffd4f54c57599d7c97081f6fdf7ee27bd3075bb7ae95cf659910d9e20f1a8af
3
+ metadata.gz: b709e3ac5baabde6b8be18306f60950025d62f69cd51081566598b72edb8206c
4
+ data.tar.gz: b2adf3445e21d7135302ea6826e8658cb5ad942e4432b411a5e982a92eb4d1de
5
5
  SHA512:
6
- metadata.gz: 4def483883272fd0938a362fd6edd41131f4b9e633aefca1ab3b2f793f9078730eb0026e0010cc602c4152b68faa52a02edb790bef5a6951a714880d32135c9a
7
- data.tar.gz: 17cf8d185b2dcfa62e654b6752cba2f0ebd4eba6c0e2665b98117b19698c72786f035ed23f950d4b9abe059c2f4d38527587c12276487ddb9e57ca2e8180c38d
6
+ metadata.gz: 9405d00a765d0e4914373e7a8e9537c3cabdce29d72d2147b456b47f5f7f2045f149be2d3625ba633cae86abe138064385adf00052c33019e6fedbdf9cd10eb0
7
+ data.tar.gz: dac9dae1f68f10f71f69c17587e3cfe4e0104aa65838a375ccde514c16941b7ed213a28f5885227396bb7314f110901e79adca45b104455e7d37e3f5976d2bdb
data/.gitignore CHANGED
@@ -6,6 +6,7 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ *.gem
9
10
 
10
11
  # rspec failure tracking
11
12
  .rspec_status
@@ -0,0 +1,34 @@
1
+ inherit_from: .rubocop_todo.yml
2
+
3
+ AllCops:
4
+ Exclude:
5
+ - 'src/**/*'
6
+ - 'vendor/bundle/**/*'
7
+
8
+ Metrics/LineLength:
9
+ Max: 120
10
+
11
+ Layout/EndOfLine:
12
+ EnforcedStyle: lf
13
+
14
+ Style/SymbolArray:
15
+ EnforcedStyle: brackets
16
+
17
+ Style/TrailingCommaInHashLiteral:
18
+ EnforcedStyleForMultiline: consistent_comma
19
+
20
+ Style/EmptyMethod:
21
+ EnforcedStyle: expanded
22
+
23
+ Metrics/BlockLength:
24
+ Exclude:
25
+ - '*.gemspec'
26
+ ExcludedMethods:
27
+ - describe
28
+
29
+ Style/FrozenStringLiteralComment:
30
+ EnforcedStyle: when_needed
31
+
32
+ Layout/AlignHash:
33
+ EnforcedHashRocketStyle: table
34
+ EnforcedColonStyle: table
@@ -0,0 +1,13 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2019-02-07 17:38:30 +0300 using RuboCop version 0.63.1.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ Style/FrozenStringLiteralComment:
10
+ Enabled: false
11
+
12
+ Style/Documentation:
13
+ Enabled: false
@@ -0,0 +1 @@
1
+ 2.6.1
@@ -1,9 +1,13 @@
1
- ---
2
1
  sudo: false
3
2
  language: ruby
4
3
  cache: bundler
5
4
  rvm:
5
+ - 2.7
6
6
  - 2.6
7
7
  - 2.5
8
8
  - jruby-9.2
9
- before_install: gem install bundler -v 2.0.1
9
+ before_install:
10
+ - gem install bundler -v 2.0.1
11
+ script:
12
+ - bundle exec rspec
13
+ - bundle exec rubocop
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in mongo-ejson.gemspec
4
4
  gemspec
@@ -1,28 +1,48 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mongo-ejson (0.2.1)
4
+ mongo-ejson (0.2.6)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- bson (4.4.2)
10
- bson (4.4.2-java)
11
- diff-lcs (1.3)
12
- rake (10.5.0)
13
- rspec (3.8.0)
14
- rspec-core (~> 3.8.0)
15
- rspec-expectations (~> 3.8.0)
16
- rspec-mocks (~> 3.8.0)
17
- rspec-core (3.8.0)
18
- rspec-support (~> 3.8.0)
19
- rspec-expectations (3.8.2)
9
+ ast (2.4.1)
10
+ bson (4.9.2)
11
+ bson (4.9.2-java)
12
+ diff-lcs (1.4.2)
13
+ parallel (1.19.2)
14
+ parser (2.7.1.4)
15
+ ast (~> 2.4.1)
16
+ rainbow (3.0.0)
17
+ rake (13.0.1)
18
+ regexp_parser (1.7.1)
19
+ rexml (3.2.4)
20
+ rspec (3.9.0)
21
+ rspec-core (~> 3.9.0)
22
+ rspec-expectations (~> 3.9.0)
23
+ rspec-mocks (~> 3.9.0)
24
+ rspec-core (3.9.2)
25
+ rspec-support (~> 3.9.3)
26
+ rspec-expectations (3.9.2)
20
27
  diff-lcs (>= 1.2.0, < 2.0)
21
- rspec-support (~> 3.8.0)
22
- rspec-mocks (3.8.0)
28
+ rspec-support (~> 3.9.0)
29
+ rspec-mocks (3.9.1)
23
30
  diff-lcs (>= 1.2.0, < 2.0)
24
- rspec-support (~> 3.8.0)
25
- rspec-support (3.8.0)
31
+ rspec-support (~> 3.9.0)
32
+ rspec-support (3.9.3)
33
+ rubocop (0.86.0)
34
+ parallel (~> 1.10)
35
+ parser (>= 2.7.0.1)
36
+ rainbow (>= 2.2.2, < 4.0)
37
+ regexp_parser (>= 1.7)
38
+ rexml
39
+ rubocop-ast (>= 0.0.3, < 1.0)
40
+ ruby-progressbar (~> 1.7)
41
+ unicode-display_width (>= 1.4.0, < 2.0)
42
+ rubocop-ast (0.0.3)
43
+ parser (>= 2.7.0.1)
44
+ ruby-progressbar (1.10.1)
45
+ unicode-display_width (1.7.0)
26
46
 
27
47
  PLATFORMS
28
48
  java
@@ -32,8 +52,9 @@ DEPENDENCIES
32
52
  bson
33
53
  bundler (~> 2.0)
34
54
  mongo-ejson!
35
- rake (~> 10.0)
55
+ rake (~> 13.0)
36
56
  rspec (~> 3.0)
57
+ rubocop (~> 0.63)
37
58
 
38
59
  BUNDLED WITH
39
- 2.0.1
60
+ 2.1.4
data/README.md CHANGED
@@ -42,50 +42,40 @@ Just add it to your `application.js`
42
42
  ## Requirements
43
43
 
44
44
  Runtime:
45
- * Ruby 2.5+
46
- * JRuby 9.2+
45
+
46
+ - Ruby 2.5+
47
+ - JRuby 9.2+
47
48
 
48
49
  Development:
49
- * [canopy](https://github.com/jcoglan/canopy) from master branch
50
+
51
+ - [canopy](https://github.com/jcoglan/canopy) from master branch
50
52
 
51
53
  ## Supported literals
52
54
 
53
- * `undefined`
54
- * `MinKey`
55
- * `MaxKey`
56
- * `ObjectId(<object_id_hex_string>)`
57
- * `BinData(<type_string>, <bindata_base64_string>)`
58
- * `BinData(<type_integer>, <base64_bindata>)`
59
- * `Timestamp(<time_interger>, <increment_integer>)`
60
- * `NumberLong(<value_string>)`
61
- * `NumberLong(<value_integer>)`
62
- * `NumberDecimal(<value_string>)`
63
- * `NumberDecimal(<value_number>)`
64
- * `ISODate(<time_iso8601_string>)`
65
- * `ISODate(<time_interger>)`
66
- * `new Date(<time_iso8601_string>)`
67
- * `new Date(<time_interger>)`
68
- * `/<regexp>/<options>`
69
- * `DBRef(<name_string>, <object_id_hex_string>)`
55
+ - `undefined`
56
+ - `MinKey`
57
+ - `MaxKey`
58
+ - `ObjectId(<object_id_hex_string>)`
59
+ - `BinData(<type_string>, <bindata_base64_string>)`
60
+ - `BinData(<type_integer>, <base64_bindata>)`
61
+ - `Timestamp(<time_interger>, <increment_integer>)`
62
+ - `NumberLong(<value_string>)`
63
+ - `NumberLong(<value_integer>)`
64
+ - `NumberDecimal(<value_string>)`
65
+ - `NumberDecimal(<value_number>)`
66
+ - `ISODate(<time_iso8601_string>)`
67
+ - `ISODate(<time_interger>)`
68
+ - `new Date(<time_iso8601_string>)`
69
+ - `new Date(<time_interger>)`
70
+ - `/<regexp>/<options>`
71
+ - `DBRef(<name_string>, <object_id_hex_string>)`
70
72
 
71
73
  ## Supported JSON extensions:
72
74
 
73
- * Single quoted strings
74
- * Single line comments `//`
75
+ - Single quoted strings
76
+ - Single line comments `//`
77
+ - Non-quoted key names: `{_id: 123}`
75
78
 
76
79
  ## Planned JSON extensions:
77
80
 
78
- * Non-quoted key names: `{_id: 123}`
79
- * Multi-line comments: `/* */`
80
-
81
- ## Issues
82
-
83
- * String: following not escaped chars should fail, but pass
84
-
85
- * Backspace (must be replaced with `\b`). no fixture
86
- * Form feed (must be replaced with `\f`), no fixture
87
- * Newline (must be replaced with `\n`)
88
- * Carriage return (must be replaced with `\r`), no fixture
89
- * Tab (must be replaced with `\t`)
90
-
91
-
81
+ - Multi-line comments: `/* */`
data/Rakefile CHANGED
@@ -1,26 +1,26 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
3
  require 'fileutils'
4
4
 
5
5
  CANOPY_BIN = ENV.fetch('CANOPY_BIN') { 'canopy' }
6
6
 
7
7
  RSpec::Core::RakeTask.new(:spec)
8
8
 
9
- task :default => :spec
9
+ task default: :spec
10
10
 
11
11
  task :compile_js do
12
- sh %{ #{CANOPY_BIN} src/ejson.peg --lang javascript }
12
+ sh %( #{CANOPY_BIN} src/ejson.peg --lang javascript )
13
13
  end
14
14
 
15
15
  task :compile_ruby do
16
- sh %{ #{CANOPY_BIN} src/ejson.peg --lang ruby }
16
+ sh %( #{CANOPY_BIN} src/ejson.peg --lang ruby )
17
17
  end
18
18
 
19
- desc "Build and run test suite"
20
- task :test => [:compile_ruby, :spec] do
19
+ desc 'Build and run test suite'
20
+ task test: [:compile_ruby, :spec] do
21
21
  end
22
22
 
23
- desc "Prepare assets"
24
- task :assets => [:test, :compile_js] do
23
+ desc 'Prepare assets'
24
+ task assets: [:test, :compile_js, :compile_ruby] do
25
25
  mv 'src/ejson.js', 'vendor/assets/javascripts/ejson.js'
26
26
  end
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "bundler/setup"
4
- require "ejson"
3
+ require 'bundler/setup'
4
+ require 'ejson'
5
5
 
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
@@ -10,5 +10,5 @@ require "ejson"
10
10
  # require "pry"
11
11
  # Pry.start
12
12
 
13
- require "irb"
13
+ require 'irb'
14
14
  IRB.start(__FILE__)
@@ -1,46 +1,47 @@
1
-
2
- lib = File.expand_path("../lib", __FILE__)
1
+ lib = File.expand_path('lib', __dir__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "ejson/version"
3
+ require 'ejson/version'
5
4
 
6
5
  Gem::Specification.new do |spec|
7
- spec.name = "mongo-ejson"
6
+ spec.name = 'mongo-ejson'
8
7
  spec.version = EJSON::VERSION
9
- spec.authors = ["Alex Bondar"]
10
- spec.email = ["mongo-ejson-gem@db-ai.co"]
8
+ spec.authors = ['Alex Bondar']
9
+ spec.email = ['mongo-ejson-gem@db-ai.co']
11
10
 
12
- spec.summary = %q{MongoDB Extended JS(ON) parser}
13
- spec.description = %q{Parses MongoDB favoured JS(ON) string into objects}
14
- spec.homepage = "https://gibhub.com/db-ai/mongo-ejson"
11
+ spec.summary = 'MongoDB Extended JS(ON) parser'
12
+ spec.description = 'Parses MongoDB favoured JS(ON) string into objects'
13
+ spec.homepage = 'https://gibhub.com/db-ai/mongo-ejson'
15
14
 
16
15
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the
17
16
  # 'allowed_push_host' to allow pushing to a single host or delete this
18
17
  # section to allow pushing to any host.
19
18
  if spec.respond_to?(:metadata)
20
- spec.metadata["allowed_push_host"] = "https://rubygems.org/"
19
+ spec.metadata['allowed_push_host'] = 'https://rubygems.org/'
21
20
 
22
- spec.metadata["homepage_uri"] = spec.homepage
23
- spec.metadata["source_code_uri"] = "https://gibhub.com/db-ai/mongo-ejson"
24
- spec.metadata["changelog_uri"] = "https://gibhub.com/db-ai/mongo-ejson"
21
+ spec.metadata['homepage_uri'] = spec.homepage
22
+ spec.metadata['source_code_uri'] = 'https://gibhub.com/db-ai/mongo-ejson'
23
+ spec.metadata['changelog_uri'] = 'https://gibhub.com/db-ai/mongo-ejson'
25
24
  else
26
- raise "RubyGems 2.0 or newer is required to protect against " \
27
- "public gem pushes."
25
+ raise 'RubyGems 2.0 or newer is required to protect against ' \
26
+ 'public gem pushes.'
28
27
  end
29
28
 
30
29
  # Specify which files should be added to the gem when it is released.
31
30
  # The `git ls-files -z` loads the files in the RubyGem that have been
32
31
  # added into git.
33
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
32
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
34
33
  `git ls-files -z`
35
34
  .split("\x0")
36
35
  .reject { |f| f.match(%r{^(test|spec|features)/}) }
37
36
  end
38
- spec.bindir = "exe"
37
+ spec.bindir = 'exe'
39
38
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
40
- spec.require_paths = ["lib"]
39
+ spec.require_paths = ['lib']
40
+
41
+ spec.add_development_dependency 'bundler', '~> 2.0'
42
+ spec.add_development_dependency 'rake', '~> 13.0'
43
+ spec.add_development_dependency 'rspec', '~> 3.0'
44
+ spec.add_development_dependency 'rubocop', '~> 0.63'
41
45
 
42
- spec.add_development_dependency "bundler", "~> 2.0"
43
- spec.add_development_dependency "rake", "~> 10.0"
44
- spec.add_development_dependency "rspec", "~> 3.0"
45
- spec.add_development_dependency "bson"
46
+ spec.add_development_dependency 'bson'
46
47
  end
@@ -23,14 +23,20 @@ class EJSON
23
23
  end
24
24
 
25
25
  private
26
+
26
27
  def boot_bson
27
28
  return if defined? ::BSON
28
- require 'bson' rescue nil
29
29
 
30
- unless defined? ::BSON
31
- raise "Can't find constant ::BSON. Seems like gem 'bson' is not " \
32
- "loaded. Make sure it's available in your bundle."
30
+ begin
31
+ require 'bson'
32
+ rescue StandardError
33
+ nil
33
34
  end
35
+
36
+ return if defined? ::BSON
37
+
38
+ raise "Can't find constant ::BSON. Seems like gem 'bson' is not " \
39
+ "loaded. Make sure it's available in your bundle."
34
40
  end
35
41
  end
36
42
  end
@@ -1,37 +1,40 @@
1
1
  module ParserAction
2
2
  module AbstractJSON
3
3
  # JSON Entities
4
- def make_root(input, start, _end, elements)
4
+ def make_root(input, starts_at, _ends_at, elements)
5
5
  end
6
6
 
7
- def make_object(input, start, _end, elements)
7
+ def make_object(input, starts_at, _ends_at, elements)
8
8
  end
9
9
 
10
- def make_pair(input, start, _end, elements)
10
+ def make_pair(input, starts_at, _ends_at, elements)
11
11
  end
12
12
 
13
- def make_empty_object(input, start, _end, elements)
13
+ def make_empty_object(input, starts_at, _ends_at, elements)
14
14
  end
15
15
 
16
- def make_string(input, start, _end, elements)
16
+ def make_string(input, starts_at, _ends_at, elements)
17
17
  end
18
18
 
19
- def make_array(input, start, _end, elements)
19
+ def make_identifier(input, starts_at, _ends_at, elements)
20
20
  end
21
21
 
22
- def make_empty_array(input, start, _end, elements)
22
+ def make_array(input, starts_at, _ends_at, elements)
23
23
  end
24
24
 
25
- def make_number(input, start, _end, elements)
25
+ def make_empty_array(input, starts_at, _ends_at, elements)
26
26
  end
27
27
 
28
- def make_null(input, start, _end)
28
+ def make_number(input, starts_at, _ends_at, elements)
29
29
  end
30
30
 
31
- def make_true(input, start, _end)
31
+ def make_null(input, starts_at, _ends_at)
32
32
  end
33
33
 
34
- def make_false(input, start, _end)
34
+ def make_true(input, starts_at, _ends_at)
35
+ end
36
+
37
+ def make_false(input, starts_at, _ends_at)
35
38
  end
36
39
  end
37
40
  end