unidata 0.0.10 → 0.0.11
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/README.md +1 -1
- data/lib/unidata/connection.rb +6 -16
- data/lib/unidata/model.rb +12 -6
- data/lib/unidata/version.rb +1 -1
- data/spec/spec_helper.rb +11 -6
- data/spec/unidata/connection_spec.rb +1 -1
- data/spec/unidata/model_spec.rb +27 -0
- metadata +32 -10
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
UniData ORM [](http://travis-ci.org/jisraelsen/unidata) [](https://codeclimate.com/github/jisraelsen/unidata)
|
1
|
+
UniData ORM [](http://travis-ci.org/jisraelsen/unidata) [](https://coveralls.io/r/jisraelsen/unidata) [](https://codeclimate.com/github/jisraelsen/unidata)
|
2
2
|
===========
|
3
3
|
|
4
4
|
A simple ORM for Rocket's UniData database.
|
data/lib/unidata/connection.rb
CHANGED
@@ -32,43 +32,33 @@ module Unidata
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def exists?(filename, record_id)
|
35
|
-
exists = false
|
36
|
-
|
37
35
|
open_file(filename) do |file|
|
38
36
|
begin
|
39
|
-
file.read_field(record_id, 0)
|
40
|
-
exists = true
|
37
|
+
!!file.read_field(record_id, 0)
|
41
38
|
rescue Unidata::UniFileException
|
39
|
+
false
|
42
40
|
end
|
43
41
|
end
|
44
|
-
|
45
|
-
exists
|
46
42
|
end
|
47
43
|
|
48
44
|
def read(filename, record_id)
|
49
|
-
record = nil
|
50
|
-
|
51
45
|
open_file(filename) do |file|
|
52
46
|
begin
|
53
|
-
|
47
|
+
Unidata::UniDynArray.new(file.read(record_id))
|
54
48
|
rescue Unidata::UniFileException
|
49
|
+
nil
|
55
50
|
end
|
56
51
|
end
|
57
|
-
|
58
|
-
record
|
59
52
|
end
|
60
53
|
|
61
54
|
def read_field(filename, record_id, field)
|
62
|
-
value = nil
|
63
|
-
|
64
55
|
open_file(filename) do |file|
|
65
56
|
begin
|
66
|
-
|
57
|
+
file.read_field(record_id, field).to_s
|
67
58
|
rescue Unidata::UniFileException
|
59
|
+
nil
|
68
60
|
end
|
69
61
|
end
|
70
|
-
|
71
|
-
value
|
72
62
|
end
|
73
63
|
|
74
64
|
def write(filename, record_id, record)
|
data/lib/unidata/model.rb
CHANGED
@@ -3,17 +3,20 @@ module Unidata
|
|
3
3
|
class << self
|
4
4
|
attr_accessor :filename
|
5
5
|
|
6
|
+
def inherited(subclass)
|
7
|
+
subclass.instance_variable_set(:@fields, {})
|
8
|
+
end
|
9
|
+
|
6
10
|
def connection
|
7
11
|
Unidata.connection
|
8
12
|
end
|
9
13
|
|
10
14
|
def fields
|
11
|
-
|
12
|
-
@fields
|
13
|
-
|
15
|
+
if self < Unidata::Model
|
16
|
+
superclass.fields.merge @fields
|
17
|
+
else
|
18
|
+
@fields
|
14
19
|
end
|
15
|
-
|
16
|
-
@fields
|
17
20
|
end
|
18
21
|
|
19
22
|
def field?(name)
|
@@ -21,7 +24,7 @@ module Unidata
|
|
21
24
|
end
|
22
25
|
|
23
26
|
def field(index, name, type=String, options={})
|
24
|
-
fields[name.to_sym] = Field.new(index, name, type, options)
|
27
|
+
@fields[name.to_sym] = Field.new(index, name, type, options)
|
25
28
|
define_attribute_accessor(name)
|
26
29
|
define_attribute_finder(name)
|
27
30
|
end
|
@@ -108,6 +111,9 @@ module Unidata
|
|
108
111
|
end
|
109
112
|
end
|
110
113
|
|
114
|
+
@fields = {}
|
115
|
+
field 0, :id
|
116
|
+
|
111
117
|
def initialize(attributes={})
|
112
118
|
initialize_attributes
|
113
119
|
|
data/lib/unidata/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -1,15 +1,18 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
1
|
+
require 'simplecov'
|
2
|
+
require 'coveralls'
|
3
|
+
|
4
|
+
MultiJson.engine = :json_pure
|
5
|
+
|
6
|
+
SimpleCov.formatter = Coveralls::SimpleCov::Formatter
|
7
|
+
SimpleCov.start do
|
8
|
+
add_filter '/spec/'
|
6
9
|
end
|
7
10
|
|
8
11
|
require 'rspec'
|
9
12
|
require 'time'
|
10
13
|
require 'unidata'
|
11
14
|
|
12
|
-
def package_local_constructor klass
|
15
|
+
def package_local_constructor klass, *values
|
13
16
|
constructors = klass.java_class.declared_constructors
|
14
17
|
constructors.each do |c|
|
15
18
|
c.accessible = true
|
@@ -17,6 +20,8 @@ def package_local_constructor klass,*values
|
|
17
20
|
return c.new_instance(*values).to_java
|
18
21
|
rescue TypeError
|
19
22
|
false
|
23
|
+
rescue ArgumentError
|
24
|
+
false
|
20
25
|
end
|
21
26
|
end
|
22
27
|
raise TypeError,"found no matching constructor for " + klass.to_s + "(" + value.class + ")"
|
@@ -140,7 +140,7 @@ describe Unidata::Connection do
|
|
140
140
|
|
141
141
|
describe '#read' do
|
142
142
|
before(:each) do
|
143
|
-
@file = double('UniFile', :close => nil, :read =>
|
143
|
+
@file = double('UniFile', :close => nil, :read => '')
|
144
144
|
@session.stub(:open).and_return(@file)
|
145
145
|
|
146
146
|
connection.open
|
data/spec/unidata/model_spec.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
+
require 'set'
|
2
3
|
|
3
4
|
describe Unidata::Model do
|
4
5
|
subject { Unidata::Model }
|
@@ -15,6 +16,32 @@ describe Unidata::Model do
|
|
15
16
|
field 5, :status, String, :default => 'active'
|
16
17
|
end
|
17
18
|
|
19
|
+
class SubclassRecord < Record
|
20
|
+
self.filename = 'TESTTEMP'
|
21
|
+
|
22
|
+
field 6, :another_field
|
23
|
+
end
|
24
|
+
|
25
|
+
def create_field(index, name, type=String, options={})
|
26
|
+
Unidata::Field.new(index, name, type, options)
|
27
|
+
end
|
28
|
+
|
29
|
+
describe 'subclasses' do
|
30
|
+
it "should have the fields of it\'s superclass and it's own fields" do
|
31
|
+
SubclassRecord.fields.keys.to_set.should == [
|
32
|
+
:id,
|
33
|
+
:name,
|
34
|
+
:age,
|
35
|
+
:birth_date,
|
36
|
+
:employer,
|
37
|
+
:job_title,
|
38
|
+
:salary,
|
39
|
+
:status,
|
40
|
+
:another_field,
|
41
|
+
].to_set
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
18
45
|
describe '.connection' do
|
19
46
|
it 'returns the Unidata connection' do
|
20
47
|
Unidata.stub('connection').and_return(double('connection'))
|
metadata
CHANGED
@@ -2,57 +2,79 @@
|
|
2
2
|
name: unidata
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.11
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Jeremy Israelsen
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-08-07 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: jruby-openssl
|
16
|
-
version_requirements: &
|
16
|
+
version_requirements: &4664 !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
18
|
- - ! '>='
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: '0'
|
21
21
|
none: false
|
22
|
-
requirement: *
|
22
|
+
requirement: *4664
|
23
|
+
prerelease: false
|
24
|
+
type: :development
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: json_pure
|
27
|
+
version_requirements: &4682 !ruby/object:Gem::Requirement
|
28
|
+
requirements:
|
29
|
+
- - ! '>='
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: '0'
|
32
|
+
none: false
|
33
|
+
requirement: *4682
|
23
34
|
prerelease: false
|
24
35
|
type: :development
|
25
36
|
- !ruby/object:Gem::Dependency
|
26
37
|
name: rake
|
27
|
-
version_requirements: &
|
38
|
+
version_requirements: &4698 !ruby/object:Gem::Requirement
|
28
39
|
requirements:
|
29
40
|
- - ! '>='
|
30
41
|
- !ruby/object:Gem::Version
|
31
42
|
version: '0'
|
32
43
|
none: false
|
33
|
-
requirement: *
|
44
|
+
requirement: *4698
|
34
45
|
prerelease: false
|
35
46
|
type: :development
|
36
47
|
- !ruby/object:Gem::Dependency
|
37
48
|
name: rspec
|
38
|
-
version_requirements: &
|
49
|
+
version_requirements: &4714 !ruby/object:Gem::Requirement
|
39
50
|
requirements:
|
40
51
|
- - ~>
|
41
52
|
- !ruby/object:Gem::Version
|
42
53
|
version: '2.10'
|
43
54
|
none: false
|
44
|
-
requirement: *
|
55
|
+
requirement: *4714
|
45
56
|
prerelease: false
|
46
57
|
type: :development
|
47
58
|
- !ruby/object:Gem::Dependency
|
48
59
|
name: simplecov
|
49
|
-
version_requirements: &
|
60
|
+
version_requirements: &4730 !ruby/object:Gem::Requirement
|
61
|
+
requirements:
|
62
|
+
- - ~>
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: '0.7'
|
65
|
+
none: false
|
66
|
+
requirement: *4730
|
67
|
+
prerelease: false
|
68
|
+
type: :development
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: coveralls
|
71
|
+
version_requirements: &4746 !ruby/object:Gem::Requirement
|
50
72
|
requirements:
|
51
73
|
- - ~>
|
52
74
|
- !ruby/object:Gem::Version
|
53
75
|
version: '0.6'
|
54
76
|
none: false
|
55
|
-
requirement: *
|
77
|
+
requirement: *4746
|
56
78
|
prerelease: false
|
57
79
|
type: :development
|
58
80
|
description: A simple ORM for Rocket's UniData database
|