nom_nom 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -21,16 +21,22 @@ Examples
21
21
 
22
22
  require 'nom_nom'
23
23
 
24
- class Service < NomNom::Service
24
+ class Service
25
+ include NomNom::Service
26
+
25
27
  resources :posts
26
28
  resources :users
27
29
 
28
- class Post < NomNom::Resource
30
+ class Post
31
+ include NomNom::Resource
32
+
29
33
  attr_accessor :id, :body, :user_id
30
34
  belongs_to :user
31
35
  end
32
36
 
33
- class User < NomNom::Resource
37
+ class User
38
+ include NomNom::Resource
39
+
34
40
  attr_accessor :id, :login, :email
35
41
  has_many :posts
36
42
  end
data/Rakefile CHANGED
@@ -13,7 +13,7 @@ begin
13
13
  gem.add_development_dependency "rspec"
14
14
  gem.add_dependency('nokogiri', '= 1.4.3.1')
15
15
  gem.add_dependency('httparty', '= 0.6.1')
16
- gem.add_dependency('active_support', '= 3.0.0')
16
+ gem.add_dependency('activesupport', '= 3.0.0')
17
17
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
18
18
  end
19
19
  Jeweler::GemcutterTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.4
1
+ 0.0.5
data/examples/bitter.rb CHANGED
@@ -1,15 +1,7 @@
1
1
  require 'nom_nom'
2
2
 
3
- class Bitter < NomNom::Service
4
- class Bit < NomNom::Resource
5
- attr_accessor :id, :body, :user_id, :created_on, :updated_on
6
- belongs_to :user
7
- end
8
-
9
- class User < NomNom::Resource
10
- attr_accessor :id, :login
11
- has_many :bits
12
- end
3
+ class Bitter
4
+ include NomNom::Service
13
5
 
14
6
  def initialize(url, user, pass)
15
7
  super(url, user, pass, Bitter)
@@ -17,4 +9,18 @@ class Bitter < NomNom::Service
17
9
 
18
10
  resources :bits
19
11
  resources :users
12
+
13
+ class Bit
14
+ include NomNom::Resource
15
+
16
+ attr_accessor :id, :body, :user_id, :created_on, :updated_on
17
+ belongs_to :user
18
+ end
19
+
20
+ class User
21
+ include NomNom::Resource
22
+
23
+ attr_accessor :id, :login
24
+ has_many :bits
25
+ end
20
26
  end
data/examples/syncd.rb CHANGED
@@ -1,7 +1,9 @@
1
1
  require 'nom_nom'
2
2
 
3
3
  module Syncd
4
- class Account < NomNom::Service
4
+ class Account
5
+ include NomNom::Service
6
+
5
7
  def initialize(subdomain, user, pass)
6
8
  super("https://#{subdomain}.syncd.com", user, pass, Syncd)
7
9
  end
@@ -17,13 +19,17 @@ module Syncd
17
19
  end
18
20
  end
19
21
 
20
- class Activity < NomNom::Resource
22
+ class Activity
23
+ include NomNom::Resource
24
+
21
25
  attr_accessor :id, :name, :active, :code, :description, :url, :created_at, :updated_at
22
26
 
23
27
  has_many :time_entries
24
28
  end
25
29
 
26
- class TimeEntry < NomNom::Resource
30
+ class TimeEntry
31
+ include NomNom::Resource
32
+
27
33
  attr_accessor :id, :duration, :start_time, :end_time, :note, :user_id, :job_id, :activity_id, :created_at, :updated_at
28
34
 
29
35
  belongs_to :user
@@ -31,7 +37,9 @@ module Syncd
31
37
  belongs_to :activity
32
38
  end
33
39
 
34
- class Job < NomNom::Resource
40
+ class Job
41
+ include NomNom::Resource
42
+
35
43
  attr_accessor :id, :job_type_id, :parent_id, :name, :code, :description, :url, :active, :effectively_active, :allow_time_entries, :allow_expense_entries, :assigned
36
44
 
37
45
  belongs_to :job_type
@@ -43,7 +51,9 @@ module Syncd
43
51
  end
44
52
  end
45
53
 
46
- class JobType < NomNom::Resource
54
+ class JobType
55
+ include NomNom::Resource
56
+
47
57
  attr_accessor :id, :parent_id, :name, :name_plural, :allow_time_entries, :allow_expense_entries, :show_codes, :show_links, :show_descriptions, :levels
48
58
 
49
59
  belongs_to :parent, :class_name => self.name.demodulize
@@ -55,7 +65,9 @@ module Syncd
55
65
  end
56
66
  end
57
67
 
58
- class User < NomNom::Resource
68
+ class User
69
+ include NomNom::Resource
70
+
59
71
  attr_accessor :id, :name, :first_name, :last_name, :active, :code, :email, :url, :created_at, :updated_at
60
72
 
61
73
  has_many :time_entries
@@ -1,5 +1,11 @@
1
1
  module NomNom
2
- class Resource
2
+ module Resource
3
+ def self.included(base)
4
+ base.class_eval do
5
+ extend ClassMethods
6
+ end
7
+ end
8
+
3
9
  attr_reader :service
4
10
 
5
11
  def initialize(service, attrs)
