dm-pg-json 0.0.1 → 0.1.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 54d528fdfaedc46b62a112b0724e6f64d76ebd26
4
- data.tar.gz: 5a1bec53789e29a90fddfd079b752a0615a3bd1e
3
+ metadata.gz: daef494f25f8cb172e8c96527a943be8682e2486
4
+ data.tar.gz: c24e17c869fc9a320d0d98265663e4587604970e
5
5
  SHA512:
6
- metadata.gz: 2a8dbf6a6426b370108c8ec0ae7d6db558def54ee94c6de98f0afcf8e51a51d40bb547748717ace2684264e8814b36654bfb9b5136b8cc251421a161854848b5
7
- data.tar.gz: 8b31da87a8878425638944428fd326c5275d1b05011bed81b5b001b4d1f901d8ff997bf7c44c060e194ec67a4676abc7d2e4e9ccfd1662d4176fbad9e2e0c4d2
6
+ metadata.gz: 1fdc00f2e015e1d7d6747ad1dcd2e126bd2c5c5c939aa78bb80c43e13bb925c1c5ddcf8ba10f43e3e0bb6c0b088ca0f24881938dbfd256ed8d2dc04b96fe1b1c
7
+ data.tar.gz: acbd90f9afd862aa618e15ab0d8467f46c85f254f587927e9212b94e07cdb44670c13bcc69d8148649d497fa4dda56fd8c2450e0d28dc5086e0c08d0921e22ad
@@ -1,14 +1,35 @@
1
1
  # encoding: utf-8
2
2
 
3
+ require 'dm-core'
4
+ require 'dm-types/support/dirty_minder'
5
+
3
6
  module DataMapper
4
7
  class Property
5
- class PgJSON < Property
8
+ class PgJSON < Text
9
+ def dump(value)
10
+ case value
11
+ when ::NilClass, ::String
12
+ value
13
+ when ::Hash, ::Array
14
+ Oj.dump(value, mode: :compat)
15
+ else
16
+ '{}'
17
+ end
18
+ end
19
+
6
20
  def load(value)
7
- Oj.load(value)
21
+ case value
22
+ when ::Hash, ::Array
23
+ value
24
+ when ::String
25
+ Oj.load(value)
26
+ else
27
+ {}
28
+ end
8
29
  end
9
30
 
10
- def dump(value)
11
- Oj.dump(value, mode: :compat)
31
+ def primitive?(value)
32
+ value.kind_of?(::String)
12
33
  end
13
34
  end
14
35
  end
@@ -1,5 +1,5 @@
1
1
  module DataMapper
2
2
  module PostgresJSON
3
- VERSION = "0.0.1"
3
+ VERSION = "0.1.0"
4
4
  end
5
5
  end
data/lib/dm-pg-json.rb CHANGED
@@ -2,19 +2,16 @@
2
2
 
3
3
  require 'dm-core'
4
4
  require 'dm-postgres-adapter'
5
+ require 'dm-pg-json/property/pgjson'
5
6
  require 'dm-pg-json/version'
6
7
 
7
8
  module DataMapper
8
- class Property
9
- autoload :PgJSON, 'dm-pg-json/property/pgjson'
10
- end
11
-
12
9
  module Migrations
13
10
  module PostgresAdapter
14
11
  def property_schema_hash(property)
15
12
  schema = super
16
13
 
17
- if property.kind_of?(Property::PgJSON)
14
+ if property.kind_of?(::DataMapper::Property::PgJSON)
18
15
  schema.delete(:length)
19
16
  end
20
17
 
@@ -35,9 +32,9 @@ module DataMapper
35
32
  #
36
33
  # @api private
37
34
  def type_map
38
- super.merge(Property::PgJSON => {:primitive => 'JSON'}).freeze
35
+ super.merge(::DataMapper::Property::PgJSON => {:primitive => 'JSON'}).freeze
39
36
  end
40
37
  end
41
38
  end
42
39
  end
43
- DataMapper::Adapters::PostgresAdapter.send(:include,DataMapper::PostgresJSON)
40
+ DataMapper::Adapters::PostgresAdapter.send(:include, ::DataMapper::PostgresJSON)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dm-pg-json
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - StyleSeek Engineering Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-17 00:00:00.000000000 Z
11
+ date: 2013-12-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dm-core