cards 0.9 → 0.9.1

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.
data/README.txt CHANGED
@@ -35,10 +35,10 @@ that might look something like :
35
35
 
36
36
  == Contact
37
37
 
38
- Author:: Jeremy Stell-Smith
39
- Email:: jeremystellsmith@gmail.com
38
+ Author:: Jeremy Lightsmith
39
+ Email:: jeremy.lightsmith@gmail.com
40
40
  License:: LGPL License
41
41
 
42
42
  == Home Page
43
43
 
44
- http://rubyforge.org/projects/cardwallgen
44
+ http://github.com/jeremylightsmith/cards
data/Rakefile CHANGED
@@ -1,23 +1,14 @@
1
- ENV["FILE"] ||= "/Users/jeremy/Desktop/PunchList Master Story List/Card Wall-Card Wall.csv"
2
-
3
1
  require 'rubygems'
4
2
  gem "rspec"
5
3
  gem "hoe"
6
4
 
7
5
  require 'rake/clean'
8
- require 'spec/rake/spectask'
9
6
  require 'hoe'
10
7
 
11
8
  require 'lib/cards'
12
9
 
13
10
  desc "Default Task"
14
- task :default => [:generate_manifest, :spec]
15
-
16
- task :test => :spec
17
-
18
- Spec::Rake::SpecTask.new(:spec) do |t|
19
- t.spec_files = FileList['spec/**/*_spec.rb']
20
- end
11
+ task :default => [:generate_manifest]
21
12
 
22
13
  task :generate_manifest do
23
14
  File.open("Manifest.txt", "w") do |f|
@@ -25,36 +16,12 @@ task :generate_manifest do
25
16
  end
26
17
  end
27
18
 
28
- desc "export to dot file"
29
- task :run_dot do
30
- file = ENV["FILE"] || SAMPLE_FILE
31
- file.as(:png).delete_if_exists
32
- file.as(:dot).delete_if_exists
33
-
34
- CardWall.convert(file, :dot, file.as(:dot))
35
-
36
- "dot -Tpng #{file.as(:dot).no_spaces} > #{file.as(:png).no_spaces}".run
37
- "open #{file.as(:png).no_spaces}".run if file.as(:png).exists?
38
- end
39
-
40
- desc "export to text"
41
- task :run_text do
42
- CardWall.convert(ENV["FILE"] || SAMPLE_FILE, :text)
43
- end
44
-
45
- desc "export to graffle"
46
- task :run do
47
- file = ENV["FILE"] || SAMPLE_FILE
48
- file.as(:graffle).delete_if_exists
49
-
50
- CardWall.convert(file, :graffle, file.as(:graffle))
51
- end
52
-
53
19
  Hoe.new('cards', Cards::VERSION) do |p|
54
20
  p.rubyforge_name = 'cardwallgen'
55
21
  p.summary = p.description = p.paragraphs_of('README.txt', 2).first
56
22
  p.url = p.paragraphs_of('README.txt', -1).first.strip
57
- p.author = 'Jeremy Stell-Smith'
58
- p.email = 'jeremystellsmith@gmail.com'
23
+ p.author = 'Jeremy Lightsmith'
24
+ p.email = 'jeremy.lightsmith@gmail.com'
59
25
  p.changes = p.paragraphs_of('CHANGES.txt', 0..2).join("\n\n")
26
+ p.extra_deps = ['rb-appscript','>= 0.5.1'], ['rest-client', '>= 0.9']
60
27
  end
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
- require 'rubygems'
3
2
  require File.dirname(__FILE__) + "/../../lib/cards" # you probably want to include the gem version
3
+ gem 'rest-client', ">= 0.9"
4
4
  require 'rest_client'
5
5
 
6
6
  token = "d6b1b5ded944959aec78754ff9f018bd"
@@ -1,30 +1,26 @@
1
1
  #!/usr/bin/env ruby
2
- require 'rubygems'
3
- gem 'cards'
4
- require 'cards'
5
- require 'cards/numbers_parser'
6
- include Cards
2
+ require File.dirname(__FILE__) + "/../../lib/cards"
7
3
 
8
4
  # this requires numbers '09, before that you must export to csv and use the csv parser
9
5
 
10
6
  def table(name)
11
7
  file = File.dirname(__FILE__) + "/Voting Example.numbers"
12
- NumbersParser.new(file, name)
8
+ Cards::NumbersParser.new(file, name)
13
9
  end
14
10
 
15
- CardWall.colors[:goal] = :green
16
- CardWall.writer = GraffleWriter
11
+ Cards::CardWall.colors[:goal] = :green
12
+ Cards::CardWall.writer = Cards::GraffleWriter
17
13
 
18
- CardWall.from table("Goals") do
14
+ Cards::CardWall.from table("Goals") do
19
15
  column :goal
20
16
  end
21
17
 
22
- CardWall.from table("Workflow") do
18
+ Cards::CardWall.from table("Workflow") do
23
19
  row :role
