assemblabla 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/.document ADDED
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ -
4
+ features/**/*.feature
5
+ LICENSE.txt
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/Gemfile ADDED
@@ -0,0 +1,17 @@
1
+ source "http://rubygems.org"
2
+ # Add dependencies required to use your gem here.
3
+ # Example:
4
+ # gem "activesupport", ">= 2.3.5"
5
+
6
+ gem 'json', '~> 1.7.7'
7
+ gem 'activeresource', require: 'active_resource'
8
+
9
+ # Add dependencies to develop your gem here.
10
+ # Include everything needed to run rake, tests, features, etc.
11
+ group :development do
12
+ gem "rspec", "~> 2.8.0"
13
+ gem "rdoc", "~> 3.12"
14
+ gem "bundler", ">= 1.0.0"
15
+ gem "jeweler", "~> 1.8.4"
16
+ gem "simplecov", ">= 0"
17
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,50 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ activemodel (3.2.13)
5
+ activesupport (= 3.2.13)
6
+ builder (~> 3.0.0)
7
+ activeresource (3.2.13)
8
+ activemodel (= 3.2.13)
9
+ activesupport (= 3.2.13)
10
+ activesupport (3.2.13)
11
+ i18n (= 0.6.1)
12
+ multi_json (~> 1.0)
13
+ builder (3.0.4)
14
+ diff-lcs (1.1.3)
15
+ git (1.2.5)
16
+ i18n (0.6.1)
17
+ jeweler (1.8.4)
18
+ bundler (~> 1.0)
19
+ git (>= 1.2.5)
20
+ rake
21
+ rdoc
22
+ json (1.7.7)
23
+ multi_json (1.7.4)
24
+ rake (10.0.4)
25
+ rdoc (3.12.2)
26
+ json (~> 1.4)
27
+ rspec (2.8.0)
28
+ rspec-core (~> 2.8.0)
29
+ rspec-expectations (~> 2.8.0)
30
+ rspec-mocks (~> 2.8.0)
31
+ rspec-core (2.8.0)
32
+ rspec-expectations (2.8.0)
33
+ diff-lcs (~> 1.1.2)
34
+ rspec-mocks (2.8.0)
35
+ simplecov (0.7.1)
36
+ multi_json (~> 1.0)
37
+ simplecov-html (~> 0.7.1)
38
+ simplecov-html (0.7.1)
39
+
40
+ PLATFORMS
41
+ ruby
42
+
43
+ DEPENDENCIES
44
+ activeresource
45
+ bundler (>= 1.0.0)
46
+ jeweler (~> 1.8.4)
47
+ json (~> 1.7.7)
48
+ rdoc (~> 3.12)
49
+ rspec (~> 2.8.0)
50
+ simplecov
data/README.md ADDED
@@ -0,0 +1,44 @@
1
+ # assemblabla
2
+
3
+ ## Installation
4
+
5
+ gem install assemblabla
6
+
7
+ Or in your Gemfile:
8
+
9
+ gem 'assemblabla'
10
+
11
+ ## Usage
12
+
13
+ require 'assemblabla'
14
+
15
+ client = Assembla::Client.new(YOUR_KEY, YOUR_SECRET)
16
+
17
+ client.spaces
18
+ # returns the ActiveResource: Space
19
+ # see https://github.com/rails/activeresource#configuration-and-usage
20
+
21
+ # find(:first) is broken :(
22
+ space_id = client.spaces.find(:all).first.id
23
+
24
+ client.tickets( space_id )
25
+ # returns the ActiveResource: Ticket
26
+ # (ugly, but necessary until ActiveResource supports has_many etc.)
27
+
28
+ That is all for now. Please help creating the other [Assembla API methods](http://api-doc.assembla.com/content/api_reference.html).
29
+
30
+
31
+ ## Contributing to assembla
32
+
33
+ * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
34
+ * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
35
+ * Fork the project.
36
+ * Start a feature/bugfix branch.
37
+ * Commit and push until you are happy with your contribution.
38
+ * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
39
+ * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
40
+
41
+ ## License
42
+
43
+ This gem is released under the [MIT License](http://www.opensource.org/licenses/MIT).
44
+
data/Rakefile ADDED
@@ -0,0 +1,49 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'bundler'
5
+ begin
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts "Run `bundle install` to install missing gems"
10
+ exit e.status_code
11
+ end
12
+ require 'rake'
13
+
14
+ require 'jeweler'
15
+ Jeweler::Tasks.new do |gem|
16
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
+ gem.name = "assemblabla"
18
+ gem.homepage = "http://github.com/GeneralScripting/assemblabla"
19
+ gem.license = "MIT"
20
+ gem.summary = "(Threadsafe) Ruby Client for the Assembla REST API"
21
+ gem.description = "(Threadsafe) Ruby Client for the Assembla REST API"
22
+ gem.email = "jan@general-scripting.com"
23
+ gem.authors = ["Jan Schwenzien", "Heiner Sameisky"]
24
+ # dependencies defined in Gemfile
25
+ end
26
+ Jeweler::RubygemsDotOrgTasks.new
27
+
28
+ require 'rspec/core'
29
+ require 'rspec/core/rake_task'
30
+ RSpec::Core::RakeTask.new(:spec) do |spec|
31
+ spec.pattern = FileList['spec/**/*_spec.rb']
32
+ end
33
+
34
+ RSpec::Core::RakeTask.new(:rcov) do |spec|
35
+ spec.pattern = 'spec/**/*_spec.rb'
36
+ spec.rcov = true
37
+ end
38
+
39
+ task :default => :spec
40
+
41
+ require 'rdoc/task'
42
+ Rake::RDocTask.new do |rdoc|
43
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
44
+
45
+ rdoc.rdoc_dir = 'rdoc'
46
+ rdoc.title = "assemblabla #{version}"
47
+ rdoc.rdoc_files.include('README*')
48
+ rdoc.rdoc_files.include('lib/**/*.rb')
49
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.1
@@ -0,0 +1,71 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "assemblabla"
8
+ s.version = "0.1.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Jan Schwenzien", "Heiner Sameisky"]
12
+ s.date = "2013-05-30"
13
+ s.description = "(Threadsafe) Ruby Client for the Assembla REST API"
14
+ s.email = "jan@general-scripting.com"
15
+ s.extra_rdoc_files = [
16
+ "README.md"
17
+ ]
18
+ s.files = [
19
+ ".document",
20
+ ".rspec",
21
+ "Gemfile",
22
+ "Gemfile.lock",
23
+ "README.md",
24
+ "Rakefile",
25
+ "VERSION",
26
+ "assemblabla.gemspec",
27
+ "lib/assemblabla.rb",
28
+ "lib/resources/base.rb",
29
+ "lib/resources/custom_fields.rb",
30
+ "lib/resources/space.rb",
31
+ "lib/resources/ticket.rb",
32
+ "spec/assembla_spec.rb",
33
+ "spec/spec_helper.rb"
34
+ ]
35
+ s.homepage = "http://github.com/GeneralScripting/assemblabla"
36
+ s.licenses = ["MIT"]
37
+ s.require_paths = ["lib"]
38
+ s.rubygems_version = "1.8.25"
39
+ s.summary = "(Threadsafe) Ruby Client for the Assembla REST API"
40
+
41
+ if s.respond_to? :specification_version then
42
+ s.specification_version = 3
43
+
44
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
45
+ s.add_runtime_dependency(%q<json>, ["~> 1.7.7"])
46
+ s.add_runtime_dependency(%q<activeresource>, [">= 0"])
47
+ s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
48
+ s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
49
+ s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
50
+ s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
51
+ s.add_development_dependency(%q<simplecov>, [">= 0"])
52
+ else
53
+ s.add_dependency(%q<json>, ["~> 1.7.7"])
54
+ s.add_dependency(%q<activeresource>, [">= 0"])
55
+ s.add_dependency(%q<rspec>, ["~> 2.8.0"])
56
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
57
+ s.add_dependency(%q<bundler>, [">= 1.0.0"])
58
+ s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
59
+ s.add_dependency(%q<simplecov>, [">= 0"])
60
+ end
61
+ else
62
+ s.add_dependency(%q<json>, ["~> 1.7.7"])
63
+ s.add_dependency(%q<activeresource>, [">= 0"])
64
+ s.add_dependency(%q<rspec>, ["~> 2.8.0"])
65
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
66
+ s.add_dependency(%q<bundler>, [">= 1.0.0"])
67
+ s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
68
+ s.add_dependency(%q<simplecov>, [">= 0"])
69
+ end
70
+ end
71
+
@@ -0,0 +1,40 @@
1
+ require 'active_resource'
2
+ require 'resources/base'
3
+ require 'resources/space'
4
+ require 'resources/ticket'
5
+ require 'resources/custom_fields'
6
+
7
+ module Assembla
8
+ class Client
9
+ attr_accessor :key, :secret
10
+
11
+ BASE_URL = 'https://api.assembla.com/v1/'
12
+
13
+ def initialize(key, secret)
14
+ self.key = key
15
+ self.secret = secret
16
+ end
17
+
18
+ def resource(name, options={})
19
+ the_key = self.key
20
+ the_secret = self.secret
21
+ klass = "Assembla::#{name.to_s.classify}".constantize
22
+ Class.new(klass) do |c|
23
+ def self.name; superclass.name; end
24
+ c.element_name = name.to_s
25
+ c.site = "#{BASE_URL}#{options[:prefix]}"
26
+ c.headers['X-Api-Key'] = the_key
27
+ c.headers['X-Api-Secret'] = the_secret
28
+ end
29
+ end
30
+
31
+ def spaces
32
+ resource(:space)
33
+ end
34
+
35
+ def tickets(space_id)
36
+ resource(:ticket, prefix: "spaces/#{space_id}/")
37
+ end
38
+
39
+ end
40
+ end
@@ -0,0 +1,4 @@
1
+ module Assembla
2
+ class Base < ActiveResource::Base
3
+ end
4
+ end
@@ -0,0 +1,6 @@
1
+ module Assembla
2
+ class CustomFields < Assembla::Base
3
+ self.site = '123'
4
+ self.element_name = 'wurst'
5
+ end
6
+ end
@@ -0,0 +1,4 @@
1
+ module Assembla
2
+ class Space < Assembla::Base
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Assembla
2
+ class Ticket < Assembla::Base
3
+ end
4
+ end
@@ -0,0 +1,7 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Assembla" do
4
+ it "fails" do
5
+ fail "hey buddy, you should probably rename this file and start specing for real"
6
+ end
7
+ end
@@ -0,0 +1,12 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ require 'rspec'
4
+ require 'assembla'
5
+
6
+ # Requires supporting files with custom matchers and macros, etc,
7
+ # in ./support/ and its subdirectories.
8
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
9
+
10
+ RSpec.configure do |config|
11
+
12
+ end
metadata ADDED
@@ -0,0 +1,177 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: assemblabla
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Jan Schwenzien
9
+ - Heiner Sameisky
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2013-05-30 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: json
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: 1.7.7
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ version: 1.7.7
31
+ - !ruby/object:Gem::Dependency
32
+ name: activeresource
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rspec
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 2.8.0
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ version: 2.8.0
63
+ - !ruby/object:Gem::Dependency
64
+ name: rdoc
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ~>
69
+ - !ruby/object:Gem::Version
70
+ version: '3.12'
71
+ type: :development
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: '3.12'
79
+ - !ruby/object:Gem::Dependency
80
+ name: bundler
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: 1.0.0
87
+ type: :development
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: 1.0.0
95
+ - !ruby/object:Gem::Dependency
96
+ name: jeweler
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ~>
101
+ - !ruby/object:Gem::Version
102
+ version: 1.8.4
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: 1.8.4
111
+ - !ruby/object:Gem::Dependency
112
+ name: simplecov
113
+ requirement: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ! '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ! '>='
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ description: (Threadsafe) Ruby Client for the Assembla REST API
128
+ email: jan@general-scripting.com
129
+ executables: []
130
+ extensions: []
131
+ extra_rdoc_files:
132
+ - README.md
133
+ files:
134
+ - .document
135
+ - .rspec
136
+ - Gemfile
137
+ - Gemfile.lock
138
+ - README.md
139
+ - Rakefile
140
+ - VERSION
141
+ - assemblabla.gemspec
142
+ - lib/assemblabla.rb
143
+ - lib/resources/base.rb
144
+ - lib/resources/custom_fields.rb
145
+ - lib/resources/space.rb
146
+ - lib/resources/ticket.rb
147
+ - spec/assembla_spec.rb
148
+ - spec/spec_helper.rb
149
+ homepage: http://github.com/GeneralScripting/assemblabla
150
+ licenses:
151
+ - MIT
152
+ post_install_message:
153
+ rdoc_options: []
154
+ require_paths:
155
+ - lib
156
+ required_ruby_version: !ruby/object:Gem::Requirement
157
+ none: false
158
+ requirements:
159
+ - - ! '>='
160
+ - !ruby/object:Gem::Version
161
+ version: '0'
162
+ segments:
163
+ - 0
164
+ hash: -2130041152687582312
165
+ required_rubygems_version: !ruby/object:Gem::Requirement
166
+ none: false
167
+ requirements:
168
+ - - ! '>='
169
+ - !ruby/object:Gem::Version
170
+ version: '0'
171
+ requirements: []
172
+ rubyforge_project:
173
+ rubygems_version: 1.8.25
174
+ signing_key:
175
+ specification_version: 3
176
+ summary: (Threadsafe) Ruby Client for the Assembla REST API
177
+ test_files: []