easymongo 0.0.2 → 0.0.3

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: 5e745e136312f00c928eda1e93c9d25661d59163
4
- data.tar.gz: 233ef752b9c9fb6575aff9e29218a5a81f9b8dfb
3
+ metadata.gz: 358fd580d255a0fa18aec794cae7ea04a69b65f8
4
+ data.tar.gz: 1a2aa93b40bfbe10ee245f3ab7f997e8c9911351
5
5
  SHA512:
6
- metadata.gz: 792b2860abea639bfc8b54cf4aa5ceb7ec1df05a6452bfa4f3f6e34bb10670922e80e4a8392b3f6f08f2674c992ac8285eae05eebd4a09725bbfb2b7f7ed8484
7
- data.tar.gz: 6d42ee3fd14a292b35c418a9ae7785375836986a3c69258935965a80e4d0fbc1995acf2b634a0418409f7fd3f4d7d722f15abf2066bcf88ad34429d45f644730
6
+ metadata.gz: 22e087d5f0807696df516c6761876435d39a2cc9fdea360e9184892fe00ed6a06f018c9ff8f3d6ef992af8bad5ec8edae8eccc7a715d1d3d46f6f17f27f75a0b
7
+ data.tar.gz: 2f67a54e70d6fb0638dde10f5c163cf9220680e3cd0708b25f1684c1fcff5342f70f682b96fdd59b9da0976c760e738ff2ed657ca20f4375f70b792729241d61
data/CHANGELOG.md CHANGED
@@ -1,7 +1,13 @@
1
- **Version 0.0.1** - *2017-07-12*
1
+ **Version 0.0.3** - *2017-07-13*
2
+
3
+ - Fixed JSON issues
4
+
5
+
6
+ **Version 0.0.2** - *2017-07-12*
2
7
 
3
8
  - Added short cuts for count, first, last
4
9
 
10
+
5
11
  **Version 0.0.1** - *2017-07-12*
6
12
 
7
13
  - Initial version
data/README.md CHANGED
@@ -30,13 +30,6 @@ user.bson_id => BSON::ObjectId('596675a40aec08bfe7271e14')
30
30
  user.date => 2017-07-12 20:24:57 UTC
31
31
  user.hello = 'Wake up' => Assign temporary value
32
32
 
33
- # Hash annotation as well
34
- user[:hello] => 'Wake up'
35
- user.has_key?(:name) => true
36
-
37
- # All these methods work on the document
38
- http://www.rubydoc.info/github/mongodb/bson-ruby/master/BSON/Document
39
-
40
33
  # Very flexible, also works like this for last and count
41
34
  user = $db.users.first
42
35
  user = $db.users.first(:id => '596675a40aec08bfe7271e14')
@@ -45,9 +38,13 @@ user = $db.users.first(:tv => 'tull')
45
38
  user = $db.users.get(:food => 'healthy').first
46
39
 
47
40
  # Last
41
+ $db.users.last
42
+ $db.users.last(:sun => 'close')
48
43
  $db.users.get(:sun => 'close').last
49
44
 
50
45
  # Count
46
+ $db.users.count
47
+ $db.users.count(:life => 'humancentric')
51
48
  $db.users.get(:life => 'humancentric').count
52
49
 
53
50
  # All
data/easymongo.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'easymongo'
3
- s.version = '0.0.2'
4
- s.date = '2017-07-12'
3
+ s.version = '0.0.3'
4
+ s.date = '2017-07-13'
5
5
  s.summary = "Super Easy MongoDB client"
6
6
  s.description = "The way MongoDB for Ruby should be, can't get easier than this"
7
7
  s.authors = ["Fugroup Limited"]
@@ -3,8 +3,6 @@
3
3
  module Easymongo
4
4
  class Document
5
5
 
6
- attr_accessor :doc, :values
7
-
8
6
  # Takes a BSON::Document
9
7
  def initialize(doc)
10
8
 
@@ -14,13 +12,13 @@ module Easymongo
14
12
  # Convert all BSON::ObjectId to string
15
13
  doc.each{|k, v| doc[k] = v.to_s if v.is_a?(BSON::ObjectId)}
16
14
 
17
- # Symbolize keys
18
- self.doc = doc.symbolize_keys
15
+ # Write variables
16
+ doc.each{|k, v| attr(k, v)}
19
17
  end
20
18
 
21
19
  # Get bson id
22
20
  def bson_id
23
- @bson_id ||= BSON::ObjectId.from_string(doc[:id])
21
+ @bson_id ||= BSON::ObjectId.from_string(@id)
24
22
  end
25
23
 
26
24
  # Creation date
@@ -28,28 +26,16 @@ module Easymongo
28
26
  bson_id.generation_time
29
27
  end
30
28
 
31
- # Read value
32
- def [](key)
33
- doc[key.to_sym]
34
- end
35
-
36
- # Write value
37
- def []=(key, value)
38
- doc[key.to_sym] = value
39
- end
40
-
41
- # Make the doc user friendly with dot notation
42
- # Provides access to doc object methods too
29
+ # Dynamically write value
43
30
  def method_missing(name, *args, &block)
31
+ return attr(name[0..-2], args.first) if args.size == 1 and name[-1] == '='
32
+ end
44
33
 
45
- # Write value
46
- return doc[name[0..-2].to_sym] = args.first if args.size == 1 and name[-1] == '='
47
-
48
- # Read value
49
- return doc[name] if doc.has_key?(name)
34
+ private
50
35
 
51
- # Run method on doc object
52
- return doc.send(name, *args) if doc.respond_to?(name)
36
+ # Create accessor
37
+ def attr(k, v)
38
+ singleton_class.class_eval { attr_accessor k }; send("#{k}=", v)
53
39
  end
54
40
 
55
41
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easymongo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fugroup Limited
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-12 00:00:00.000000000 Z
11
+ date: 2017-07-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mongo