pg_array_parser 0.0.8pre → 0.0.8pre2

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,5 +1,2 @@
1
- if RUBY_PLATFORM =~ /java/
2
- else
3
- require 'mkmf'
4
- create_makefile('pg_array_parser/pg_array_parser')
5
- end
1
+ require 'mkmf'
2
+ create_makefile('pg_array_parser/pg_array_parser')
@@ -1,3 +1,3 @@
1
1
  module PgArrayParser
2
- VERSION = '0.0.8pre'
2
+ VERSION = '0.0.8pre2'
3
3
  end
@@ -6,15 +6,26 @@ Gem::Specification.new do |gem|
6
6
  gem.email = ["git@danmcclain.net"]
7
7
  gem.description = %q{Simple library to parse PostgreSQL arrays into a array of strings}
8
8
  gem.summary = %q{Converts PostgreSQL array strings into arrays of strings}
9
- gem.homepage = ""
9
+ gem.homepage = "https://github.com/dockyard/pg_array_parser"
10
+
11
+ gem.files = [ 'CHANGELOG.md',
12
+ 'Gemfile',
13
+ 'README.md',
14
+ 'Rakefile',
15
+ 'lib/pg_array_parser.rb',
16
+ 'lib/pg_array_parser/version.rb',
17
+ 'pg_array_parser.gemspec',
18
+ 'spec/parser_spec.rb',
19
+ 'spec/spec_helper.rb'
20
+ ]
10
21
 
11
- gem.files = `git ls-files`.split($\)
12
22
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
13
23
  if RUBY_PLATFORM =~ /java/
14
- gem.files.delete('ext/pg_array_paser/extconf.rb')
15
- gem.files.delete('ext/pg_array_paser/pg_array_parser.c')
24
+ gem.files << 'ext/pg_array_parser/PgArrayParserEngine.java'
25
+ gem.files << 'ext/pg_array_parser/PgArrayParserEngineService.java'
16
26
  gem.files << 'lib/pg_array_parser.jar'
17
27
  else
28
+ gem.files << 'ext/pg_array_parser/pg_array_parser.c'
18
29
  gem.extensions = ['ext/pg_array_parser/extconf.rb']
19
30
  end
20
31
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg_array_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8pre
4
+ version: 0.0.8pre2
5
5
  prerelease: 5
6
6
  platform: ruby
7
7
  authors:
@@ -67,23 +67,18 @@ extensions:
67
67
  - ext/pg_array_parser/extconf.rb
68
68
  extra_rdoc_files: []
69
69
  files:
70
- - .gitignore
71
- - .travis.yml
72
70
  - CHANGELOG.md
73
71
  - Gemfile
74
72
  - README.md
75
73
  - Rakefile
76
- - ext/pg_array_parser/PgArrayParserEngine.java
77
- - ext/pg_array_parser/PgArrayParserEngineService.java
78
- - ext/pg_array_parser/extconf.rb
79
- - ext/pg_array_parser/pg_array_parser.c
80
- - lib/pg_array_parser.jar
81
74
  - lib/pg_array_parser.rb
82
75
  - lib/pg_array_parser/version.rb
83
76
  - pg_array_parser.gemspec
84
77
  - spec/parser_spec.rb
85
78
  - spec/spec_helper.rb
86
- homepage: ''
79
+ - ext/pg_array_parser/pg_array_parser.c
80
+ - ext/pg_array_parser/extconf.rb
81
+ homepage: https://github.com/dockyard/pg_array_parser
87
82
  licenses: []
88
83
  post_install_message:
89
84
  rdoc_options: []
