clubhouse2 0.0.2 → 1.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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +29 -17
  3. data/VERSION +1 -1
  4. data/lib/clubhouse2/client.rb +3 -1
  5. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 569d926370ed4d73fef21487292e1c20764ec833
4
- data.tar.gz: 8d1563ec86cd3a03d1191b65586598dc2389e43c
3
+ metadata.gz: 7d4671759a9bb2c2702d1b3e236f8b46127dc5ed
4
+ data.tar.gz: 7edbf8d76327399603dce7c2c50002095c11ba1f
5
5
  SHA512:
6
- metadata.gz: d1dc4c5513c835f155e22f77c9bbfa8d84f37aba8422d5ebd0dcadbcdf52c243e0a10911003d7827c1be0aeb7b57f56fa68eff1d6696479dc12fbe4d30354e1e
7
- data.tar.gz: 796c45550edc55e53b76d3c74337f45d34c610b6a3ca2f26b2b1adb87bc4364b516b858df575f610b06de3d74466c9e5eef87dc1a4a92a3b31acc4cc3ac489b7
6
+ metadata.gz: e4735bbe5697325758b252859a42748c9fea3394ef26c4f44dd6a361cb2ce5ef0088d3f511e1f5eb872ebebfb5c561703babcd86098c0e1ccef1ed7a35595e46
7
+ data.tar.gz: 0da00f45ceb285c2ad6a5ec6c0d378c2668b92477e710f36d8c5c51ed54c415754d51996c2f9f439b23290c03b4aaab5e5ddbf36ca6fe92eed3101f3fe00e3c0
data/README.md CHANGED
@@ -5,28 +5,39 @@ This is a resource-oriented ruby library for interacting with the Clubhouse v2 A
5
5
  ## How to use
6
6
 
7
7
  ### Initializing the client
8
- require 'clubhouse2'
9
- client = Clubhouse::Client.new(api_key: 'your_api_key')
8
+ ```ruby
9
+ require 'clubhouse2'
10
+ client = Clubhouse::Client.new(api_key: 'your_api_key')
11
+ ```
10
12
 
11
- ### Querying
12
-
13
- #### Quick-start
13
+ ### Quick-start
14
14
  Get all stories being followed by a user called 'James'.
15
- client.stories(follower_ids: client.member(name: 'James'))
15
+ ```ruby
16
+ client.stories(follower_ids: client.member(name: 'James'))
17
+ ```
16
18
 
17
19
  Get all stories in the 'Testing' project in the 'Completed' state.
18
- client.project(name: 'Testing').stories(workflow_state_id: client.workflow.state(name: 'Completed').id)
20
+ ```ruby
21
+ client.project(name: 'Testing').stories(workflow_state_id: client.workflow.state(name: 'Completed'))
22
+ ```
19
23
 
20
24
  Get the names of all stories in the 'Testing' project
21
- client.project(name: 'Testing').stories.collect(&:name)
25
+ ```ruby
26
+ client.project(name: 'Testing').stories.collect(&:name)
27
+ ```
22
28
 
23
29
  Get all non-archived stories with the label 'Out Of Hours'
24
- client.stories(archived: false, labels: client.label(name: 'Out Of Hours'))
30
+ ```ruby
31
+ client.stories(archived: false, labels: client.label(name: 'Out Of Hours'))
32
+ ```
25
33
 
26
34
  Get all stories last updated more than 30 days ago
27
- client.stories.select { |story| story.updated_at < Date.today - 30 }
35
+ ```ruby
36
+ client.stories.select { |story| story.updated_at < Date.today - 30 }
37
+ ```
28
38
 
29
- #### Methods returning arrays of resources
39
+ ### Methods returning arrays of resources
40
+ ```ruby
30
41
  client.projects # list all projects
31
42
  client.milestones # list all milestones
32
43
  client.members # list all members (users)
@@ -36,8 +47,9 @@ Get all stories last updated more than 30 days ago
36
47
  client.workflows # list all workflows and states
37
48
  client.labels # list all labels
38
49
  client.teams # list all teams
39
-
40
- #### Methods returning single resources
50
+ ```
51
+ ### Methods returning single resources
52
+ ```ruby
41
53
  client.project # list the first matching project
42
54
  client.milestone # list the first matching milestone
43
55
  client.member # list the first matching member (user)
@@ -47,15 +59,15 @@ Get all stories last updated more than 30 days ago
47
59
  client.workflow # list the first matching workflow (usually Default)
48
60
  client.label # list the first matching label
49
61
  client.team # list the first matching team
50
-
51
- #### Filtering
62
+ ```
63
+ ### Filtering
52
64
  It's possible to filter by any resource property provided by the API. Multiple property filters can be specified.
53
-
65
+ ```ruby
54
66
  client.project(id: 123) # get a specific project
55
67
  client.project(name: 'blah') # get a project by name
56
68
  client.projects(archived: true) # get all archived projects
57
69
  client.project(id: 123).stories # get stories belonging to a project
58
70
  client.story(archived: false) # get all non-archived stories
59
-
71
+ ```
60
72
  ### Notes
61
73
  Note that querying for stories is quicker when performed on a Project, rather than using the `client.projects` method. This is because stories are only available as children of a project, so building the global story array requires making an API call to every project.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.2
1
+ 1.0.3
@@ -33,8 +33,10 @@ module Clubhouse
33
33
  @resources[resource_class] = nil
34
34
  end
35
35
 
36
+ # Take all the provided properties, and filter out any resources that don't match.
37
+ # If the value of a property is an object with an ID, match on that ID instead (makes for tidier queries)
36
38
  def filter(object_array, args)
37
- object_array.reject { |s| args.collect { |k, v| not [ *s.send(k) ].include? v }.reduce(:|) }
39
+ object_array.reject { |s| args.collect { |k, v| not [ *s.send(k) ].include? v.respond_to?(:id) ? v.id : v }.reduce(:|) }
38
40
  end
39
41
 
40
42
  # or v.empty? if v.respond_to?(:empty?)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clubhouse2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Denness