prct7 0.1.0

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 497c325cafe030796b458beac97b4ea924a24e47
4
+ data.tar.gz: f6d35c38c618369812940416202b30b543182c06
5
+ SHA512:
6
+ metadata.gz: 1a3ac84dcbef3ec215015beee2812baa0b9dc401fe29e8dd9e7f2e0822f22b1260c67a1db9a7343d0715748dc157797580559f91482efbb44d68657c364f7c2f
7
+ data.tar.gz: a90ed831f0d51424f8bfff2971e6e92a7bbca061d9e8169dd71ee685217c06f7c24a30e2f41dd8a138efeb45ee585f06ce92a75457a002996cdac40ba9a8590b
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.3.1
4
+ before_install: gem install bundler -v 1.11.2
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in prct7.gemspec
4
+ gemspec
@@ -0,0 +1,82 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ ## Uncomment and set this to only include directories you want to watch
5
+ # directories %w(app lib config test spec features) \
6
+ # .select{|d| Dir.exists?(d) ? d : UI.warning("Directory #{d} does not exist")}
7
+
8
+ ## Note: if you are using the `directories` clause above and you are not
9
+ ## watching the project directory ('.'), then you will want to move
10
+ ## the Guardfile to a watched dir and symlink it back, e.g.
11
+ #
12
+ # $ mkdir config
13
+ # $ mv Guardfile config/
14
+ # $ ln -s config/Guardfile .
15
+ #
16
+ # and, you'll have to watch "config/Guardfile" instead of "Guardfile"
17
+
18
+ guard :bundler do
19
+ require 'guard/bundler'
20
+ require 'guard/bundler/verify'
21
+ helper = Guard::Bundler::Verify.new
22
+
23
+ files = ['Gemfile']
24
+ files += Dir['*.gemspec'] if files.any? { |f| helper.uses_gemspec?(f) }
25
+
26
+ # Assume files are symlinked from somewhere
27
+ files.each { |file| watch(helper.real_path(file)) }
28
+ end
29
+
30
+ # Note: The cmd option is now required due to the increasing number of ways
31
+ # rspec may be run, below are examples of the most common uses.
32
+ # * bundler: 'bundle exec rspec'
33
+ # * bundler binstubs: 'bin/rspec'
34
+ # * spring: 'bin/rspec' (This will use spring if running and you have
35
+ # installed the spring binstubs per the docs)
36
+ # * zeus: 'zeus rspec' (requires the server to be started separately)
37
+ # * 'just' rspec: 'rspec'
38
+
39
+ guard :rspec, cmd: "bundle exec rspec" do
40
+ require "guard/rspec/dsl"
41
+ dsl = Guard::RSpec::Dsl.new(self)
42
+
43
+ # Feel free to open issues for suggestions and improvements
44
+
45
+ # RSpec files
46
+ rspec = dsl.rspec
47
+ watch(rspec.spec_helper) { rspec.spec_dir }
48
+ watch(rspec.spec_support) { rspec.spec_dir }
49
+ watch(rspec.spec_files)
50
+
51
+ # Ruby files
52
+ ruby = dsl.ruby
53
+ dsl.watch_spec_files_for(ruby.lib_files)
54
+
55
+ # Rails files
56
+ rails = dsl.rails(view_extensions: %w(erb haml slim))
57
+ dsl.watch_spec_files_for(rails.app_files)
58
+ dsl.watch_spec_files_for(rails.views)
59
+
60
+ watch(rails.controllers) do |m|
61
+ [
62
+ rspec.spec.call("routing/#{m[1]}_routing"),
63
+ rspec.spec.call("controllers/#{m[1]}_controller"),
64
+ rspec.spec.call("acceptance/#{m[1]}")
65
+ ]
66
+ end
67
+
68
+ # Rails config changes
69
+ watch(rails.spec_helper) { rspec.spec_dir }
70
+ watch(rails.routes) { "#{rspec.spec_dir}/routing" }
71
+ watch(rails.app_controller) { "#{rspec.spec_dir}/controllers" }
72
+
73
+ # Capybara features specs
74
+ watch(rails.view_dirs) { |m| rspec.spec.call("features/#{m[1]}") }
75
+ watch(rails.layouts) { |m| rspec.spec.call("features/#{m[1]}") }
76
+
77
+ # Turnip features and steps
78
+ watch(%r{^spec/acceptance/(.+)\.feature$})
79
+ watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) do |m|
80
+ Dir[File.join("**/#{m[1]}.feature")][0] || "spec/acceptance"
81
+ end
82
+ end
@@ -0,0 +1,36 @@
1
+ # Prct7
2
+
3
+ Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/prct7`. To experiment with that code, run `bin/console` for an interactive prompt.
4
+
5
+ TODO: Delete this and the text above, and describe your gem
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'prct7'
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ $ bundle
18
+
19
+ Or install it yourself as:
20
+
21
+ $ gem install prct7
22
+
23
+ ## Usage
24
+
25
+ TODO: Write usage instructions here
26
+
27
+ ## Development
28
+
29
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
30
+
31
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
+
33
+ ## Contributing
34
+
35
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/prct7.
36
+
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "prct7"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,9 @@
1
+ require "prct7/version"
2
+ require "prct7/list.rb"
3
+ require "prct7/diet.rb"
4
+ require "prct7/aliments.rb"
5
+ require "prct7/agegroup.rb"
6
+ require "prct7/menuDSL.rb"
7
+ module Prct7
8
+ # Your code goes here...
9
+ end
@@ -0,0 +1,10 @@
1
+ class AgeGroup < Diet
2
+ attr_reader :group
3
+ def initialize(nombre,porcentaje,platos,porcion,gramos,vct,proteinas,grasas,hidratos,group)
4
+ super(nombre,porcentaje,platos,porcion,gramos,vct,proteinas,grasas,hidratos)
5
+ @group = group
6
+ end
7
+ # Metodo por el que se pregunta su existencia en las expectativas
8
+ def method_age_group
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ class Aliments < Diet
2
+ attr_reader :group
3
+ def initialize(nombre,porcentaje,platos,porcion,gramos,vct,proteinas,grasas,hidratos,group)
4
+ super(nombre,porcentaje,platos,porcion,gramos,vct,proteinas,grasas,hidratos)
5
+ @group = group
6
+ end
7
+ # Metodo por el que se pregunta su existencia en las expectativas
8
+ def method_aliments
9
+ end
10
+ end
@@ -0,0 +1,28 @@
1
+ class Diet
2
+ include Comparable
3
+ attr_reader :nombre, :porcentaje, :platos, :porcion, :gramos, :vct, :proteinas, :grasas, :hidratos
4
+ def initialize(nombre,porcentaje,platos,porcion,gramos,vct,proteinas,grasas,hidratos)
5
+ @nombre = nombre
6
+ @porcentaje = porcentaje
7
+ @platos = platos
8
+ @porcion = porcion
9
+ @gramos = gramos
10
+ @vct = vct
11
+ @proteinas = proteinas
12
+ @grasas = grasas
13
+ @hidratos = hidratos
14
+ end
15
+ # Metodo para imprimir
16
+ def to_s
17
+ s="\n#{@nombre} (#{@porcentaje})\n"
18
+ (0..@platos.size-1).each do |i|
19
+ s<< "#{@platos[i]}, #{@porcion[i]}, #{@gramos[i]}gr.\n"
20
+ end
21
+ s<< "VCT | %\t#{@vct} kcal | #{@proteinas}% - #{@grasas}% - #{@hidratos}%\n"
22
+ s
23
+ end
24
+ # definimos el metodo necesario para comparar
25
+ def <=>(other)
26
+ @vct <=> other.vct
27
+ end
28
+ end
@@ -0,0 +1,78 @@
1
+ Node = Struct.new(:value, :next, :prev)
2
+
3
+ class List
4
+ include Enumerable
5
+ attr_reader :size, :head, :tail
6
+ def initialize
7
+ @size = 0
8
+ @head = nil
9
+ @tail = nil
10
+ end
11
+ # Método que recorre la lista de principio a fin
12
+ def each
13
+ i = @head
14
+ while i != nil
15
+ yield i.value
16
+ i = i.next
17
+ end
18
+ end
19
+ # Método que inserta por detrás un elemento en la lista
20
+ def push_back(value)
21
+ node = Node.new(value,nil,nil)
22
+ if (@size == 0)
23
+ @tail = @head = node
24
+ else
25
+ @tail.next = node
26
+ node.prev = @tail
27
+ @tail = node
28
+ end
29
+ @size += 1
30
+
31
+ end
32
+ # Método que retorna el último elemento de la lista
33
+ def back
34
+ @tail.value
35
+ end
36
+ # Método que inserta por delante un elemento en la lista
37
+ def push_front(value)
38
+ node = Node.new(value,nil,nil)
39
+ if (@size == 0)
40
+ @tail = @head = node
41
+ else
42
+ node.next = @head
43
+ @head = node
44
+ end
45
+ @size += 1
46
+
47
+ end
48
+ # Método que retorna el primer elemento de la lista
49
+ def front
50
+ @head.value
51
+ end
52
+ # Método que elimina el último elemento de la lista
53
+ def pop_back
54
+ aux = @tail.value
55
+ @tail = @tail.prev
56
+ @size -= 1
57
+ aux
58
+ end
59
+ # Método que elimina el primer elemento de la lista
60
+ def pop_front
61
+ aux = @head.value
62
+ @head = @head.next
63
+ @size -= 1
64
+ aux
65
+ end
66
+ # Método que retorna el siguiente elemento del primer nodo
67
+ def get_next
68
+ if(@head.next == nil)
69
+ nil
70
+ else
71
+ @head.next.value
72
+ end
73
+ end
74
+ # Método que retorna el anterior del primer nodo
75
+ def get_prev
76
+ nil
77
+ end
78
+ end
@@ -0,0 +1,42 @@
1
+ class MenuDSL
2
+ attr_accessor :etiqueta_, :titulo_, :ingesta_, :platos_, :porcentajes_
3
+
4
+ def initialize(etiqueta, &block)
5
+ @etiqueta_ = etiqueta
6
+ @titulo_ = ""
7
+ @ingesta_ = []
8
+ @platos_ = []
9
+ @porcentajes_ = []
10
+ if block_given?
11
+ if block.arity == 1
12
+ yield self
13
+ else
14
+ instance_eval(&block)
15
+ end
16
+ end
17
+ end
18
+
19
+ def titulo(options = {})
20
+ titulo_ << "#{options[:titulo]}"
21
+ end
22
+
23
+ def ingesta(options = {})
24
+ ingesta_ << options[:min] if options[:min]
25
+ ingesta_ << options[:max] if options[:max]
26
+ end
27
+
28
+ def plato(options = {})
29
+ pl = []
30
+ pl << "#{options[:descripcion]}" if options[:descripcion]
31
+ pl << options[:porcion] if options[:porcion]
32
+ pl << options[:gramos] if options[:gramos]
33
+ platos_ << pl
34
+ end
35
+
36
+ def porcentaje(options = {})
37
+ porcentajes_ << options[:vct] if options[:vct]
38
+ porcentajes_ << options[:proteinas] if options[:proteinas]
39
+ porcentajes_ << options[:grasas] if options[:grasas]
40
+ porcentajes_ << options[:hidratos] if options[:hidratos]
41
+ end
42
+ end
@@ -0,0 +1,3 @@
1
+ module Prct7
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,37 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'prct7/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "prct7"
8
+ spec.version = Prct7::VERSION
9
+ spec.authors = ["Javier González Hernández"]
10
+ spec.email = ["alu0100819441@ull.edu.es"]
11
+
12
+ spec.summary = %q{"Practica 7. Lista de dietas"}
13
+ spec.description = %q{"Practica que implementa una lista"}
14
+ spec.homepage = "https://www.rubygem.org"
15
+
16
+ # Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
17
+ # delete this section to allow pushing this gem to any host.
18
+ # if spec.respond_to?(:metadata)
19
+ # spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
20
+ # else
21
+ # raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
22
+ # end
23
+
24
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
25
+ spec.bindir = "exe"
26
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
27
+ spec.require_paths = ["lib"]
28
+
29
+ spec.add_development_dependency "bundler", "~> 1.11"
30
+ spec.add_development_dependency "rake", "~> 10.0"
31
+ spec.add_development_dependency "rspec", "~> 3.0"
32
+
33
+ spec.add_development_dependency "guard"
34
+ spec.add_development_dependency "guard-rspec"
35
+ spec.add_development_dependency "guard-bundler"
36
+
37
+ end
metadata ADDED
@@ -0,0 +1,144 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: prct7
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Javier González Hernández
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2016-12-16 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.11'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.11'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: guard
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: guard-rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: guard-bundler
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: '"Practica que implementa una lista"'
98
+ email:
99
+ - alu0100819441@ull.edu.es
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - ".gitignore"
105
+ - ".rspec"
106
+ - ".travis.yml"
107
+ - Gemfile
108
+ - Guardfile
109
+ - README.md
110
+ - Rakefile
111
+ - bin/console
112
+ - bin/setup
113
+ - lib/prct7.rb
114
+ - lib/prct7/agegroup.rb
115
+ - lib/prct7/aliments.rb
116
+ - lib/prct7/diet.rb
117
+ - lib/prct7/list.rb
118
+ - lib/prct7/menuDSL.rb
119
+ - lib/prct7/version.rb
120
+ - prct7.gemspec
121
+ homepage: https://www.rubygem.org
122
+ licenses: []
123
+ metadata: {}
124
+ post_install_message:
125
+ rdoc_options: []
126
+ require_paths:
127
+ - lib
128
+ required_ruby_version: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ required_rubygems_version: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ requirements: []
139
+ rubyforge_project:
140
+ rubygems_version: 2.5.1
141
+ signing_key:
142
+ specification_version: 4
143
+ summary: '"Practica 7. Lista de dietas"'
144
+ test_files: []