foggy_bottom 0.0.3 → 0.0.4

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.
@@ -1,5 +1,34 @@
1
1
  module FoggyBottom
2
2
  module Columns
3
+ module Status
4
+ def self.included(base)
5
+ base.class_eval do
6
+ ALL_COLUMNS.each do |column|
7
+ define_method(column) do
8
+ @attributes[column]
9
+ end
10
+
11
+ define_method("#{column}=") do |arg|
12
+ send("#{column}_will_change!") unless send(column) == arg
13
+
14
+ @attributes[column] = arg
15
+ end
16
+ end
17
+ end
18
+ end
19
+
20
+ ALL_COLUMNS = %w(
21
+ ixStatus
22
+ sStatus
23
+ ixCategory
24
+ fWorkDone
25
+ fResolved
26
+ fDuplicate
27
+ fDeleted
28
+ iOrder
29
+ )
30
+ end
31
+
3
32
  module Case
4
33
  def self.included(base)
5
34
  base.class_eval do
@@ -13,6 +13,8 @@ class FoggyBottom::Console
13
13
  search(get("Terms"))
14
14
  when :resolve
15
15
  resolve(get("Case ID"))
16
+ when :status_list
17
+ puts FoggyBottom::Status.all(api).inspect
16
18
  when :quit
17
19
  exit 0
18
20
  else
@@ -23,7 +25,7 @@ class FoggyBottom::Console
23
25
 
24
26
  protected
25
27
  def show_menu
26
- commands = %w( search resolve quit )
28
+ commands = %w( search resolve status_list quit )
27
29
  choice = (Hirb::Menu.render commands, :helper_class => false, :directions => false).first
28
30
  choice ? choice.to_sym : :unknown
29
31
  end
@@ -0,0 +1,36 @@
1
+ class FoggyBottom::Status
2
+ include FoggyBottom::Columns::Status
3
+
4
+ include ActiveModel::AttributeMethods
5
+ include ActiveModel::Dirty
6
+ include ActiveModel::Serialization
7
+
8
+ define_attribute_methods ALL_COLUMNS
9
+
10
+ attr_accessor :api
11
+
12
+ delegate :logger, :to => :api
13
+
14
+ class << self
15
+ def all(api)
16
+ api.exec(:listStatuses).css("status").collect do |details|
17
+ create_from_xml(details, api)
18
+ end
19
+ end
20
+
21
+ def create_from_xml(xml, api)
22
+ new( {}.tap do |attributes|
23
+ (FoggyBottom::Columns::Status::ALL_COLUMNS ).each do |col|
24
+ attributes[col] = xml.at_css(col).content
25
+ end
26
+ end).tap do |instance|
27
+ instance.api = api
28
+ end
29
+ end
30
+ end
31
+
32
+ def initialize(attributes = {})
33
+ @attributes = attributes.stringify_keys
34
+ end
35
+ end
36
+
@@ -1,3 +1,3 @@
1
1
  module FoggyBottom
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/lib/foggy_bottom.rb CHANGED
@@ -12,4 +12,5 @@ require 'hirb'
12
12
  require 'foggy_bottom/api'
13
13
  require 'foggy_bottom/columns'
14
14
  require 'foggy_bottom/case'
15
+ require 'foggy_bottom/status'
15
16
  require 'foggy_bottom/console'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foggy_bottom
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-10-03 00:00:00.000000000 -04:00
12
+ date: 2011-10-07 00:00:00.000000000 -04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: nokogiri
17
- requirement: &2168940340 !ruby/object:Gem::Requirement
17
+ requirement: &2152853600 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2168940340
25
+ version_requirements: *2152853600
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: activemodel
28
- requirement: &2168939840 !ruby/object:Gem::Requirement
28
+ requirement: &2152853100 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 3.0.0
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *2168939840
36
+ version_requirements: *2152853100
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: hirb
39
- requirement: &2168939420 !ruby/object:Gem::Requirement
39
+ requirement: &2152852680 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,7 +44,7 @@ dependencies:
44
44
  version: '0'
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *2168939420
47
+ version_requirements: *2152852680
48
48
  description: It wraps the FogBugz API.
49
49
  email:
50
50
  - jon@burningbush.us
@@ -62,6 +62,7 @@ files:
62
62
  - lib/foggy_bottom/case.rb
63
63
  - lib/foggy_bottom/columns.rb
64
64
  - lib/foggy_bottom/console.rb
65
+ - lib/foggy_bottom/status.rb
65
66
  - lib/foggy_bottom/version.rb
66
67
  has_rdoc: true
67
68
  homepage: ''