object_identifier 0.0.1 → 0.0.2

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: 1c5a1784fbf5892f1a289cdf6e97a73c17da21d6
4
- data.tar.gz: f0a9c0f931faad3e31dd5230d72195c93664f926
3
+ metadata.gz: 157f8efe2cfccf189c024f9dbf79bd406bcd8161
4
+ data.tar.gz: bf91af5bbe21d2ca45cc4020fe6db71d62f83bce
5
5
  SHA512:
6
- metadata.gz: 4c036b06b434be033f7b1ecbe2c4acfcb8723115e49342af696b0e878aca7a2b5a0e369f259129e73b52306e7a84a7ada8329fef79832b11a5ef2fcb3f573e35
7
- data.tar.gz: 193da902de57dad4ae7e3339c9c24118be8597640ff14a21dfe7aeeaca1e916481684b61a43330c2ca0ffc953e75ab41ab13fc89f20568240528c7047b8b2b1a
6
+ metadata.gz: 6e770c731b11d1789c09682845177510a6dbc0feb8f841f13955147dba10686f1ba0ecaecd31b11f4db05e320d72adb2c804c0e4333fcf211126c08dbfc6fe0f
7
+ data.tar.gz: 15cae1fb559f72d069f45a95072859b056290c278768ab318fbad9d9ad20a5712144961763f8ceb8eff9b80e9d8c243680e5d4631f0ef22391b5d6200510293b
data/README.md ADDED
@@ -0,0 +1,96 @@
1
+ # Object Identifier
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/object_identifier.png)](http://badge.fury.io/rb/object_identifier)
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.
8
+
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)}"`.
13
+
14
+
15
+ ## Compatibility
16
+
17
+ Tested with:
18
+
19
+ * Ruby: MRI 2.0.0
20
+ * Rails: 4.0.1
21
+
22
+ ## Installation
23
+
24
+ Add this line to your application's Gemfile:
25
+
26
+ ```ruby
27
+ gem "object_identifier"
28
+ ```
29
+
30
+ And then execute:
31
+
32
+ ```ruby
33
+ bundle
34
+ ```
35
+
36
+ ## Usage
37
+
38
+ <b>Defaults</b>
39
+
40
+ Outputs the `id` attribute by default, if possible and if no other attributes
41
+ are given:
42
+
43
+ ```ruby
44
+ some_object.identify # => Movie[id:1]
45
+ ```
46
+
47
+ Also works with methods:
48
+
49
+ ```ruby
50
+ some_object.identify(:get_rating) # => Movie[get_rating:"7/10"]
51
+ ```
52
+
53
+ <b>Unknown Attributes/Methods</b>
54
+
55
+ If the object doesn't respond to a specified attribute/method it is simply
56
+ ignored:
57
+
58
+ ```ruby
59
+ some_object.identify(:gobble_gobble, :id) # => Movie[id:1]
60
+ ```
61
+
62
+ <b>Collections</b>
63
+
64
+ Works great with collections:
65
+
66
+ ```ruby
67
+ [some_object, some_other_object].identify(:id, :name)
68
+ # => Movie[id:1, name:"Pi"], Contact[id:23, name:"Bob"]
69
+ ```
70
+
71
+ Also allows limiting of results:
72
+
73
+ ```ruby
74
+ [some_object, some_other_object].identify(:id, :name, limit: 1)
75
+ # => Movie[id:1, name:"Pi"], ... (1 more)
76
+ ```
77
+
78
+ <b>Overriding the Class Name</b>
79
+
80
+ ```ruby
81
+ some_object.identify(klass: "MyMovie") # => MyMovie[id:1]
82
+ some_object.identify(klass: nil) # => [id:1]
83
+ delayed_job.identify(klass: "Delayed::Job") # => Delayed::Job[id:1]
84
+ ```
85
+
86
+ <b>Nils and Empty Collections</b>
87
+
88
+ ```ruby
89
+ nil.identify(:id, :name) # => [no objects]
90
+ [].identify # => [no objects]
91
+ ```
92
+
93
+ ## Authors
94
+
95
+ - Paul Dobbins
96
+ - Evan Sherwood
@@ -25,12 +25,7 @@ module ObjectIdentifier
25
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
26
  # ObjectIdentifier::Identifier.identify((1..10).to_a, :to_f, limit: 2) # => "Fixnum[to_f:1.0], Fixnum[to_f:2.0], ... (8 more)"
27
27
  def self.identify(obj, *args)
28
- obj = if obj.respond_to?(:to_ary)
29
- obj.to_ary
30
- else
31
- [obj]
32
- end
33
- new(obj, *args).to_s
28
+ new(Array.wrap(obj), *args).to_s
34
29
  end
35
30
 
36
31
  def initialize(objects, *args)
@@ -1,3 +1,3 @@
1
1
  module ObjectIdentifier
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
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.1
4
+ version: 0.0.2
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: 2013-11-19 00:00:00.000000000 Z
12
+ date: 2013-11-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -17,14 +17,14 @@ dependencies:
17
17
  requirements:
18
18
  - - ~>
19
19
  - !ruby/object:Gem::Version
20
- version: 4.0.1
20
+ version: 4.0.0
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - ~>
26
26
  - !ruby/object:Gem::Version
27
- version: 4.0.1
27
+ version: 4.0.0
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: naught
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -110,6 +110,7 @@ files:
110
110
  - lib/object_identifier.rb
111
111
  - MIT-LICENSE
112
112
  - Rakefile
113
+ - README.md
113
114
  - test/core_ext/object_test.rb
114
115
  - test/core_ext/string_test.rb
115
116
  - test/core_ext/symbol_test.rb