data/.gitignore DELETED
@@ -1,21 +0,0 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
- Gemfile.lock
7
- InstalledFiles
8
- _yardoc
9
- coverage
10
- doc/
11
- lib/bundler/man
12
- pkg
13
- rdoc
14
- spec/reports
15
- test/tmp
16
- test/version_tmp
17
- tmp
18
- benchmark.rb
19
- bin/*
20
- .rbenv-version*
21
- lib/pg_array_parser.bundle
@@ -1,10 +0,0 @@
1
- rvm:
2
- - 1.8.7
3
- - 1.9.2
4
- - 1.9.3
5
- - jruby-18mode
6
- - jruby-19mode
7
-
8
- notifications:
9
- email:
10
- - travis@danmcclain.net
@@ -1,118 +0,0 @@
1
- package pgarrayparser;
2
-
3
- import org.jruby.*;
4
- import org.jruby.anno.JRubyClass;
5
- import org.jruby.anno.JRubyMethod;
6
- import org.jruby.runtime.ThreadContext;
7
- import org.jruby.runtime.builtin.IRubyObject;
8
-
9
- @JRubyClass(name = "PgArrayParser::PgArrayParserEngine")
10
- public class PgArrayParserEngine extends RubyObject {
11
-
12
- public PgArrayParserEngine(final Ruby runtime, RubyClass rubyClass) {
13
- super(runtime, rubyClass);
14
- }
15
-
16
- @JRubyMethod(name = "parse_pg_array")
17
- public RubyArray parse_pg_array( ThreadContext context, IRubyObject value) {
18
- String content = value.asJavaString();
19
- return parseData(context, content, 0);
20
- }
21
-
22
- private static RubyArray parseData( ThreadContext context, String content, int index)
23
- {
24
- RubyArray items = RubyArray.newArray(context.getRuntime());
25
-
26
- for( int x = index; x < content.length(); x++ ) {
27
-
28
- char token = content.charAt(x);
29
-
30
- switch (token) {
31
- case '{':
32
- x = parseArrayContents( context, items, content, x + 1 );
33
- break;
34
- case '}':
35
- return items;
36
- }
37
-
38
- }
39
-
40
- return items;
41
- }
42
-
43
- private static int parseArrayContents( ThreadContext context, RubyArray items, String content, int index ) {
44
-
45
- StringBuilder currentItem = new StringBuilder();
46
- boolean isEscaping = false;
47
- boolean isQuoted = false;
48
- boolean wasQuoted = false;
49
-
50
- int x = index;
51
-
52
- for(; x < content.length(); x++ ) {
53
-
54
- char token = content.charAt(x);
55
-
56
- if ( isEscaping ) {
57
- currentItem.append( token );
58
- isEscaping = false;
59
- } else {
60
- if ( isQuoted ) {
61
- switch (token) {
62
- case '"':
63
- isQuoted = false;
64
- wasQuoted = true;
65
- break;
66
- case '\\':
67
- isEscaping = true;
68
- break;
69
- default:
70
- currentItem.append(token);
71
- }
72
- } else {
73
- switch (token) {
74
- case '\\':
75
- isEscaping = true;
76
- break;
77
- case ',':
78
- addItem(context, items, currentItem, wasQuoted);
79
- currentItem = new StringBuilder();
80
- wasQuoted = false;
81
- break;
82
- case '"':
83
- isQuoted = true;
84
- break;
85
- case '{':
86
- RubyArray internalItems = RubyArray.newArray(context.getRuntime());
87
- x = parseArrayContents( context, internalItems, content, x + 1 );
88
- items.add(internalItems);
89
- break;
90
- case '}':
91
- addItem(context, items, currentItem, wasQuoted);
92
- return x;
93
- default:
94
- currentItem.append(token);
95
- }
96
- }
97
- }
98
-
99
- }
100
-
101
- return x;
102
- }
103
-
104
- private static void addItem( ThreadContext context, RubyArray items, StringBuilder builder, boolean quoted ) {
105
- String value = builder.toString();
106
-
107
- if ( !quoted && value.length() == 0 ) {
108
- return;
109
- }
110
-
111
- if ( !quoted && "NULL".equalsIgnoreCase( value ) ) {
112
- items.add(context.getRuntime().getNil());
113
- } else {
114
- items.add(RubyString.newString( context.getRuntime(), value ));
115
- }
116
- }
117
-
118
- }
@@ -1,26 +0,0 @@
1
- package pgarrayparser;
2
-
3
- import org.jruby.Ruby;
4
- import org.jruby.RubyClass;
5
- import org.jruby.RubyModule;
6
- import org.jruby.runtime.ObjectAllocator;
7
- import org.jruby.runtime.builtin.IRubyObject;
8
- import org.jruby.runtime.load.BasicLibraryService;
9
-
10
- import java.io.IOException;
11
-
12
- public class PgArrayParserEngineService implements BasicLibraryService {
13
-
14
- public boolean basicLoad(Ruby runtime) throws IOException {
15
-
16
- RubyModule pgArrayParser = runtime.defineModule("PgArrayParser");
17
- RubyClass pgArrayParserEngine = pgArrayParser.defineClassUnder("PgArrayParserEngine", runtime.getObject(), new ObjectAllocator() {
18
- public IRubyObject allocate(Ruby runtime, RubyClass rubyClass) {
19
- return new PgArrayParserEngine(runtime, rubyClass);
20
- }
21
- });
22
-
23
- pgArrayParserEngine.defineAnnotatedMethods(PgArrayParserEngine.class);
24
- return true;
25
- }
26
- }
Binary file