unidata 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- UniData ORM [![Build Status](https://secure.travis-ci.org/jisraelsen/unidata.png?branch=master)](http://travis-ci.org/jisraelsen/unidata) [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/jisraelsen/unidata)
1
+ UniData ORM [![Build Status](https://secure.travis-ci.org/jisraelsen/unidata.png?branch=master)](http://travis-ci.org/jisraelsen/unidata) [![Coverage Status](https://coveralls.io/repos/jisraelsen/unidata/badge.png?branch=master)](https://coveralls.io/r/jisraelsen/unidata) [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/jisraelsen/unidata)
2
2
  ===========
3
3
 
4
4
  A simple ORM for Rocket's UniData database.
@@ -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
- record = Unidata::UniDynArray.new(file.read(record_id))
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
- value = file.read_field(record_id, field).to_s
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)
@@ -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
- unless @fields
12
- @fields = {}
13
- field(0, :id)
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
 
@@ -1,3 +1,3 @@
1
1
  module Unidata
2
- VERSION = "0.0.10"
2
+ VERSION = "0.0.11"
3
3
  end
@@ -1,15 +1,18 @@
1
- if ENV['COVERAGE']
2
- require 'simplecov'
3
- SimpleCov.start do
4
- add_filter '/spec/'
5
- end
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,*values
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 => nil)
143
+ @file = double('UniFile', :close => nil, :read => '')
144
144
  @session.stub(:open).and_return(@file)
145
145
 
146
146
  connection.open
@@ -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.10
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-03-28 00:00:00.000000000Z
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: &3630 !ruby/object:Gem::Requirement
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: *3630
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: &3648 !ruby/object:Gem::Requirement
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: *3648
44
+ requirement: *4698
34
45
  prerelease: false
35
46
  type: :development
36
47
  - !ruby/object:Gem::Dependency
37
48
  name: rspec
38
- version_requirements: &3664 !ruby/object:Gem::Requirement
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: *3664
55
+ requirement: *4714
45
56
  prerelease: false
46
57
  type: :development
47
58
  - !ruby/object:Gem::Dependency
48
59
  name: simplecov
49
- version_requirements: &3680 !ruby/object:Gem::Requirement
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: *3680
77
+ requirement: *4746
56
78
  prerelease: false
57
79
  type: :development
58
80
  description: A simple ORM for Rocket's UniData database