24
20
  column :task, :wrap_at => 5
25
21
  end
26
22
 
27
- CardWall.from table("Stories") do
23
+ Cards::CardWall.from table("Stories") do
28
24
  row :activity
29
25
  row :task
30
26
  column :story, :wrap_at => 4 do |card, row|
data/lib/cards.rb CHANGED
@@ -1,8 +1,14 @@
1
1
  $LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__))
2
2
 
3
+ # this is making this a mac only distro, I'm afraid
4
+ require 'rubygems'
5
+ gem 'rb-appscript'
6
+ require 'appscript'
7
+
3
8
  require 'cards/extensions'
4
9
  require 'cards/builder'
5
10
  require 'cards/csv_parser'
11
+ require 'cards/numbers_parser'
6
12
 
7
13
  require 'cards/card_wall'
8
14
  # writers
@@ -15,5 +21,5 @@ require 'cards/master_story_list'
15
21
  require 'cards/tracker_csv'
16
22
 
17
23
  module Cards
18
- VERSION = "0.9"
24
+ VERSION = "0.9.1"
19
25
  end
@@ -1,4 +1,3 @@
1
- require 'rbosa'
2
1
  require 'cards/tabular_parser'
3
2
 
4
3
  module Cards
@@ -10,14 +9,14 @@ module Cards
10
9
  end
11
10
 
12
11
  def each_unparsed_row
13
- numbers = OSA.app('Numbers')
12
+ numbers = Appscript.app('Numbers')
14
13
  document = numbers.open(@file)
15
14
  table = find_table(document, @table_name)
16
15
 
17
- table.rows.each do |row|
16
+ table.rows.get.each do |row|
18
17
  values = []
19
- row.cells.map do |cell|
20
- value = cell.value
18
+ row.cells.get.map do |cell|
19
+ value = cell.value.get
21
20
  value = nil if value == 0
22
21
  values << value
23
22
  end
@@ -32,9 +31,9 @@ module Cards
32
31
  private
33
32
 
34
33
  def find_table(document, name)
35
- document.sheets.each do |sheet|
36
- sheet.tables.each do |table|
37
- return table if table.name.downcase == name.downcase
34
+ document.sheets.get.each do |sheet|
35
+ sheet.tables.get.each do |table|
36
+ return table if table.name.get.downcase == name.downcase
38
37
  end
39
38
  end
40
39
  raise "table #{name} not found in #{document.name}"
@@ -1,9 +1,3 @@
1
- require 'rubygems'
2
- gem 'rb-appscript'
3
- gem 'rubyosa'
4
- require 'appscript'
5
- require 'rbosa'
6
-
7
1
  module Cards
8
2
  class GraffleWriter
9
3
  CARD_WALL_STENCIL = File.expand_path(File.dirname(__FILE__) + "/CardWall.gstencil")
@@ -20,8 +14,8 @@ module Cards
20
14
 
21
15
  attr_reader :app
22
16
 
23
- def initialize(name = "Card Wall")
24
- @app = Appscript.app('OmniGraffle 4')
17
+ def initialize(name = "Card Wall", omnigraffle_app = "OmniGraffle 4")
18
+ @app = Appscript.app(omnigraffle_app)
25
19
  @doc = @app.documents[0]
26
20
  puts "opening #{name}"
27
21
  open_document(name)
@@ -1,5 +1,5 @@
1
1
  require File.dirname(__FILE__) + '/../spec_helper'
2
- require 'cards/numbers_parser'
2
+ require 'cards'
3
3
 
4
4
  # not the best test, but it will do
5
5
  describe Cards::NumbersParser do
metadata CHANGED
@@ -1,17 +1,37 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cards
3
3
  version: !ruby/object:Gem::Version
4
- version: "0.9"
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
- - Jeremy Stell-Smith
7
+ - Jeremy Lightsmith
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-03-05 00:00:00 -08:00
12
+ date: 2009-03-06 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rb-appscript
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.5.1
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: rest-client
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0.9"
34
+ version:
15
35
  - !ruby/object:Gem::Dependency
16
36
  name: hoe
17
37
  type: :development
@@ -20,10 +40,10 @@ dependencies:
20
40
  requirements:
21
41
  - - ">="
22
42
  - !ruby/object:Gem::Version
23
- version: 1.8.2
43
+ version: 1.9.0
24
44
  version:
25
45
  description: CardWallGen is a program that reads a requirements map and generates a view of it. Typically it reads it from excel or csv and generates a graphical view in visio or omnigraffle, though it may also generate another csv view of it.
26
- email: jeremystellsmith@gmail.com
46
+ email: jeremy.lightsmith@gmail.com
27
47
  executables: []
28
48
 
29
49
  extensions: []
@@ -48,12 +68,8 @@ files:
48
68
  - examples/excel to visio/readme.html
49
69
  - examples/excel to visio/TPS-small.png
