object_identifier 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 145c33d70d8d3e4122c427a6c2a5ae956cfe7ed0
4
- data.tar.gz: c550160bd82b0417256face662342f33c567a1a6
3
+ metadata.gz: e8ddc2ad9b41c164acd506d459485a07fec316df
4
+ data.tar.gz: 1db0b95efe25e89e27dbce11275f7662fccc3b5a
5
5
  SHA512:
6
- metadata.gz: 28deb5124d478be4452168bc59cb371704d60481a8adae647e6edf9672c52272058a5c48bf63e9b2ba3a28e710cdbf75bf92f4c2400104478277ea13b0e4e8d3
7
- data.tar.gz: 5772ec327a63e2f0a528398c73c7738a66af8d436b1a48b5189d0bfd85c7d3d53e841d69bcd75a76efac04f70933a92bda312e835a79b2393e6e2d8421c12357
6
+ metadata.gz: ab5c8a2a62cba5aebfca5ac676b9b3dc3e4221e7112ecaea1027ae7df57dcb42daf09654927ac6fe80ffe6069052f878c1bef8747336fd467943f92576563add
7
+ data.tar.gz: 21d76f36afa3abe23f84caf8d9c70e5f52b3e640500675b0aa6ad14030e03978ad05a9c99dab7e3351631ac8b37c9303dd71b1e2873d847d7a091824fec3a697
data/README.md CHANGED
@@ -2,32 +2,34 @@
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/object_identifier.png)](http://badge.fury.io/rb/object_identifier)
4
4
 
5
- Object Identifier allows quick, easy, and uniform identification of an object
6
- by inspecting its class name and any desirable attributes/methods. This is great
7
- for logging, notifications or any other purpose.
5
+ Object Identifier allows quick, easy, and uniform identification of an object by inspecting its class name and outputting any desirable attributes/methods. This is great for quickly logging, sending more descriptive notifications, or any other purpose.
8
6
 
9
- For example, instead of typing out string interpolations such as
10
- `"#{some_object.class.name}[id:#{some_object.id}, name:'#{some_object.name}']"`
11
- all over the place in controllers or in rescue blocks in models, etc., you can
12
- now just use `"#{some_object.identify(:id, :name)}"`.
7
+ For example:
8
+
9
+ ```ruby
10
+ some_object.identify(:id, :name)
11
+ ```
12
+
13
+ Which is the same as:
14
+
15
+ ```ruby
16
+ "#{some_object.class.name}[id:#{some_object.id}, name:'#{some_object.name}']"
17
+ ```
13
18
 
14
19
 
15
20
  ## Compatibility
16
21
 
17
- Tested with:
22
+ * Ruby: MRI 1.9.3+
23
+ * Ruby: MRI 2+
24
+ * Rails: 3+
18
25
 
19
- * Ruby: MRI 1.9.3
20
- * Ruby: MRI 2.0.0
21
- * Ruby: MRI 2.1.0
22
- * Rails: 3.2
23
- * Rails: 4.0.1
24
26
 
25
27
  ## Installation
26
28
 
27
29
  Add this line to your application's Gemfile:
28
30
 
29
31
  ```ruby
30
- gem "object_identifier"
32
+ gem 'object_identifier'
31
33
  ```
32
34
 
33
35
  And then execute:
@@ -36,9 +38,10 @@ And then execute:
36
38
  bundle
37
39
  ```
38
40
 
41
+
39
42
  ## Usage
40
43
 
41
- <b>Defaults</b>
44
+ ### Defaults
42
45
 
43
46
  Outputs the `id` attribute by default, if possible and if no other attributes
44
47
  are given:
@@ -53,7 +56,7 @@ Also works with methods:
53
56
  some_object.identify(:get_rating) # => Movie[get_rating:"7/10"]
54
57
  ```
55
58
 
56
- <b>Unknown Attributes/Methods</b>
59
+ ### Unknown Attributes/Methods
57
60
 
58
61
  If the object doesn't respond to a specified attribute/method it is simply
59
62
  ignored:
@@ -62,7 +65,7 @@ ignored:
62
65
  some_object.identify(:gobble_gobble, :id) # => Movie[id:1]
63
66
  ```
64
67
 
65
- <b>Collections</b>
68
+ ### Collections
66
69
 
67
70
  Works great with collections:
68
71
 
@@ -78,7 +81,7 @@ Also allows limiting of results:
78
81
  # => Movie[id:1, name:"Pi"], ... (1 more)
79
82
  ```
80
83
 
81
- <b>Overriding the Class Name</b>
84
+ ### Overriding the Class Name
82
85
 
83
86
  ```ruby
84
87
  some_object.identify(klass: "MyMovie") # => MyMovie[id:1]
@@ -86,13 +89,44 @@ some_object.identify(klass: nil) # => [id:1]
86
89
  delayed_job.identify(klass: "Delayed::Job") # => Delayed::Job[id:1]
87
90
  ```
88
91
 
89
- <b>Nils and Empty Collections</b>
92
+ ### Nils and Empty Collections
90
93
 
91
94
  ```ruby
92
95
  nil.identify(:id, :name) # => [no objects]
93
96
  [].identify # => [no objects]
94
97
  ```
95
98
 
99
+
100
+ ## Custom Object Identifiers
101
+
102
+ Internally, Object Identifier relies on a method named `inspect_lit` to return a "literally-inspected" string representation of all objects being identified. For example:
103
+
104
+ ```ruby
105
+ :a_symbol.respond_to?(:inspect_lit) # => true
106
+ :a_symbol.inspect_lit # => ":\"a_symbol\""
107
+ "a_string".inspect_lit # => "\"a_string\""
108
+ BigDecimal(1.99, 3).inspect_lit # => "<BD:1.99>"
109
+ ```
110
+
111
+ Therefore, if you'd like to represent a custom object in a special way for object identification, just define the to-string conversion within the `inspect_lit` method.
112
+
113
+
114
+ ```ruby
115
+ class MyVal
116
+ def initialize(val)
117
+ @val = val
118
+ end
119
+
120
+ def inspect_lit
121
+ "<MOO:#{@val}>"
122
+ end
123
+ end
124
+
125
+ OpenStruct.new(my_val: MyVal.new(42)).identify(:my_val)
126
+ # => "OpenStruct[my_val:<MOO:42>]"
127
+ ```
128
+
129
+
96
130
  ## Authors
97
131
 
98
132
  - Paul Dobbins
@@ -1,9 +1,12 @@
1
1
  class BigDecimal
2
- # Formats this BigDecimal to look like a float, which is at least readable.
3
- # @return [String] a String representation of this BigDecimal object (via float)
2
+ # Formats this BigDecimal as an object-type-revealing String.
3
+ #
4
+ # @return [String] a String representation of this BigDecimal object
5
+ #
4
6
  # @example
5
- # BigDecimal.new(1).inspect_lit # => "1.0"
7
+ # BigDecimal.new(1).inspect_lit # => "<BD:1.0>"
8
+ # BigDecimal.new(99.999, 5).inspect_lit # => "<BD:99.999>"
6
9
  def inspect_lit
7
- to_s
10
+ "<BD:#{self}>"
8
11
  end
9
12
  end
@@ -2,6 +2,7 @@ class Object
2
2
  # Standard #inspect for any object that doesn't override this method. This
3
3
  # method is meant to make an object's type inherently obvious when used in
4
4
  # logging methods, etc.
5
+ #
5
6
  # @return [String] a string representation of this object
6
7
  def inspect_lit
7
8
  inspect
@@ -9,21 +10,33 @@ class Object
9
10
 
10
11
  # Instance method for constructing a self-identifying string for any given
11
12
  # object or list of objects.
13
+ #
12
14
  # @overload identify(*args)
13
15
  # @param args [*] (optional) a list of arguments to identify for this object
14
16
  # or for each object in this collection
15
17
  # @overload identify(*args, options)
16
- # @param args [*] (optional) (default: :id) a list of arguments to identify for this object
17
- # @param [Hash] options the options for building a customized self-identifier
18
+ # @param args [*] (optional) (default: :id) a list of arguments to identify
19
+ # for this object
20
+ # @param [Hash] options the options for building a customized
21
+ # self-identifier
18
22
  # @option options [String, nil] :klass object class name override
19
- # @option options [Fixnum] :limit maximum number of objects to display from a collection
23
+ # @option options [Fixnum] :limit maximum number of objects to display from
24
+ # a collection
25
+ #
20
26
  # @return [String] a self-identifying string like `Class[id:1, name:'temp']`
27
+ #
21
28
  # @example
22
- # OpenStruct.new(a: 1, b: '2', c: :"3").identify(:a, :b, :c) # => "OpenStruct[a:1, b:\"2\", c::\"3\"]"
29
+ # OpenStruct.new(a: 1, b: '2', c: :"3").identify(:a, :b, :c)
30
+ # # => "OpenStruct[a:1, b:\"2\", c::\"3\"]"
31
+ #
23
32
  # 1.identify(:to_s) # => "Fixnum[to_s:\"1\"]"
24
- # nil.identify # => "[no objects]"
25
- # %w(1 2 3).identify(:to_i, :to_f) # => "String[to_i:1, to_f:1.0], String[to_i:2, to_f:2.0], String[to_i:3, to_f:3.0]"
26
- # (1..10).to_a.identify(:to_f, limit: 2) # => "Fixnum[to_f:1.0], Fixnum[to_f:2.0], ... (8 more)"
33
+ # nil.identify # => "[no objects]"
34
+ #
35
+ # %w(1 2 3).identify(:to_i, :to_f)
36
+ # # => "String[to_i:1, to_f:1.0], String[to_i:2, to_f:2.0], String[to_i:3, to_f:3.0]"
37
+ #
38
+ # (1..10).to_a.identify(:to_f, limit: 2)
39
+ # # => "Fixnum[to_f:1.0], Fixnum[to_f:2.0], ... (8 more)"
27
40
  def identify(*args)
28
41
  ObjectIdentifier::Identifier.identify(self, *args)
29
42
  end
@@ -1,10 +1,12 @@
1
1
  class String
2
2
  # Formats this string to look like a string literal so that object type will
3
3
  # be inherently obvious when used in logging methods, etc.
4
+ #
4
5
  # @return [String] a string literal representation of this object
6
+ #
5
7
  # @example
6
8
  # "test".inspect_lit # => "\"test\"" (or '"test"')
7
- # "1".inspect_lit # => "\"1\"" (or '"1"')
9
+ # "1".inspect_lit # => "\"1\"" (or '"1"')
8
10
  # "12.3".inspect_lit # => "\"12.3\"" (or '"12.3"')
9
11
  def inspect_lit
10
12
  %("#{to_s}")
@@ -1,9 +1,11 @@
1
1
  class Symbol
2
2
  # Formats this symbol to look like a symbol literal so that object type will
3
3
  # be inherently obvious when used in logging methods, etc.
4
+ #
4
5
  # @return [String] a symbol literal representation of this object
6
+ #
5
7
  # @example
6
- # :test.inspect_lit # => ":\"test\"" (or ':"test"')
8
+ # :test.inspect_lit # => ":\"test\"" (or ':"test"')
7
9
  # :"ta-da!".inspect_lit # => ":\"ta-da!\"" (or ':"ta-da!"')
8
10
  def inspect_lit
9
11
  %(:"#{to_s}")
@@ -1,43 +1,51 @@
1
- require "naught"
2
-
3
1
  module ObjectIdentifier
4
2
  class Identifier
5
- NullObject = Naught.build
6
- include NullObject::Conversions
3
+ def initialize(objects, *args)
4
+ @objects = Array.wrap(objects)
5
+ @options = args.extract_options!
6
+ @attributes = args.empty? ? [:id] : args
7
+ end
7
8
 
8
9
  # Class method for constructing a self-identifying string for any given
9
10
  # object or collection of objects.
11
+ #
10
12
  # @overload self.identify(obj, *args)
11
13
  # @param obj [Object] the object to identify
12
- # @param args [*] (optional) a list of arguments to identify for this object
13
- # or for each object in this collection
14
+ # @param args [*] (optional) a list of arguments to identify for this
15
+ # object or for each object in this collection
14
16
  # @overload self.identify(obj, *args, options)
15
17
  # @param obj [Object] the object to identify
16
- # @param args [*] (optional) (default :id) a list of arguments to identify for this object
17
- # @param [Hash] options the options for building a customized self-identifier
18
+ # @param args [*] (optional) (default :id) a list of arguments to identify
19
+ # for this object
20
+ # @param [Hash] options the options for building a customized
21
+ # self-identifier
18
22
  # @option options [String, nil] :klass object class name override
19
- # @option options [Fixnum] :limit maximum number of objects to display from a collection
23
+ # @option options [Fixnum] :limit maximum number of objects to display
24
+ # from a collection
25
+ #
20
26
  # @return [String] a self-identifying string like `Class[id:1, name:'temp']`
27
+ #
21
28
  # @example
22
- # ObjectIdentifier::Identifier.identify(OpenStruct.new(a: 1, b: '2', c: :"3"), :a, :b, :c) # => "OpenStruct[a:1, b:\"2\", c::\"3\"]"
29
+ # ObjectIdentifier::Identifier.identify(OpenStruct.new(a: 1, b: '2', c: :"3"), :a, :b, :c)
30
+ # # => "OpenStruct[a:1, b:\"2\", c::\"3\"]"
31
+ #
23
32
  # ObjectIdentifier::Identifier.identify(1, :to_s) # => "Fixnum[to_s:\"1\"]"
24
- # ObjectIdentifier::Identifier.identify(nil) # => "[no objects]"
25
- # ObjectIdentifier::Identifier.identify(%w(1 2 3), :to_i, :to_f) # => "String[to_i:1, to_f:1.0], String[to_i:2, to_f:2.0], String[to_i:3, to_f:3.0]"
26
- # ObjectIdentifier::Identifier.identify((1..10).to_a, :to_f, limit: 2) # => "Fixnum[to_f:1.0], Fixnum[to_f:2.0], ... (8 more)"
33
+ # ObjectIdentifier::Identifier.identify(nil) # => "[no objects]"
34
+ #
35
+ # ObjectIdentifier::Identifier.identify(%w(1 2 3), :to_i, :to_f)
36
+ # # => "String[to_i:1, to_f:1.0], String[to_i:2, to_f:2.0], String[to_i:3, to_f:3.0]"
37
+ #
38
+ # ObjectIdentifier::Identifier.identify((1..10).to_a, :to_f, limit: 2)
39
+ # # => "Fixnum[to_f:1.0], Fixnum[to_f:2.0], ... (8 more)"
27
40
  def self.identify(obj, *args)
28
- new(Array.wrap(obj), *args).to_s
29
- end
30
-
31
- def initialize(objects, *args)
32
- @objects = objects
33
- @options = args.extract_options!
34
- @attributes = args.empty? ? [:id] : args
41
+ new(obj, *args).to_s
35
42
  end
36
43
 
37
44
  # Output the self-identifying string for an instance of
38
- # ObjectIdentifier::Identifier. Will either return a single object representation
39
- # or a list of object representations, based on the number of objects we're
40
- # identifying.
45
+ # ObjectIdentifier::Identifier. Will either return a single object
46
+ # representation or a list of object representations, based on the number of
47
+ # objects we're identifying.
48
+ #
41
49
  # @return [String] a string representing the object or list of objects
42
50
  def to_s
43
51
  if multiple_objects_to_identify?
@@ -51,8 +59,8 @@ module ObjectIdentifier
51
59
 
52
60
  def format_multiple_objects
53
61
  objects = @objects.first(limit).map do |obj|
54
- format_with_attributes(obj)
55
- end.join(", ")
62
+ format_with_attributes(obj)
63
+ end.join(", ")
56
64
 
57
65
  if any_objects_abbreviated?
58
66
  objects << ", ... (#{number_of_abbreviated_objects} more)"
@@ -71,15 +79,15 @@ module ObjectIdentifier
71
79
  end
72
80
 
73
81
  def multiple_objects_to_identify?
74
- @objects.try(:many?)
82
+ @objects.many?
75
83
  end
76
84
 
77
85
  def limit
78
- @options[:limit] || @objects.size
86
+ @options.fetch(:limit) { @objects.size }.to_i
79
87
  end
80
88
 
81
89
  def limit_given?
82
- @options.has_key?(:limit)
90
+ @options.key?(:limit)
83
91
  end
84
92
 
85
93
  def any_objects_abbreviated?
@@ -87,7 +95,7 @@ module ObjectIdentifier
87
95
  end
88
96
 
89
97
  def number_of_abbreviated_objects
90
- @objects.size - Maybe(@options[:limit]).to_i
98
+ @objects.size - @options[:limit].to_i
91
99
  end
92
100
 
93
101
  def format_with_attributes(object)
@@ -102,7 +110,7 @@ module ObjectIdentifier
102
110
  end
103
111
 
104
112
  def format_empty(object)
105
- @options.has_key?(:klass) ? "#{@options[:klass]}[]" : "[no objects]"
113
+ @options.key?(:klass) ? "#{@options[:klass]}[]" : "[no objects]"
106
114
  end
107
115
 
108
116
  def attribute_formatter(hash)
@@ -118,7 +126,7 @@ module ObjectIdentifier
118
126
  end
119
127
 
120
128
  def class_name_of(object)
121
- @options.has_key?(:klass) ? @options[:klass] : object.class.name
129
+ @options.key?(:klass) ? @options[:klass] : object.class.name
122
130
  end
123
131
  end
124
132
  end
@@ -1,3 +1,3 @@
1
1
  module ObjectIdentifier
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -5,7 +5,7 @@ describe BigDecimal do
5
5
  it "returns the same as #to_s" do
6
6
  [1, 1.0, 0, 99.9999].each do |val|
7
7
  bd_val = BigDecimal.new(val, 10)
8
- assert bd_val.inspect_lit == bd_val.to_s
8
+ bd_val.inspect_lit.must_equal "<BD:#{bd_val}>"
9
9
  end
10
10
  end
11
11
  end
@@ -3,7 +3,7 @@ require "test_helper"
3
3
  describe String do
4
4
  describe "#inspect_lit" do
5
5
  it "quotes string values" do
6
- assert "string".inspect_lit == %("string")
6
+ "string".inspect_lit.must_equal %("string")
7
7
  end
8
8
  end
9
9
  end
@@ -3,7 +3,7 @@ require "test_helper"
3
3
  describe Symbol do
4
4
  describe "#inspect_lit" do
5
5
  it "quotes symbol values after colon" do
6
- assert :symbol.inspect_lit == %(:"symbol")
6
+ :symbol.inspect_lit.must_equal %(:"symbol")
7
7
  end
8
8
  end
9
9
  end
@@ -2,68 +2,68 @@ require "test_helper"
2
2
 
3
3
  describe ObjectIdentifier::Identifier do
4
4
  describe "#identify" do
5
- it "yields 'Class[id:1]' when id and no attributes" do
6
- assert OpenStruct.new(id: 1).identify == "OpenStruct[id:1]"
5
+ it "yields 'Class[id:1]', GIVEN id and no attributes" do
6
+ OpenStruct.new(id: 1).identify.must_equal "OpenStruct[id:1]"
7
7
  end
8
8
 
9
9
  it "lists each entry in collection" do
10
10
  collection = [OpenStruct.new(id: 1), OpenStruct.new(id: 2)]
11
- assert collection.identify == "OpenStruct[id:1], OpenStruct[id:2]"
11
+ collection.identify.must_equal "OpenStruct[id:1], OpenStruct[id:2]"
12
12
  end
13
13
 
14
14
  describe "no attributes, no id, empty array, nil" do
15
- it "yields 'Class[]' when no id or attributes" do
16
- assert Object.new.identify == "Object[]"
15
+ it "yields 'Class[]', GIVEN no id or attributes" do
16
+ Object.new.identify.must_equal "Object[]"
17
17
  end
18
18
 
19
- it "yields '[no objects]' when an empty array" do
20
- assert [].identify == "[no objects]"
19
+ it "yields '[no objects]', GIVEN an empty array" do
20
+ [].identify.must_equal "[no objects]"
21
21
  end
22
22
 
23
- it "yields '[no objects]' when nil" do
24
- assert nil.identify == "[no objects]"
23
+ it "yields '[no objects]', GIVEN nil" do
24
+ nil.identify.must_equal "[no objects]"
25
25
  end
26
26
  end
27
27
 
28
28
  describe "with attributes" do
29
29
  it "yields attribute values" do
30
30
  obj = OpenStruct.new(name: "Pepper", beak_size: 4)
31
- assert obj.identify(:beak_size) == "OpenStruct[beak_size:4]"
31
+ obj.identify(:beak_size).must_equal "OpenStruct[beak_size:4]"
32
32
  end
33
33
 
34
34
  it "quotes strings" do
35
35
  obj = OpenStruct.new(name: "Pepper")
36
- assert obj.identify(:name) == %(OpenStruct[name:"Pepper"])
36
+ obj.identify(:name).must_equal %(OpenStruct[name:"Pepper"])
37
37
  end
38
38
 
39
39
  it "quotes symbols" do
40
40
  obj = OpenStruct.new(name: "Pepper", color: :grey)
41
- assert obj.identify(:color) == %(OpenStruct[color::"grey"])
41
+ obj.identify(:color).must_equal %(OpenStruct[color::"grey"])
42
42
  end
43
43
 
44
44
  it "ignores attributes that don't exist" do
45
45
  obj = OpenStruct.new(name: "Pepper", color: :grey, beak_size: 4)
46
- assert obj.identify(:volume, :beak_size) == "OpenStruct[beak_size:4]"
46
+ obj.identify(:volume, :beak_size).must_equal "OpenStruct[beak_size:4]"
47
47
  end
48
48
  end
49
49
 
50
50
  describe "options" do
51
51
  it "overrides object class name with :klass" do
52
- assert OpenStruct.new(id: 1).identify(klass: "Monkey") == "Monkey[id:1]"
52
+ OpenStruct.new(id: 1).identify(klass: "Monkey").must_equal "Monkey[id:1]"
53
53
  end
54
54
 
55
- it "yields no class if given class is empty string" do
56
- assert OpenStruct.new(id: 1).identify(klass: "") == "[id:1]"
57
- assert OpenStruct.new(id: 1).identify(klass: nil) == "[id:1]"
55
+ it "yields no class, GIVEN class is empty string" do
56
+ OpenStruct.new(id: 1).identify(klass: "").must_equal "[id:1]"
57
+ OpenStruct.new(id: 1).identify(klass: nil).must_equal "[id:1]"
58
58
  end
59
59
 
60
60
  it "overrides object class name with :klass with no attributes" do
61
- assert [].identify(klass: "Monkey") == "Monkey[]"
61
+ [].identify(klass: "Monkey").must_equal "Monkey[]"
62
62
  end
63
63
 
64
64
  it "yields first n (:limit) objects in collection" do
65
- assert [1,2,3,4,5,6,7].identify(:to_i, limit: 3) ==
66
- "Fixnum[to_i:1], Fixnum[to_i:2], Fixnum[to_i:3], ... (4 more)"
65
+ (1..7).to_a.identify(:to_i, limit: 3).must_equal(
66
+ "Fixnum[to_i:1], Fixnum[to_i:2], Fixnum[to_i:3], ... (4 more)")
67
67
  end
68
68
  end
69
69
  end
data/test/test_helper.rb CHANGED
@@ -1,4 +1,3 @@
1
- # Configure Rails Environment
2
1
  ENV["RAILS_ENV"] = "test"
3
2
 
4
3
  require File.expand_path("../dummy/config/environment.rb", __FILE__)
@@ -8,7 +7,7 @@ require "minitest/rails"
8
7
  Rails.backtrace_cleaner.remove_silencers!
9
8
 
10
9
  # Load support files
11
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
10
+ Dir[Rails.root.join("test/support/**/*.rb")].each { |f| require f }
12
11
 
13
12
  # Load fixtures from the engine
14
13
  if ActiveSupport::TestCase.method_defined?(:fixture_path=)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: object_identifier
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Dobbins
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-08-29 00:00:00.000000000 Z
12
+ date: 2014-08-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -25,20 +25,6 @@ dependencies:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
27
  version: 3.0.0
28
- - !ruby/object:Gem::Dependency
29
- name: naught
30
- requirement: !ruby/object:Gem::Requirement
31
- requirements:
32
- - - ">="
33
- - !ruby/object:Gem::Version
34
- version: '0'
35
- type: :runtime
36
- prerelease: false
37
- version_requirements: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - ">="
40
- - !ruby/object:Gem::Version
41
- version: '0'
42
28
  - !ruby/object:Gem::Dependency
43
29
  name: sqlite3
44
30
  requirement: !ruby/object:Gem::Requirement
@@ -144,7 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
144
130
  version: '0'
145
131
  requirements: []
146
132
  rubyforge_project:
147
- rubygems_version: 2.3.0
133
+ rubygems_version: 2.4.1
148
134
  signing_key:
149
135
  specification_version: 4
150
136
  summary: Identify an object by inspecting its class name and attributes.