@@ -18,7 +24,7 @@ module NomNom
18
24
  self.id == other.id
19
25
  end
20
26
 
21
- class << self
27
+ module ClassMethods
22
28
  def belongs_to(name, options = {})
23
29
  assoc = (options[:class_name] || name).to_s.underscore.pluralize
24
30
  key = options[:key] || "#{name}_id"
@@ -1,6 +1,11 @@
1
1
  module NomNom
2
- class Service
3
- include HTTParty
2
+ module Service
3
+ def self.included(base)
4
+ base.class_eval do
5
+ include HTTParty
6
+ extend ClassMethods
7
+ end
8
+ end
4
9
 
5
10
  attr_reader :auth, :module
6
11
 
@@ -11,12 +16,10 @@ module NomNom
11
16
  end
12
17
 
13
18
  def get(path, options = Hash.new)
14
- ret = self.class.get(path, { :basic_auth => @auth }.merge(options))
15
- $stderr.puts path.inspect, ret.inspect
16
- ret
19
+ self.class.get(path, { :basic_auth => @auth }.merge(options))
17
20
  end
18
21
 
19
- class << self
22
+ module ClassMethods
20
23
  def resources(name, options = Hash.new)
21
24
  name = name.to_s
22
25
  path = options[:path] || "/#{name}.xml"
@@ -42,7 +45,6 @@ module NomNom
42
45
 
43
46
  protected
44
47
  def get_resources(path, query, resource)
45
- $stderr.puts(path.inspect)
46
48
  klass = ("#{@module}::" + resource.to_s.singularize.camelize).constantize
47
49
 
48
50
  self.
data/nom_nom.gemspec ADDED
@@ -0,0 +1,68 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{nom_nom}
8
+ s.version = "0.0.5"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Nolan Eakins"]
12
+ s.date = %q{2010-09-26}
13
+ s.description = %q{I consume web service. Nom nom nom.}
14
+ s.email = %q{sneakin+nomnom@semanticgap.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE",
17
+ "README.md"
18
+ ]
19
+ s.files = [
20
+ ".gitignore",
21
+ "LICENSE",
22
+ "README.md",
23
+ "Rakefile",
24
+ "VERSION",
25
+ "examples/bitter.rb",
26
+ "examples/syncd.rb",
27
+ "lib/nom_nom.rb",
28
+ "lib/nom_nom/resource.rb",
29
+ "lib/nom_nom/service.rb",
30
+ "nom_nom.gemspec",
31
+ "spec/nom_nom_spec.rb",
32
+ "spec/spec_helper.rb"
33
+ ]
34
+ s.homepage = %q{http://github.com/sneakin/nom-nom}
35
+ s.rdoc_options = ["--charset=UTF-8"]
36
+ s.require_paths = ["lib"]
37
+ s.rubygems_version = %q{1.3.7}
38
+ s.summary = %q{COOKIE!!}
39
+ s.test_files = [
40
+ "spec/nom_nom_spec.rb",
41
+ "spec/spec_helper.rb",
42
+ "examples/bitter.rb",
43
+ "examples/syncd.rb"
44
+ ]
45
+
46
+ if s.respond_to? :specification_version then
47
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
48
+ s.specification_version = 3
49
+
50
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
51
+ s.add_development_dependency(%q<rspec>, [">= 0"])
52
+ s.add_runtime_dependency(%q<nokogiri>, ["= 1.4.3.1"])
53
+ s.add_runtime_dependency(%q<httparty>, ["= 0.6.1"])
54
+ s.add_runtime_dependency(%q<activesupport>, ["= 3.0.0"])
55
+ else
56
+ s.add_dependency(%q<rspec>, [">= 0"])
57
+ s.add_dependency(%q<nokogiri>, ["= 1.4.3.1"])
58
+ s.add_dependency(%q<httparty>, ["= 0.6.1"])
59
+ s.add_dependency(%q<activesupport>, ["= 3.0.0"])
60
+ end
61
+ else
62
+ s.add_dependency(%q<rspec>, [">= 0"])
63
+ s.add_dependency(%q<nokogiri>, ["= 1.4.3.1"])
64
+ s.add_dependency(%q<httparty>, ["= 0.6.1"])
65
+ s.add_dependency(%q<activesupport>, ["= 3.0.0"])
66
+ end
67
+ end
68
+
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nom_nom
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 4
10
- version: 0.0.4
9
+ - 5
10
+ version: 0.0.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Nolan Eakins
@@ -66,7 +66,7 @@ dependencies:
66
66
  type: :runtime
67
67
  version_requirements: *id003
68
68
  - !ruby/object:Gem::Dependency
69
- name: active_support
69
+ name: activesupport
70
70
  prerelease: false
71
71
  requirement: &id004 !ruby/object:Gem::Requirement
72
72
  none: false
@@ -101,6 +101,7 @@ files:
101
101
  - lib/nom_nom.rb
102
102
  - lib/nom_nom/resource.rb
103
103
  - lib/nom_nom/service.rb
104
+ - nom_nom.gemspec
104
105
  - spec/nom_nom_spec.rb
105
106
  - spec/spec_helper.rb
106
107
  has_rdoc: true