50
70
  - examples/importing into tracker api
51
- - examples/importing into tracker api/appscript_example.rb
52
- - examples/importing into tracker api/from_numbers_09
53
71
  - examples/importing into tracker api/generate_card_wall
54
- - examples/importing into tracker api/osa.rb
55
72
  - examples/importing into tracker api/Stories.csv
56
- - examples/importing into tracker api/Voting Example.numbers
57
73
  - examples/numbers to omnigraffle
58
74
  - examples/numbers to omnigraffle/generate_card_walls
59
75
  - examples/numbers to omnigraffle/Voting Example.numbers
@@ -93,7 +109,7 @@ files:
93
109
  - spec/fixtures/Voting Example.numbers
94
110
  - spec/spec_helper.rb
95
111
  has_rdoc: true
96
- homepage: http://rubyforge.org/projects/cardwallgen
112
+ homepage: http://github.com/jeremylightsmith/cards
97
113
  post_install_message:
98
114
  rdoc_options:
99
115
  - --main
@@ -1,18 +0,0 @@
1
- require 'rubygems'
2
- require 'appscript'
3
-
4
- itunes = Appscript.app('iTunes')
5
-
6
- track = itunes.current_track
7
- p track # <OSA::Itunes::FileTrack:0x1495e20>
8
- p track.name # "Over The Rainbow"
9
- p track.artist # "Keith Jarrett"
10
- p track.duration # 362.368988037109
11
- p track.date_added.to_s # "2006-06-30"
12
- p track.enabled? # true
13
-
14
- # Play the selected track.
15
- itunes.play
16
-
17
- # Fade the volume.
18
- 100.times { |i| itunes.sound_volume = i; sleep 0.1 }
@@ -1,50 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require 'rubygems'
3
- require File.dirname(__FILE__) + "/../../lib/cards" # you probably want to include the gem version
4
- require 'rest_client'
5
-
6
- token = "d6b1b5ded944959aec78754ff9f018bd"
7
- project_id = "9989"
8
- priority = %w(L M H)
9
-
10
- project = RestClient::Resource.new("http://www.pivotaltracker.com/services/v2/projects/#{project_id}",
11
- :headers => { "X-TrackerToken" => token })
12
-
13
- # puts project["stories?filter=type:bug"].get
14
-
15
- require 'rbosa'
16
- numbers = OSA.app('Numbers')
17
-
18
- # itunes = OSA.app('iTunes')
19
- # track = itunes.current_track
20
- # p track # <OSA::Itunes::FileTrack:0x1495e20>
21
- # p track.name # "Over The Rainbow"
22
- # p track.artist # "Keith Jarrett"
23
- # p track.duration # 362.368988037109
24
- # p track.date_added.to_s # "2006-06-30"
25
- # p track.enabled? # true
26
- #
27
-
28
-
29
-
30
-
31
-
32
-
33
- csv = Cards::CsvParser.new(File.dirname(__FILE__) + "/Stories.csv")
34
- rows = csv.denormalized_rows(:story, [:activity, :task])
35
- rows = rows.sort_by {|row| priority.index(row[:priority])}
36
-
37
- rows.each do |row|
38
- puts "adding #{row[:story]}"
39
-
40
- params = {}
41
- params[:name] = row[:story]
42
- # params[:story_type] = "bug"
43
- params[:current_state] = "unstarted"
44
- params[:requested_by] = "Cards Test User"
45
- params[:estimate] = row[:estimate]
46
- params[:description] = "while #{row[:activity]}\n#{row[:note]}"
47
-
48
- # project["stories"].post(:story => params)
49
- end
50
-
@@ -1,39 +0,0 @@
1
- require 'rubygems'
2
- require 'rbosa'
3
-
4
- def find_table(document, name)
5
- document.sheets.each do |sheet|
6
- sheet.tables.each do |table|
7
- return table
8
- end
9
- end
10
- end
11
-
12
- numbers = OSA.app('Numbers')
13
- document = numbers.open(File.dirname(__FILE__) + "/Voting Example.numbers")
14
- table = find_table(document, "Stories")
15
-
16
- p table.name
17
- table.rows.each do |row|
18
- values = []
19
- row.cells.map do |cell|
20
- values << cell.name << cell.value
21
- end
22
- p values
23
- end
24
-
25
- # itunes = OSA.app('iTunes')
26
- #
27
- # track = itunes.current_track
28
- # p track # <OSA::Itunes::FileTrack:0x1495e20>
29
- # p track.name # "Over The Rainbow"
30
- # p track.artist # "Keith Jarrett"
31
- # p track.duration # 362.368988037109
32
- # p track.date_added.to_s # "2006-06-30"
33
- # p track.enabled? # true
34
- #
35
- # # Play the selected track.
36
- # itunes.play
37
- #
38
- # # Fade the volume.
39
- # 100.times { |i| itunes.sound_volume = i; sleep 0.1 }